From 5af105f637b8dec7d2d756c10b97dd8e01df81bb Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Thu, 13 Feb 2014 03:26:25 +0400 Subject: [PATCH] update --- .gitignore | 2 + assets/fonts/PT Free Font License_eng_1.2.txt | 44 + assets/fonts/PT Free Font License_rus_1.2.txt | Bin 0 -> 5036 bytes assets/fonts/PTC55F_W.eot | Bin 0 -> 159192 bytes assets/fonts/PTC55F_W.svg | 728 +++ assets/fonts/PTC55F_W.ttf | Bin 0 -> 375040 bytes assets/fonts/PTC55F_W.woff | Bin 0 -> 191308 bytes assets/fonts/PTC75F_W.eot | Bin 0 -> 160269 bytes assets/fonts/PTC75F_W.svg | 728 +++ assets/fonts/PTC75F_W.ttf | Bin 0 -> 386628 bytes assets/fonts/PTC75F_W.woff | Bin 0 -> 193812 bytes assets/fonts/PTN57F_W.eot | Bin 0 -> 163618 bytes assets/fonts/PTN57F_W.svg | 728 +++ assets/fonts/PTN57F_W.ttf | Bin 0 -> 384056 bytes assets/fonts/PTN57F_W.woff | Bin 0 -> 192168 bytes assets/fonts/PTN77F_W.eot | Bin 0 -> 212405 bytes assets/fonts/PTN77F_W.svg | 728 +++ assets/fonts/PTN77F_W.ttf | Bin 0 -> 475568 bytes assets/fonts/PTN77F_W.woff | Bin 0 -> 247864 bytes assets/fonts/PTS55F_W.eot | Bin 0 -> 189134 bytes assets/fonts/PTS55F_W.svg | 728 +++ assets/fonts/PTS55F_W.ttf | Bin 0 -> 430808 bytes assets/fonts/PTS55F_W.woff | Bin 0 -> 224188 bytes assets/fonts/PTS56F_W.eot | Bin 0 -> 180480 bytes assets/fonts/PTS56F_W.svg | 728 +++ assets/fonts/PTS56F_W.ttf | Bin 0 -> 424296 bytes assets/fonts/PTS56F_W.woff | Bin 0 -> 218904 bytes assets/fonts/PTS75F_W.eot | Bin 0 -> 200631 bytes assets/fonts/PTS75F_W.svg | 728 +++ assets/fonts/PTS75F_W.ttf | Bin 0 -> 458088 bytes assets/fonts/PTS75F_W.woff | Bin 0 -> 238344 bytes assets/fonts/PTS76F_W.eot | Bin 0 -> 153061 bytes assets/fonts/PTS76F_W.svg | 728 +++ assets/fonts/PTS76F_W.ttf | Bin 0 -> 363052 bytes assets/fonts/PTS76F_W.woff | Bin 0 -> 182624 bytes assets/fonts/demo.html | 409 ++ assets/fonts/stylesheet.css | 38 + assets/img/icon.vk.png | Bin 0 -> 3418 bytes assets/img/preview/certificate_egryl1.png | Bin 0 -> 331681 bytes assets/img/preview/certificate_egryl2.png | Bin 0 -> 318009 bytes assets/img/preview/certificate_gov.png | Bin 0 -> 217485 bytes assets/img/preview/license_edu.png | Bin 0 -> 348261 bytes assets/img/preview/statue-2013.png | Bin 0 -> 55250 bytes assets/img/preview/vatin.png | Bin 0 -> 316003 bytes config.js | 3 + gulpfile.js | 15 +- node_modules/gulp-imagemin/index.js | 56 + .../node_modules/filesize/.npmignore | 8 + .../node_modules/filesize/LICENSE | 27 + .../node_modules/filesize/README.md | 47 + .../node_modules/filesize/lib/filesize.js | 141 + .../node_modules/filesize/package.json | 55 + .../node_modules/graceful-fs/.npmignore | 1 + .../node_modules/graceful-fs/LICENSE | 27 + .../node_modules/graceful-fs/README.md | 26 + .../node_modules/graceful-fs/graceful-fs.js | 159 + .../node_modules/graceful-fs/package.json | 53 + .../node_modules/graceful-fs/polyfills.js | 228 + .../node_modules/graceful-fs/test/open.js | 39 + .../node_modules/gulp-util/.npmignore | 6 + .../node_modules/gulp-util/.travis.yml | 6 + .../node_modules/gulp-util/LICENSE | 20 + .../node_modules/gulp-util/README.md | 166 + .../node_modules/gulp-util/index.js | 18 + .../node_modules/gulp-util/lib/File.js | 1 + .../node_modules/gulp-util/lib/PluginError.js | 65 + .../node_modules/gulp-util/lib/beep.js | 3 + .../node_modules/gulp-util/lib/buffer.js | 15 + .../node_modules/gulp-util/lib/colors.js | 1 + .../node_modules/gulp-util/lib/combine.js | 11 + .../node_modules/gulp-util/lib/date.js | 1 + .../node_modules/gulp-util/lib/env.js | 4 + .../node_modules/gulp-util/lib/isBuffer.js | 7 + .../node_modules/gulp-util/lib/isNull.js | 3 + .../node_modules/gulp-util/lib/isStream.js | 5 + .../node_modules/gulp-util/lib/linefeed.js | 1 + .../node_modules/gulp-util/lib/log.js | 9 + .../node_modules/gulp-util/lib/noop.js | 5 + .../gulp-util/lib/replaceExtension.js | 9 + .../node_modules/gulp-util/lib/template.js | 19 + .../gulp-util/node_modules/chalk/index.js | 63 + .../chalk/node_modules/.bin/strip-ansi | 1 + .../node_modules/ansi-styles/ansi-styles.js | 38 + .../node_modules/ansi-styles/package.json | 62 + .../chalk/node_modules/ansi-styles/readme.md | 65 + .../chalk/node_modules/has-color/has-color.js | 24 + .../chalk/node_modules/has-color/package.json | 59 + .../chalk/node_modules/has-color/readme.md | 28 + .../chalk/node_modules/strip-ansi/cli.js | 27 + .../chalk/node_modules/strip-ansi/index.js | 4 + .../node_modules/strip-ansi/package.json | 68 + .../chalk/node_modules/strip-ansi/readme.md | 46 + .../gulp-util/node_modules/chalk/package.json | 65 + .../gulp-util/node_modules/chalk/readme.md | 158 + .../gulp-util/node_modules/dateformat/LICENSE | 20 + .../node_modules/dateformat/Readme.md | 79 + .../node_modules/dateformat/lib/dateformat.js | 183 + .../node_modules/dateformat/package.json | 44 + .../node_modules/dateformat/test/basic.js | 45 + .../dateformat/test/test_dayofweek.js | 10 + .../dateformat/test/test_weekofyear.js | 4 + .../dateformat/test/test_weekofyear.sh | 27 + .../lodash._reinterpolate/LICENSE.txt | 22 + .../lodash._reinterpolate/README.md | 15 + .../lodash._reinterpolate/index.js | 13 + .../lodash._reinterpolate/package.json | 49 + .../node_modules/lodash.template/LICENSE.txt | 22 + .../node_modules/lodash.template/README.md | 15 + .../node_modules/lodash.template/index.js | 216 + .../lodash._escapestringchar/LICENSE.txt | 22 + .../lodash._escapestringchar/README.md | 15 + .../lodash._escapestringchar/index.js | 33 + .../lodash._escapestringchar/package.json | 49 + .../node_modules/lodash.defaults/LICENSE.txt | 22 + .../node_modules/lodash.defaults/README.md | 15 + .../node_modules/lodash.defaults/index.js | 54 + .../lodash._objecttypes/LICENSE.txt | 22 + .../lodash._objecttypes/README.md | 15 + .../node_modules/lodash._objecttypes/index.js | 20 + .../lodash._objecttypes/package.json | 49 + .../node_modules/lodash.defaults/package.json | 60 + .../node_modules/lodash.escape/LICENSE.txt | 22 + .../node_modules/lodash.escape/README.md | 15 + .../node_modules/lodash.escape/index.js | 31 + .../lodash._escapehtmlchar/LICENSE.txt | 22 + .../lodash._escapehtmlchar/README.md | 15 + .../lodash._escapehtmlchar/index.js | 22 + .../lodash._htmlescapes/LICENSE.txt | 22 + .../lodash._htmlescapes/README.md | 15 + .../node_modules/lodash._htmlescapes/index.js | 26 + .../lodash._htmlescapes/package.json | 49 + .../lodash._escapehtmlchar/package.json | 52 + .../lodash._reunescapedhtml/LICENSE.txt | 22 + .../lodash._reunescapedhtml/README.md | 15 + .../lodash._reunescapedhtml/index.js | 15 + .../lodash._htmlescapes/LICENSE.txt | 22 + .../lodash._htmlescapes/README.md | 15 + .../node_modules/lodash._htmlescapes/index.js | 26 + .../lodash._htmlescapes/package.json | 49 + .../lodash._reunescapedhtml/package.json | 53 + .../node_modules/lodash.escape/package.json | 61 + .../node_modules/lodash.keys/LICENSE.txt | 22 + .../node_modules/lodash.keys/README.md | 15 + .../node_modules/lodash.keys/index.js | 36 + .../node_modules/lodash._isnative/LICENSE.txt | 22 + .../node_modules/lodash._isnative/README.md | 15 + .../node_modules/lodash._isnative/index.js | 34 + .../lodash._isnative/package.json | 49 + .../node_modules/lodash._shimkeys/LICENSE.txt | 22 + .../node_modules/lodash._shimkeys/README.md | 15 + .../node_modules/lodash._shimkeys/index.js | 38 + .../lodash._objecttypes/LICENSE.txt | 22 + .../lodash._objecttypes/README.md | 15 + .../node_modules/lodash._objecttypes/index.js | 20 + .../lodash._objecttypes/package.json | 50 + .../lodash._shimkeys/package.json | 52 + .../node_modules/lodash.isobject/LICENSE.txt | 22 + .../node_modules/lodash.isobject/README.md | 15 + .../node_modules/lodash.isobject/index.js | 39 + .../lodash._objecttypes/LICENSE.txt | 22 + .../lodash._objecttypes/README.md | 15 + .../node_modules/lodash._objecttypes/index.js | 20 + .../lodash._objecttypes/package.json | 50 + .../node_modules/lodash.isobject/package.json | 59 + .../node_modules/lodash.keys/package.json | 61 + .../lodash.templatesettings/LICENSE.txt | 22 + .../lodash.templatesettings/README.md | 15 + .../lodash.templatesettings/index.js | 73 + .../lodash.templatesettings/package.json | 60 + .../node_modules/lodash.values/LICENSE.txt | 22 + .../node_modules/lodash.values/README.md | 15 + .../node_modules/lodash.values/index.js | 36 + .../node_modules/lodash.values/package.json | 59 + .../node_modules/lodash.template/package.json | 65 + .../node_modules/minimist/.travis.yml | 4 + .../gulp-util/node_modules/minimist/LICENSE | 18 + .../node_modules/minimist/example/parse.js | 2 + .../gulp-util/node_modules/minimist/index.js | 187 + .../node_modules/minimist/package.json | 54 + .../node_modules/minimist/readme.markdown | 73 + .../node_modules/minimist/test/dash.js | 24 + .../minimist/test/default_bool.js | 20 + .../node_modules/minimist/test/dotted.js | 16 + .../node_modules/minimist/test/long.js | 31 + .../node_modules/minimist/test/parse.js | 297 + .../minimist/test/parse_modified.js | 9 + .../node_modules/minimist/test/short.js | 67 + .../node_modules/minimist/test/whitespace.js | 8 + .../node_modules/multipipe/.npmignore | 1 + .../node_modules/multipipe/.travis.yml | 3 + .../node_modules/multipipe/History.md | 10 + .../gulp-util/node_modules/multipipe/Makefile | 10 + .../node_modules/multipipe/Readme.md | 74 + .../gulp-util/node_modules/multipipe/index.js | 57 + .../node_modules/duplexer2/.npmignore | 1 + .../node_modules/duplexer2/.travis.yml | 3 + .../node_modules/duplexer2/LICENSE.md | 26 + .../node_modules/duplexer2/README.md | 129 + .../node_modules/duplexer2/example.js | 49 + .../multipipe/node_modules/duplexer2/index.js | 62 + .../node_modules/duplexer2/package.json | 41 + .../node_modules/duplexer2/test/tests.js | 161 + .../node_modules/multipipe/package.json | 30 + .../node_modules/multipipe/test/multipipe.js | 85 + .../gulp-util/node_modules/through2/.jshintrc | 59 + .../node_modules/through2/.npmignore | 1 + .../node_modules/through2/.travis.yml | 17 + .../gulp-util/node_modules/through2/LICENSE | 39 + .../gulp-util/node_modules/through2/README.md | 131 + .../node_modules/readable-stream/.npmignore | 5 + .../node_modules/readable-stream/LICENSE | 27 + .../node_modules/readable-stream/README.md | 768 +++ .../node_modules/readable-stream/duplex.js | 1 + .../node_modules/readable-stream/float.patch | 68 + .../readable-stream/lib/_stream_duplex.js | 69 + .../lib/_stream_passthrough.js | 41 + .../readable-stream/lib/_stream_readable.js | 927 +++ .../readable-stream/lib/_stream_transform.js | 205 + .../readable-stream/lib/_stream_writable.js | 371 ++ .../node_modules/string_decoder/.npmignore | 1 + .../node_modules/string_decoder/LICENSE | 20 + .../node_modules/string_decoder/README.md | 7 + .../string_decoder/build/.npmignore | 1 + .../string_decoder/build/build.js | 94 + .../string_decoder/build/files.js | 36 + .../string_decoder/build/package.json | 12 + .../string_decoder/build/test-replacements.js | 24 + .../node_modules/string_decoder/index.js | 200 + .../node_modules/string_decoder/package.json | 36 + .../string_decoder/test/common.js | 200 + .../test/simple/test-string-decoder-end.js | 75 + .../test/simple/test-string-decoder.js | 163 + .../node_modules/readable-stream/package.json | 42 + .../readable-stream/passthrough.js | 1 + .../node_modules/readable-stream/readable.js | 6 + .../node_modules/readable-stream/transform.js | 1 + .../node_modules/readable-stream/writable.js | 1 + .../through2/node_modules/xtend/.npmignore | 1 + .../through2/node_modules/xtend/LICENCE | 19 + .../through2/node_modules/xtend/Makefile | 4 + .../through2/node_modules/xtend/README.md | 27 + .../through2/node_modules/xtend/has-keys.js | 7 + .../through2/node_modules/xtend/index.js | 25 + .../through2/node_modules/xtend/mutable.js | 25 + .../xtend/node_modules/object-keys/.npmignore | 1 + .../node_modules/object-keys/.travis.yml | 5 + .../xtend/node_modules/object-keys/README.md | 39 + .../xtend/node_modules/object-keys/foreach.js | 40 + .../xtend/node_modules/object-keys/index.js | 2 + .../node_modules/object-keys/isArguments.js | 16 + .../node_modules/object-keys/package.json | 60 + .../xtend/node_modules/object-keys/shim.js | 62 + .../node_modules/object-keys/test/foreach.js | 156 + .../node_modules/object-keys/test/index.js | 6 + .../object-keys/test/isArguments.js | 10 + .../node_modules/object-keys/test/shim.js | 134 + .../through2/node_modules/xtend/package.json | 76 + .../through2/node_modules/xtend/test.js | 63 + .../node_modules/through2/package.json | 48 + .../node_modules/through2/test/basic-test.js | 334 ++ .../node_modules/through2/test/bench.js | 42 + .../node_modules/through2/test/sauce.js | 38 + .../node_modules/through2/test/test.js | 9 + .../node_modules/through2/through2.js | 78 + .../gulp-util/node_modules/vinyl/.npmignore | 6 + .../gulp-util/node_modules/vinyl/.travis.yml | 6 + .../gulp-util/node_modules/vinyl/LICENSE | 20 + .../gulp-util/node_modules/vinyl/README.md | 123 + .../gulp-util/node_modules/vinyl/index.js | 128 + .../node_modules/vinyl/lib/cloneBuffer.js | 7 + .../node_modules/vinyl/lib/inspectStream.js | 12 + .../node_modules/vinyl/lib/isBuffer.js | 7 + .../node_modules/vinyl/lib/isNull.js | 3 + .../node_modules/vinyl/lib/isStream.js | 5 + .../vinyl/node_modules/clone-stats/LICENSE.md | 21 + .../vinyl/node_modules/clone-stats/README.md | 17 + .../vinyl/node_modules/clone-stats/index.js | 13 + .../node_modules/clone-stats/package.json | 43 + .../vinyl/node_modules/clone-stats/test.js | 36 + .../gulp-util/node_modules/vinyl/package.json | 55 + .../gulp-util/node_modules/vinyl/test/File.js | 540 ++ .../node_modules/vinyl/test/cloneBuffer.js | 28 + .../node_modules/vinyl/test/inspectStream.js | 53 + .../node_modules/vinyl/test/isBuffer.js | 29 + .../node_modules/vinyl/test/isNull.js | 23 + .../node_modules/vinyl/test/isStream.js | 29 + .../node_modules/gulp-util/package.json | 62 + .../node_modules/gulp-util/test/File.js | 46 + .../gulp-util/test/PluginError.js | 70 + .../node_modules/gulp-util/test/beep.js | 23 + .../node_modules/gulp-util/test/buffer.js | 36 + .../node_modules/gulp-util/test/colors.js | 11 + .../node_modules/gulp-util/test/combine.js | 38 + .../node_modules/gulp-util/test/date.js | 17 + .../node_modules/gulp-util/test/env.js | 12 + .../node_modules/gulp-util/test/isBuffer.js | 16 + .../node_modules/gulp-util/test/isNull.js | 20 + .../node_modules/gulp-util/test/isStream.js | 16 + .../node_modules/gulp-util/test/linefeed.js | 5 + .../node_modules/gulp-util/test/log.js | 23 + .../node_modules/gulp-util/test/noop.js | 24 + .../gulp-util/test/replaceExtension.js | 34 + .../node_modules/gulp-util/test/template.js | 99 + .../node_modules/image-min/README.md | 73 + .../node_modules/image-min/imagemin.js | 190 + .../image-min/node_modules/.bin/gifsicle | 1 + .../image-min/node_modules/.bin/jpegtran | 1 + .../image-min/node_modules/.bin/optipng | 1 + .../node_modules/cache-file/README.md | 54 + .../node_modules/cache-file/index.js | 95 + .../cache-file/node_modules/.bin/rimraf | 1 + .../node_modules/hash-file/README.md | 25 + .../node_modules/hash-file/index.js | 16 + .../node_modules/hash-file/package.json | 45 + .../cache-file/node_modules/rimraf/AUTHORS | 6 + .../cache-file/node_modules/rimraf/LICENSE | 23 + .../cache-file/node_modules/rimraf/README.md | 30 + .../cache-file/node_modules/rimraf/bin.js | 33 + .../node_modules/rimraf/package.json | 60 + .../cache-file/node_modules/rimraf/rimraf.js | 178 + .../node_modules/rimraf/test/run.sh | 10 + .../node_modules/rimraf/test/setup.sh | 47 + .../node_modules/rimraf/test/test-async.js | 5 + .../node_modules/rimraf/test/test-sync.js | 3 + .../node_modules/cache-file/package.json | 50 + .../node_modules/gifsicle/bin/gifsicle.js | 8 + .../node_modules/gifsicle/lib/check.js | 24 + .../node_modules/gifsicle/lib/gifsicle.js | 49 + .../node_modules/bin-wrapper/README.md | 67 + .../node_modules/bin-wrapper/bin-wrapper.js | 222 + .../bin-wrapper/node_modules/.bin/rimraf | 1 + .../bin-wrapper/node_modules/.bin/which | 1 + .../node_modules/download/README.md | 84 + .../node_modules/download/download.js | 100 + .../node_modules/decompress/README.md | 71 + .../node_modules/decompress/decompress.js | 168 + .../adm-zip/.idea/scopes/scope_settings.xml | 5 + .../node_modules/adm-zip/MIT-LICENSE.txt | 21 + .../decompress/node_modules/adm-zip/README.md | 64 + .../node_modules/adm-zip/adm-zip.js | 404 ++ .../adm-zip/headers/entryHeader.js | 261 + .../node_modules/adm-zip/headers/index.js | 2 + .../adm-zip/headers/mainHeader.js | 80 + .../node_modules/adm-zip/methods/deflater.js | 1578 +++++ .../node_modules/adm-zip/methods/index.js | 2 + .../node_modules/adm-zip/methods/inflater.js | 448 ++ .../node_modules/adm-zip/package.json | 43 + .../adm-zip/test/assets/attributes_test.zip | Bin 0 -> 4189 bytes .../attributes_test/New folder/hidden.txt | 17 + .../New folder/hidden_readonly.txt | 17 + .../attributes_test/New folder/readonly.txt | 17 + .../attributes_test/New folder/somefile.txt | 17 + .../attributes_test/asd/New Text Document.txt | 0 .../assets/attributes_test/blank file.txt | 0 .../node_modules/adm-zip/test/assets/fast.zip | Bin 0 -> 4194 bytes .../adm-zip/test/assets/fastest.zip | Bin 0 -> 4194 bytes .../adm-zip/test/assets/linux_arc.zip | Bin 0 -> 415 bytes .../adm-zip/test/assets/maximum.zip | Bin 0 -> 4086 bytes .../adm-zip/test/assets/normal.zip | Bin 0 -> 4170 bytes .../adm-zip/test/assets/store.zip | Bin 0 -> 5878 bytes .../adm-zip/test/assets/ultra.zip | Bin 0 -> 4086 bytes .../node_modules/adm-zip/test/index.js | 5 + .../node_modules/adm-zip/util/constants.js | 84 + .../node_modules/adm-zip/util/errors.js | 35 + .../node_modules/adm-zip/util/fattr.js | 84 + .../node_modules/adm-zip/util/index.js | 4 + .../node_modules/adm-zip/util/utils.js | 145 + .../node_modules/adm-zip/zipEntry.js | 224 + .../node_modules/adm-zip/zipFile.js | 311 + .../node_modules/stream-combiner/.npmignore | 3 + .../node_modules/stream-combiner/.travis.yml | 4 + .../node_modules/stream-combiner/LICENSE | 22 + .../node_modules/stream-combiner/README.md | 29 + .../node_modules/stream-combiner/index.js | 39 + .../node_modules/duplexer/.npmignore | 3 + .../node_modules/duplexer/.travis.yml | 6 + .../node_modules/duplexer/LICENCE | 19 + .../node_modules/duplexer/README.md | 47 + .../node_modules/duplexer/index.js | 87 + .../node_modules/duplexer/package.json | 61 + .../node_modules/duplexer/test/index.js | 31 + .../node_modules/stream-combiner/package.json | 37 + .../stream-combiner/test/index.js | 52 + .../decompress/node_modules/tar/.npmignore | 5 + .../decompress/node_modules/tar/.travis.yml | 3 + .../decompress/node_modules/tar/LICENCE | 25 + .../decompress/node_modules/tar/README.md | 46 + .../node_modules/tar/examples/extracter.js | 11 + .../node_modules/tar/examples/reader.js | 36 + .../node_modules/tar/lib/buffer-entry.js | 30 + .../node_modules/tar/lib/entry-writer.js | 169 + .../decompress/node_modules/tar/lib/entry.js | 213 + .../tar/lib/extended-header-writer.js | 191 + .../node_modules/tar/lib/extended-header.js | 140 + .../node_modules/tar/lib/extract.js | 78 + .../tar/lib/global-header-writer.js | 14 + .../decompress/node_modules/tar/lib/header.js | 385 ++ .../decompress/node_modules/tar/lib/pack.js | 231 + .../decompress/node_modules/tar/lib/parse.js | 270 + .../tar/node_modules/block-stream/LICENCE | 25 + .../tar/node_modules/block-stream/README.md | 14 + .../block-stream/bench/block-stream-pause.js | 70 + .../block-stream/bench/block-stream.js | 68 + .../block-stream/bench/dropper-pause.js | 70 + .../block-stream/bench/dropper.js | 68 + .../node_modules/block-stream/block-stream.js | 209 + .../node_modules/block-stream/package.json | 40 + .../node_modules/block-stream/test/basic.js | 27 + .../block-stream/test/nopad-thorough.js | 68 + .../node_modules/block-stream/test/nopad.js | 57 + .../block-stream/test/pause-resume.js | 73 + .../block-stream/test/thorough.js | 68 + .../block-stream/test/two-stream.js | 59 + .../tar/node_modules/fstream/.npmignore | 5 + .../tar/node_modules/fstream/.travis.yml | 3 + .../tar/node_modules/fstream/LICENSE | 27 + .../tar/node_modules/fstream/README.md | 76 + .../fstream/examples/filter-pipe.js | 131 + .../tar/node_modules/fstream/examples/pipe.js | 115 + .../node_modules/fstream/examples/reader.js | 54 + .../fstream/examples/symlink-write.js | 24 + .../tar/node_modules/fstream/fstream.js | 31 + .../tar/node_modules/fstream/lib/abstract.js | 85 + .../tar/node_modules/fstream/lib/collect.js | 67 + .../node_modules/fstream/lib/dir-reader.js | 251 + .../node_modules/fstream/lib/dir-writer.js | 171 + .../node_modules/fstream/lib/file-reader.js | 147 + .../node_modules/fstream/lib/file-writer.js | 100 + .../tar/node_modules/fstream/lib/get-type.js | 32 + .../node_modules/fstream/lib/link-reader.js | 54 + .../node_modules/fstream/lib/link-writer.js | 95 + .../node_modules/fstream/lib/proxy-reader.js | 93 + .../node_modules/fstream/lib/proxy-writer.js | 109 + .../tar/node_modules/fstream/lib/reader.js | 260 + .../node_modules/fstream/lib/socket-reader.js | 38 + .../tar/node_modules/fstream/lib/writer.js | 389 ++ .../tar/node_modules/fstream/package.json | 43 + .../tar/node_modules/inherits/LICENSE | 16 + .../tar/node_modules/inherits/README.md | 42 + .../tar/node_modules/inherits/inherits.js | 1 + .../node_modules/inherits/inherits_browser.js | 23 + .../tar/node_modules/inherits/package.json | 37 + .../tar/node_modules/inherits/test.js | 25 + .../decompress/node_modules/tar/package.json | 40 + .../decompress/node_modules/tar/tar.js | 173 + .../tar/test/00-setup-fixtures.js | 53 + .../node_modules/tar/test/extract.js | 358 ++ .../node_modules/tar/test/fixtures.tgz | Bin 0 -> 19205 bytes .../node_modules/tar/test/header.js | 183 + .../tar/test/pack-no-proprietary.js | 854 +++ .../decompress/node_modules/tar/test/pack.js | 897 +++ .../decompress/node_modules/tar/test/parse.js | 359 ++ .../node_modules/tar/test/zz-cleanup.js | 20 + .../decompress/node_modules/tempfile/index.js | 8 + .../tempfile/node_modules/uuid/.npmignore | 2 + .../tempfile/node_modules/uuid/.travis.yml | 5 + .../tempfile/node_modules/uuid/LICENSE.md | 2 + .../tempfile/node_modules/uuid/README.md | 204 + .../node_modules/uuid/benchmark/README.md | 53 + .../node_modules/uuid/benchmark/bench.gnu | 174 + .../node_modules/uuid/benchmark/bench.sh | 34 + .../uuid/benchmark/benchmark-native.c | 34 + .../node_modules/uuid/benchmark/benchmark.js | 84 + .../node_modules/uuid/misc/compare.js | 62 + .../tempfile/node_modules/uuid/misc/perf.js | 102 + .../tempfile/node_modules/uuid/package.json | 56 + .../tempfile/node_modules/uuid/rng-browser.js | 31 + .../tempfile/node_modules/uuid/rng.js | 4 + .../node_modules/uuid/test/mocha.opts | 1 + .../tempfile/node_modules/uuid/test/test.js | 105 + .../tempfile/node_modules/uuid/uuid.js | 187 + .../node_modules/tempfile/package.json | 52 + .../node_modules/tempfile/readme.md | 36 + .../node_modules/decompress/package.json | 55 + .../node_modules/each-async/each-async.js | 72 + .../node_modules/each-async/package.json | 54 + .../node_modules/each-async/readme.md | 78 + .../download/node_modules/request/.npmignore | 2 + .../download/node_modules/request/.travis.yml | 12 + .../download/node_modules/request/LICENSE | 55 + .../download/node_modules/request/README.md | 366 ++ .../node_modules/request/dns-request.js | 7 + .../download/node_modules/request/index.js | 157 + .../download/node_modules/request/lib/copy.js | 8 + .../node_modules/request/lib/debug.js | 7 + .../node_modules/request/lib/getSafe.js | 34 + .../node_modules/request/lib/optional.js | 5 + .../request/node_modules/aws-sign2/LICENSE | 55 + .../request/node_modules/aws-sign2/README.md | 4 + .../request/node_modules/aws-sign2/index.js | 202 + .../node_modules/aws-sign2/package.json | 32 + .../node_modules/forever-agent/LICENSE | 55 + .../node_modules/forever-agent/README.md | 4 + .../node_modules/forever-agent/index.js | 119 + .../node_modules/forever-agent/package.json | 32 + .../request/node_modules/form-data/License | 19 + .../request/node_modules/form-data/Readme.md | 163 + .../node_modules/form-data/lib/form_data.js | 325 + .../form-data/node_modules/async/LICENSE | 19 + .../form-data/node_modules/async/README.md | 1425 +++++ .../node_modules/async/component.json | 11 + .../form-data/node_modules/async/lib/async.js | 958 +++ .../form-data/node_modules/async/package.json | 47 + .../node_modules/combined-stream/.npmignore | 3 + .../node_modules/combined-stream/License | 19 + .../node_modules/combined-stream/Makefile | 7 + .../node_modules/combined-stream/Readme.md | 132 + .../combined-stream/lib/combined_stream.js | 185 + .../node_modules/delayed-stream/.npmignore | 2 + .../node_modules/delayed-stream/License | 19 + .../node_modules/delayed-stream/Makefile | 7 + .../node_modules/delayed-stream/Readme.md | 154 + .../delayed-stream/lib/delayed_stream.js | 99 + .../node_modules/delayed-stream/package.json | 35 + .../delayed-stream/test/common.js | 6 + .../integration/test-delayed-http-upload.js | 38 + .../test-delayed-stream-auto-pause.js | 21 + .../integration/test-delayed-stream-pause.js | 14 + .../test/integration/test-delayed-stream.js | 48 + .../integration/test-handle-source-errors.js | 15 + .../test/integration/test-max-data-size.js | 18 + .../test/integration/test-pipe-resumes.js | 13 + .../test/integration/test-proxy-readable.js | 13 + .../node_modules/delayed-stream/test/run.js | 7 + .../node_modules/combined-stream/package.json | 36 + .../combined-stream/test/common.js | 23 + .../combined-stream/test/fixture/file1.txt | 256 + .../combined-stream/test/fixture/file2.txt | 256 + .../test/integration/test-callback-streams.js | 27 + .../test/integration/test-data-size.js | 34 + ...delayed-streams-and-buffers-and-strings.js | 38 + .../test/integration/test-delayed-streams.js | 35 + .../test/integration/test-empty-string.js | 39 + .../test/integration/test-is-stream-like.js | 17 + .../test/integration/test-max-data-size.js | 24 + .../test/integration/test-unpaused-streams.js | 30 + .../node_modules/combined-stream/test/run.js | 7 + .../node_modules/form-data/package.json | 50 + .../request/node_modules/hawk/.npmignore | 18 + .../request/node_modules/hawk/.travis.yml | 5 + .../request/node_modules/hawk/LICENSE | 24 + .../request/node_modules/hawk/Makefile | 10 + .../request/node_modules/hawk/README.md | 627 ++ .../node_modules/hawk/example/usage.js | 78 + .../request/node_modules/hawk/images/hawk.png | Bin 0 -> 6945 bytes .../request/node_modules/hawk/images/logo.png | Bin 0 -> 71732 bytes .../request/node_modules/hawk/index.js | 1 + .../request/node_modules/hawk/lib/browser.js | 485 ++ .../request/node_modules/hawk/lib/client.js | 367 ++ .../request/node_modules/hawk/lib/crypto.js | 111 + .../request/node_modules/hawk/lib/index.js | 15 + .../request/node_modules/hawk/lib/server.js | 524 ++ .../request/node_modules/hawk/lib/utils.js | 183 + .../hawk/node_modules/boom/.npmignore | 18 + .../hawk/node_modules/boom/.travis.yml | 5 + .../hawk/node_modules/boom/LICENSE | 24 + .../hawk/node_modules/boom/Makefile | 11 + .../hawk/node_modules/boom/README.md | 6 + .../hawk/node_modules/boom/images/boom.png | Bin 0 -> 29479 bytes .../hawk/node_modules/boom/index.js | 1 + .../hawk/node_modules/boom/lib/index.js | 207 + .../hawk/node_modules/boom/package.json | 51 + .../hawk/node_modules/boom/test/index.js | 245 + .../hawk/node_modules/cryptiles/.npmignore | 18 + .../hawk/node_modules/cryptiles/.travis.yml | 5 + .../hawk/node_modules/cryptiles/LICENSE | 24 + .../hawk/node_modules/cryptiles/Makefile | 11 + .../hawk/node_modules/cryptiles/README.md | 6 + .../hawk/node_modules/cryptiles/index.js | 1 + .../hawk/node_modules/cryptiles/lib/index.js | 68 + .../hawk/node_modules/cryptiles/package.json | 52 + .../hawk/node_modules/cryptiles/test/index.js | 101 + .../hawk/node_modules/hoek/.npmignore | 18 + .../hawk/node_modules/hoek/.travis.yml | 5 + .../hawk/node_modules/hoek/LICENSE | 33 + .../hawk/node_modules/hoek/Makefile | 10 + .../hawk/node_modules/hoek/README.md | 436 ++ .../hawk/node_modules/hoek/images/hoek.png | Bin 0 -> 37939 bytes .../hawk/node_modules/hoek/index.js | 1 + .../hawk/node_modules/hoek/lib/escape.js | 132 + .../hawk/node_modules/hoek/lib/index.js | 585 ++ .../hawk/node_modules/hoek/package.json | 53 + .../hawk/node_modules/hoek/test/escaper.js | 86 + .../hawk/node_modules/hoek/test/index.js | 1078 ++++ .../node_modules/hoek/test/modules/test1.js | 1 + .../node_modules/hoek/test/modules/test2.js | 1 + .../node_modules/hoek/test/modules/test3.js | 1 + .../hawk/node_modules/sntp/.npmignore | 18 + .../hawk/node_modules/sntp/.travis.yml | 5 + .../hawk/node_modules/sntp/LICENSE | 24 + .../hawk/node_modules/sntp/Makefile | 11 + .../hawk/node_modules/sntp/README.md | 68 + .../hawk/node_modules/sntp/examples/offset.js | 16 + .../hawk/node_modules/sntp/examples/time.js | 25 + .../hawk/node_modules/sntp/index.js | 1 + .../hawk/node_modules/sntp/lib/index.js | 409 ++ .../hawk/node_modules/sntp/package.json | 52 + .../hawk/node_modules/sntp/test/index.js | 359 ++ .../request/node_modules/hawk/package.json | 57 + .../request/node_modules/hawk/test/browser.js | 771 +++ .../request/node_modules/hawk/test/client.js | 206 + .../request/node_modules/hawk/test/crypto.js | 86 + .../request/node_modules/hawk/test/index.js | 316 + .../request/node_modules/hawk/test/message.js | 246 + .../request/node_modules/hawk/test/readme.js | 98 + .../request/node_modules/hawk/test/server.js | 686 +++ .../request/node_modules/hawk/test/uri.js | 456 ++ .../request/node_modules/hawk/test/utils.js | 120 + .../http-signature/.dir-locals.el | 6 + .../node_modules/http-signature/.npmignore | 7 + .../node_modules/http-signature/LICENSE | 18 + .../node_modules/http-signature/README.md | 75 + .../http-signature/http_signing.md | 296 + .../node_modules/http-signature/lib/index.js | 25 + .../node_modules/http-signature/lib/parser.js | 304 + .../node_modules/http-signature/lib/signer.js | 179 + .../node_modules/http-signature/lib/util.js | 249 + .../node_modules/http-signature/lib/verify.js | 42 + .../node_modules/asn1/.npmignore | 2 + .../http-signature/node_modules/asn1/LICENSE | 19 + .../node_modules/asn1/README.md | 50 + .../node_modules/asn1/lib/ber/errors.js | 13 + .../node_modules/asn1/lib/ber/index.js | 27 + .../node_modules/asn1/lib/ber/reader.js | 267 + .../node_modules/asn1/lib/ber/types.js | 36 + .../node_modules/asn1/lib/ber/writer.js | 317 + .../node_modules/asn1/lib/index.js | 20 + .../node_modules/asn1/package.json | 47 + .../node_modules/asn1/tst/ber/reader.test.js | 172 + .../node_modules/asn1/tst/ber/writer.test.js | 296 + .../node_modules/assert-plus/README.md | 126 + .../node_modules/assert-plus/assert.js | 196 + .../node_modules/assert-plus/package.json | 24 + .../node_modules/ctype/CHANGELOG | 71 + .../http-signature/node_modules/ctype/LICENSE | 24 + .../http-signature/node_modules/ctype/README | 82 + .../node_modules/ctype/README.old | 298 + .../http-signature/node_modules/ctype/ctf.js | 245 + .../http-signature/node_modules/ctype/ctio.js | 1485 +++++ .../node_modules/ctype/ctype.js | 944 +++ .../ctype/man/man3ctype/ctio.3ctype | 241 + .../node_modules/ctype/package.json | 22 + .../node_modules/ctype/tools/jsl.conf | 129 + .../node_modules/ctype/tools/jsstyle | 839 +++ .../node_modules/ctype/tst/ctf/float.json | 13 + .../node_modules/ctype/tst/ctf/int.json | 13 + .../node_modules/ctype/tst/ctf/psinfo.json | 104 + .../node_modules/ctype/tst/ctf/struct.json | 19 + .../node_modules/ctype/tst/ctf/tst.fail.js | 39 + .../node_modules/ctype/tst/ctf/tst.float.js | 14 + .../node_modules/ctype/tst/ctf/tst.int.js | 14 + .../node_modules/ctype/tst/ctf/tst.psinfo.js | 17 + .../node_modules/ctype/tst/ctf/tst.struct.js | 18 + .../node_modules/ctype/tst/ctf/tst.typedef.js | 15 + .../node_modules/ctype/tst/ctf/typedef.json | 14 + .../ctype/tst/ctio/float/tst.rfloat.js | 767 +++ .../ctype/tst/ctio/float/tst.wfloat.js | 753 +++ .../node_modules/ctype/tst/ctio/int/tst.64.js | 638 ++ .../ctype/tst/ctio/int/tst.rint.js | 101 + .../ctype/tst/ctio/int/tst.wbounds.js | 53 + .../ctype/tst/ctio/int/tst.wint.js | 92 + .../ctype/tst/ctio/uint/tst.64.js | 451 ++ .../ctype/tst/ctio/uint/tst.roundtrip.js | 81 + .../ctype/tst/ctio/uint/tst.ruint.js | 95 + .../ctype/tst/ctio/uint/tst.wuint.js | 156 + .../ctype/tst/ctype/tst.basicr.js | 50 + .../ctype/tst/ctype/tst.basicw.js | 44 + .../node_modules/ctype/tst/ctype/tst.char.js | 42 + .../ctype/tst/ctype/tst.endian.js | 45 + .../ctype/tst/ctype/tst.oldwrite.js | 28 + .../ctype/tst/ctype/tst.readSize.js | 128 + .../ctype/tst/ctype/tst.structw.js | 28 + .../ctype/tst/ctype/tst.writeStruct.js | 31 + .../node_modules/http-signature/package.json | 40 + .../node_modules/json-stringify-safe/LICENSE | 27 + .../json-stringify-safe/README.md | 49 + .../json-stringify-safe/package.json | 37 + .../json-stringify-safe/stringify.js | 39 + .../node_modules/json-stringify-safe/test.js | 128 + .../request/node_modules/mime/LICENSE | 19 + .../request/node_modules/mime/README.md | 66 + .../request/node_modules/mime/mime.js | 114 + .../request/node_modules/mime/package.json | 36 + .../request/node_modules/mime/test.js | 84 + .../node_modules/mime/types/mime.types | 1588 +++++ .../node_modules/mime/types/node.types | 77 + .../request/node_modules/node-uuid/.npmignore | 2 + .../request/node_modules/node-uuid/LICENSE.md | 2 + .../request/node_modules/node-uuid/README.md | 207 + .../node-uuid/benchmark/README.md | 53 + .../node-uuid/benchmark/bench.gnu | 174 + .../node_modules/node-uuid/benchmark/bench.sh | 34 + .../node-uuid/benchmark/benchmark-native.c | 34 + .../node-uuid/benchmark/benchmark.js | 84 + .../node_modules/node-uuid/component.json | 18 + .../node_modules/node-uuid/package.json | 39 + .../node_modules/node-uuid/test/compare_v1.js | 63 + .../node_modules/node-uuid/test/test.html | 17 + .../node_modules/node-uuid/test/test.js | 228 + .../request/node_modules/node-uuid/uuid.js | 245 + .../request/node_modules/oauth-sign/LICENSE | 55 + .../request/node_modules/oauth-sign/README.md | 4 + .../request/node_modules/oauth-sign/index.js | 43 + .../node_modules/oauth-sign/package.json | 35 + .../request/node_modules/oauth-sign/test.js | 49 + .../request/node_modules/qs/.gitmodules | 6 + .../request/node_modules/qs/.npmignore | 7 + .../request/node_modules/qs/Readme.md | 58 + .../request/node_modules/qs/index.js | 366 ++ .../request/node_modules/qs/package.json | 38 + .../node_modules/tough-cookie/.jshintrc | 72 + .../node_modules/tough-cookie/.npmignore | 3 + .../request/node_modules/tough-cookie/LICENSE | 78 + .../node_modules/tough-cookie/README.md | 380 ++ .../tough-cookie/generate-pubsuffix.js | 230 + .../node_modules/tough-cookie/lib/cookie.js | 947 +++ .../node_modules/tough-cookie/lib/memstore.js | 102 + .../tough-cookie/lib/pubsuffix.js | 69 + .../node_modules/punycode/LICENSE-GPL.txt | 278 + .../node_modules/punycode/LICENSE-MIT.txt | 20 + .../node_modules/punycode/package.json | 77 + .../node_modules/punycode/punycode.js | 508 ++ .../node_modules/punycode/punycode.min.js | 2 + .../punycode/vendor/docdown/LICENSE.txt | 20 + .../punycode/vendor/docdown/README.md | 35 + .../punycode/vendor/docdown/doc/README.md | 69 + .../punycode/vendor/docdown/doc/parse.php | 35 + .../punycode/vendor/docdown/docdown.php | 38 + .../vendor/docdown/src/DocDown/Alias.php | 226 + .../vendor/docdown/src/DocDown/Entry.php | 442 ++ .../vendor/docdown/src/DocDown/Generator.php | 563 ++ .../node_modules/tough-cookie/package.json | 50 + .../tough-cookie/public-suffix.txt | 5229 +++++++++++++++++ .../request/node_modules/tough-cookie/test.js | 1340 +++++ .../request/node_modules/tunnel-agent/LICENSE | 55 + .../node_modules/tunnel-agent/README.md | 4 + .../node_modules/tunnel-agent/index.js | 227 + .../node_modules/tunnel-agent/package.json | 32 + .../node_modules/request/package.json | 61 + .../download/node_modules/request/request.js | 1260 ++++ .../download/node_modules/through2/.jshintrc | 59 + .../download/node_modules/through2/.npmignore | 1 + .../node_modules/through2/.travis.yml | 17 + .../download/node_modules/through2/LICENSE | 39 + .../download/node_modules/through2/README.md | 131 + .../node_modules/readable-stream/.npmignore | 5 + .../node_modules/readable-stream/LICENSE | 27 + .../node_modules/readable-stream/README.md | 768 +++ .../node_modules/readable-stream/duplex.js | 1 + .../node_modules/readable-stream/float.patch | 68 + .../readable-stream/lib/_stream_duplex.js | 69 + .../lib/_stream_passthrough.js | 41 + .../readable-stream/lib/_stream_readable.js | 927 +++ .../readable-stream/lib/_stream_transform.js | 205 + .../readable-stream/lib/_stream_writable.js | 371 ++ .../node_modules/string_decoder/.npmignore | 1 + .../node_modules/string_decoder/LICENSE | 20 + .../node_modules/string_decoder/README.md | 7 + .../string_decoder/build/.npmignore | 1 + .../string_decoder/build/build.js | 94 + .../string_decoder/build/files.js | 36 + .../string_decoder/build/package.json | 12 + .../string_decoder/build/test-replacements.js | 24 + .../node_modules/string_decoder/index.js | 200 + .../node_modules/string_decoder/package.json | 36 + .../string_decoder/test/common.js | 200 + .../test/simple/test-string-decoder-end.js | 75 + .../test/simple/test-string-decoder.js | 163 + .../node_modules/readable-stream/package.json | 42 + .../readable-stream/passthrough.js | 1 + .../node_modules/readable-stream/readable.js | 6 + .../node_modules/readable-stream/transform.js | 1 + .../node_modules/readable-stream/writable.js | 1 + .../through2/node_modules/xtend/.npmignore | 1 + .../through2/node_modules/xtend/LICENCE | 19 + .../through2/node_modules/xtend/Makefile | 4 + .../through2/node_modules/xtend/README.md | 27 + .../through2/node_modules/xtend/has-keys.js | 7 + .../through2/node_modules/xtend/index.js | 25 + .../through2/node_modules/xtend/mutable.js | 25 + .../xtend/node_modules/object-keys/.npmignore | 1 + .../node_modules/object-keys/.travis.yml | 5 + .../xtend/node_modules/object-keys/README.md | 39 + .../xtend/node_modules/object-keys/foreach.js | 40 + .../xtend/node_modules/object-keys/index.js | 2 + .../node_modules/object-keys/isArguments.js | 16 + .../node_modules/object-keys/package.json | 60 + .../xtend/node_modules/object-keys/shim.js | 62 + .../node_modules/object-keys/test/foreach.js | 156 + .../node_modules/object-keys/test/index.js | 6 + .../object-keys/test/isArguments.js | 10 + .../node_modules/object-keys/test/shim.js | 134 + .../through2/node_modules/xtend/package.json | 76 + .../through2/node_modules/xtend/test.js | 63 + .../node_modules/through2/package.json | 48 + .../node_modules/through2/test/basic-test.js | 334 ++ .../node_modules/through2/test/bench.js | 42 + .../node_modules/through2/test/sauce.js | 38 + .../node_modules/through2/test/test.js | 9 + .../node_modules/through2/through2.js | 78 + .../node_modules/download/package.json | 55 + .../bin-wrapper/node_modules/isbin/.npmignore | 1 + .../node_modules/isbin/.travis.yml | 3 + .../bin-wrapper/node_modules/isbin/History.md | 20 + .../bin-wrapper/node_modules/isbin/Makefile | 6 + .../bin-wrapper/node_modules/isbin/README.md | 59 + .../bin-wrapper/node_modules/isbin/index.js | 1 + .../node_modules/isbin/lib/index.js | 51 + .../isbin/node_modules/async/.gitmodules | 9 + .../isbin/node_modules/async/.npmignore | 4 + .../isbin/node_modules/async/LICENSE | 19 + .../isbin/node_modules/async/Makefile | 25 + .../isbin/node_modules/async/README.md | 1021 ++++ .../isbin/node_modules/async/index.js | 3 + .../isbin/node_modules/async/lib/async.js | 692 +++ .../isbin/node_modules/async/package.json | 36 + .../node_modules/isbin/package.json | 45 + .../node_modules/isbin/test/isbin.js | 39 + .../node_modules/isbin/test/mocha.opts | 4 + .../node_modules/mout/.editorconfig | 20 + .../bin-wrapper/node_modules/mout/.jshintrc | 69 + .../bin-wrapper/node_modules/mout/.npmignore | 30 + .../bin-wrapper/node_modules/mout/.travis.yml | 13 + .../node_modules/mout/CHANGELOG.md | 93 + .../node_modules/mout/CONTRIBUTING.md | 61 + .../bin-wrapper/node_modules/mout/LICENSE.md | 21 + .../bin-wrapper/node_modules/mout/README.md | 63 + .../bin-wrapper/node_modules/mout/array.js | 46 + .../node_modules/mout/array/append.js | 21 + .../node_modules/mout/array/collect.js | 27 + .../node_modules/mout/array/combine.js | 22 + .../node_modules/mout/array/compact.js | 13 + .../node_modules/mout/array/contains.js | 10 + .../node_modules/mout/array/difference.js | 22 + .../node_modules/mout/array/every.js | 27 + .../node_modules/mout/array/filter.js | 27 + .../node_modules/mout/array/find.js | 13 + .../node_modules/mout/array/findIndex.js | 23 + .../node_modules/mout/array/flatten.js | 43 + .../node_modules/mout/array/forEach.js | 23 + .../node_modules/mout/array/indexOf.js | 28 + .../node_modules/mout/array/insert.js | 15 + .../node_modules/mout/array/intersection.js | 23 + .../node_modules/mout/array/invoke.js | 23 + .../node_modules/mout/array/join.js | 17 + .../node_modules/mout/array/lastIndexOf.js | 28 + .../node_modules/mout/array/map.js | 23 + .../node_modules/mout/array/max.js | 35 + .../node_modules/mout/array/min.js | 35 + .../node_modules/mout/array/pick.js | 14 + .../node_modules/mout/array/pluck.js | 12 + .../node_modules/mout/array/range.js | 27 + .../node_modules/mout/array/reduce.js | 33 + .../node_modules/mout/array/reduceRight.js | 34 + .../node_modules/mout/array/reject.js | 26 + .../node_modules/mout/array/remove.js | 13 + .../node_modules/mout/array/removeAll.js | 15 + .../node_modules/mout/array/shuffle.js | 29 + .../node_modules/mout/array/some.js | 27 + .../node_modules/mout/array/sort.js | 55 + .../node_modules/mout/array/split.js | 35 + .../node_modules/mout/array/toLookup.js | 28 + .../node_modules/mout/array/union.js | 19 + .../node_modules/mout/array/unique.js | 17 + .../node_modules/mout/array/xor.js | 26 + .../node_modules/mout/array/zip.js | 29 + .../node_modules/mout/collection.js | 22 + .../node_modules/mout/collection/contains.js | 9 + .../node_modules/mout/collection/every.js | 9 + .../node_modules/mout/collection/filter.js | 23 + .../node_modules/mout/collection/find.js | 10 + .../node_modules/mout/collection/forEach.js | 9 + .../node_modules/mout/collection/make_.js | 19 + .../node_modules/mout/collection/map.js | 23 + .../node_modules/mout/collection/max.js | 10 + .../node_modules/mout/collection/min.js | 10 + .../node_modules/mout/collection/pluck.js | 14 + .../node_modules/mout/collection/reduce.js | 9 + .../node_modules/mout/collection/reject.js | 16 + .../node_modules/mout/collection/size.js | 19 + .../node_modules/mout/collection/some.js | 9 + .../bin-wrapper/node_modules/mout/date.js | 21 + .../node_modules/mout/date/dayOfTheYear.js | 13 + .../node_modules/mout/date/diff.js | 130 + .../node_modules/mout/date/i18n/en-US.js | 61 + .../node_modules/mout/date/i18n/pt-BR.js | 61 + .../node_modules/mout/date/i18n_.js | 14 + .../node_modules/mout/date/isLeapYear.js | 15 + .../node_modules/mout/date/isSame.js | 16 + .../node_modules/mout/date/parseIso.js | 146 + .../node_modules/mout/date/startOf.js | 54 + .../node_modules/mout/date/strftime.js | 118 + .../node_modules/mout/date/timezoneAbbr.js | 17 + .../node_modules/mout/date/timezoneOffset.js | 16 + .../mout/date/totalDaysInMonth.js | 25 + .../node_modules/mout/date/totalDaysInYear.js | 13 + .../node_modules/mout/date/weekOfTheYear.js | 16 + .../node_modules/mout/doc/array.md | 773 +++ .../node_modules/mout/doc/collection.md | 233 + .../bin-wrapper/node_modules/mout/doc/date.md | 295 + .../node_modules/mout/doc/function.md | 174 + .../bin-wrapper/node_modules/mout/doc/lang.md | 385 ++ .../bin-wrapper/node_modules/mout/doc/math.md | 298 + .../node_modules/mout/doc/number.md | 225 + .../node_modules/mout/doc/object.md | 780 +++ .../node_modules/mout/doc/queryString.md | 115 + .../node_modules/mout/doc/random.md | 218 + .../node_modules/mout/doc/string.md | 594 ++ .../bin-wrapper/node_modules/mout/doc/time.md | 64 + .../bin-wrapper/node_modules/mout/function.js | 18 + .../node_modules/mout/function/bind.js | 23 + .../node_modules/mout/function/compose.js | 23 + .../node_modules/mout/function/debounce.js | 29 + .../node_modules/mout/function/func.js | 14 + .../mout/function/makeIterator_.js | 34 + .../node_modules/mout/function/partial.js | 19 + .../node_modules/mout/function/prop.js | 14 + .../node_modules/mout/function/series.js | 22 + .../node_modules/mout/function/throttle.js | 32 + .../node_modules/mout/function/timeout.js | 21 + .../bin-wrapper/node_modules/mout/index.js | 24 + .../bin-wrapper/node_modules/mout/lang.js | 36 + .../node_modules/mout/lang/clone.js | 49 + .../node_modules/mout/lang/createObject.js | 18 + .../node_modules/mout/lang/ctorApply.js | 17 + .../node_modules/mout/lang/deepClone.js | 48 + .../node_modules/mout/lang/defaults.js | 17 + .../mout/lang/inheritPrototype.js | 16 + .../bin-wrapper/node_modules/mout/lang/is.js | 23 + .../node_modules/mout/lang/isArguments.js | 15 + .../node_modules/mout/lang/isArray.js | 8 + .../node_modules/mout/lang/isBoolean.js | 8 + .../node_modules/mout/lang/isDate.js | 8 + .../node_modules/mout/lang/isEmpty.js | 24 + .../node_modules/mout/lang/isFinite.js | 21 + .../node_modules/mout/lang/isFunction.js | 8 + .../node_modules/mout/lang/isInteger.js | 12 + .../node_modules/mout/lang/isKind.js | 9 + .../node_modules/mout/lang/isNaN.js | 15 + .../node_modules/mout/lang/isNull.js | 9 + .../node_modules/mout/lang/isNumber.js | 8 + .../node_modules/mout/lang/isObject.js | 8 + .../node_modules/mout/lang/isPlainObject.js | 14 + .../node_modules/mout/lang/isRegExp.js | 8 + .../node_modules/mout/lang/isString.js | 8 + .../node_modules/mout/lang/isUndefined.js | 10 + .../node_modules/mout/lang/isnt.js | 12 + .../node_modules/mout/lang/kindOf.js | 20 + .../node_modules/mout/lang/toArray.js | 31 + .../node_modules/mout/lang/toString.js | 13 + .../bin-wrapper/node_modules/mout/math.js | 19 + .../node_modules/mout/math/ceil.js | 11 + .../node_modules/mout/math/clamp.js | 9 + .../node_modules/mout/math/countSteps.js | 16 + .../node_modules/mout/math/floor.js | 10 + .../node_modules/mout/math/inRange.js | 11 + .../node_modules/mout/math/isNear.js | 9 + .../node_modules/mout/math/lerp.js | 11 + .../node_modules/mout/math/loop.js | 10 + .../bin-wrapper/node_modules/mout/math/map.js | 11 + .../node_modules/mout/math/norm.js | 9 + .../node_modules/mout/math/round.js | 12 + .../bin-wrapper/node_modules/mout/number.js | 21 + .../node_modules/mout/number/MAX_INT.js | 6 + .../node_modules/mout/number/MAX_UINT.js | 6 + .../node_modules/mout/number/MIN_INT.js | 6 + .../node_modules/mout/number/abbreviate.js | 35 + .../mout/number/currencyFormat.js | 26 + .../mout/number/enforcePrecision.js | 13 + .../node_modules/mout/number/pad.js | 12 + .../node_modules/mout/number/rol.js | 10 + .../node_modules/mout/number/ror.js | 10 + .../node_modules/mout/number/sign.js | 15 + .../node_modules/mout/number/toInt.js | 15 + .../node_modules/mout/number/toUInt.js | 13 + .../node_modules/mout/number/toUInt31.js | 13 + .../bin-wrapper/node_modules/mout/object.js | 42 + .../node_modules/mout/object/bindAll.js | 18 + .../node_modules/mout/object/contains.js | 13 + .../node_modules/mout/object/deepEquals.js | 27 + .../node_modules/mout/object/deepFillIn.js | 32 + .../node_modules/mout/object/deepMatches.js | 55 + .../node_modules/mout/object/deepMixIn.js | 34 + .../node_modules/mout/object/equals.js | 36 + .../node_modules/mout/object/every.js | 23 + .../node_modules/mout/object/fillIn.js | 20 + .../node_modules/mout/object/filter.js | 20 + .../node_modules/mout/object/find.js | 21 + .../node_modules/mout/object/forIn.js | 62 + .../node_modules/mout/object/forOwn.js | 19 + .../node_modules/mout/object/functions.js | 18 + .../node_modules/mout/object/get.js | 20 + .../node_modules/mout/object/has.js | 15 + .../node_modules/mout/object/hasOwn.js | 12 + .../node_modules/mout/object/keys.js | 16 + .../node_modules/mout/object/map.js | 18 + .../node_modules/mout/object/matches.js | 20 + .../node_modules/mout/object/max.js | 12 + .../node_modules/mout/object/merge.js | 40 + .../node_modules/mout/object/min.js | 12 + .../node_modules/mout/object/mixIn.js | 28 + .../node_modules/mout/object/namespace.js | 19 + .../node_modules/mout/object/pick.js | 18 + .../node_modules/mout/object/pluck.js | 13 + .../node_modules/mout/object/reduce.js | 29 + .../node_modules/mout/object/reject.js | 16 + .../node_modules/mout/object/set.js | 17 + .../node_modules/mout/object/size.js | 16 + .../node_modules/mout/object/some.js | 21 + .../node_modules/mout/object/unset.js | 23 + .../node_modules/mout/object/values.js | 16 + .../node_modules/mout/package.json | 123 + .../node_modules/mout/queryString.js | 15 + .../node_modules/mout/queryString/contains.js | 12 + .../node_modules/mout/queryString/decode.js | 21 + .../node_modules/mout/queryString/encode.js | 15 + .../node_modules/mout/queryString/getParam.js | 15 + .../node_modules/mout/queryString/getQuery.js | 13 + .../node_modules/mout/queryString/parse.js | 13 + .../node_modules/mout/queryString/setParam.js | 28 + .../bin-wrapper/node_modules/mout/random.js | 16 + .../node_modules/mout/random/choice.js | 15 + .../node_modules/mout/random/guid.js | 24 + .../node_modules/mout/random/rand.js | 15 + .../node_modules/mout/random/randBit.js | 11 + .../node_modules/mout/random/randHex.js | 19 + .../node_modules/mout/random/randInt.js | 18 + .../node_modules/mout/random/randSign.js | 11 + .../node_modules/mout/random/random.js | 18 + .../node_modules/mout/src/array.js | 46 + .../node_modules/mout/src/array/append.js | 21 + .../node_modules/mout/src/array/collect.js | 26 + .../node_modules/mout/src/array/combine.js | 22 + .../node_modules/mout/src/array/compact.js | 13 + .../node_modules/mout/src/array/contains.js | 10 + .../node_modules/mout/src/array/difference.js | 19 + .../node_modules/mout/src/array/every.js | 27 + .../node_modules/mout/src/array/filter.js | 26 + .../node_modules/mout/src/array/find.js | 13 + .../node_modules/mout/src/array/findIndex.js | 23 + .../node_modules/mout/src/array/flatten.js | 42 + .../node_modules/mout/src/array/forEach.js | 23 + .../node_modules/mout/src/array/indexOf.js | 28 + .../node_modules/mout/src/array/insert.js | 14 + .../mout/src/array/intersection.js | 20 + .../node_modules/mout/src/array/invoke.js | 23 + .../node_modules/mout/src/array/join.js | 17 + .../mout/src/array/lastIndexOf.js | 28 + .../node_modules/mout/src/array/map.js | 22 + .../node_modules/mout/src/array/max.js | 34 + .../node_modules/mout/src/array/min.js | 34 + .../node_modules/mout/src/array/pick.js | 14 + .../node_modules/mout/src/array/pluck.js | 12 + .../node_modules/mout/src/array/range.js | 27 + .../node_modules/mout/src/array/reduce.js | 33 + .../mout/src/array/reduceRight.js | 34 + .../node_modules/mout/src/array/reject.js | 25 + .../node_modules/mout/src/array/remove.js | 13 + .../node_modules/mout/src/array/removeAll.js | 15 + .../node_modules/mout/src/array/shuffle.js | 28 + .../node_modules/mout/src/array/some.js | 27 + .../node_modules/mout/src/array/sort.js | 55 + .../node_modules/mout/src/array/split.js | 35 + .../node_modules/mout/src/array/toLookup.js | 28 + .../node_modules/mout/src/array/union.js | 18 + .../node_modules/mout/src/array/unique.js | 16 + .../node_modules/mout/src/array/xor.js | 24 + .../node_modules/mout/src/array/zip.js | 27 + .../node_modules/mout/src/collection.js | 22 + .../mout/src/collection/contains.js | 7 + .../node_modules/mout/src/collection/every.js | 7 + .../mout/src/collection/filter.js | 22 + .../node_modules/mout/src/collection/find.js | 8 + .../mout/src/collection/forEach.js | 7 + .../node_modules/mout/src/collection/make_.js | 19 + .../node_modules/mout/src/collection/map.js | 20 + .../node_modules/mout/src/collection/max.js | 8 + .../node_modules/mout/src/collection/min.js | 8 + .../node_modules/mout/src/collection/pluck.js | 14 + .../mout/src/collection/reduce.js | 7 + .../mout/src/collection/reject.js | 15 + .../node_modules/mout/src/collection/size.js | 18 + .../node_modules/mout/src/collection/some.js | 7 + .../bin-wrapper/node_modules/mout/src/date.js | 21 + .../mout/src/date/dayOfTheYear.js | 13 + .../node_modules/mout/src/date/diff.js | 128 + .../node_modules/mout/src/date/i18n/en-US.js | 61 + .../node_modules/mout/src/date/i18n/pt-BR.js | 61 + .../node_modules/mout/src/date/i18n_.js | 13 + .../node_modules/mout/src/date/isLeapYear.js | 15 + .../node_modules/mout/src/date/isSame.js | 16 + .../node_modules/mout/src/date/parseIso.js | 146 + .../node_modules/mout/src/date/startOf.js | 54 + .../node_modules/mout/src/date/strftime.js | 113 + .../mout/src/date/timezoneAbbr.js | 17 + .../mout/src/date/timezoneOffset.js | 16 + .../mout/src/date/totalDaysInMonth.js | 24 + .../mout/src/date/totalDaysInYear.js | 13 + .../mout/src/date/weekOfTheYear.js | 16 + .../node_modules/mout/src/function.js | 18 + .../node_modules/mout/src/function/bind.js | 23 + .../node_modules/mout/src/function/compose.js | 23 + .../mout/src/function/debounce.js | 29 + .../node_modules/mout/src/function/func.js | 14 + .../mout/src/function/makeIterator_.js | 33 + .../node_modules/mout/src/function/partial.js | 19 + .../node_modules/mout/src/function/prop.js | 14 + .../node_modules/mout/src/function/series.js | 22 + .../mout/src/function/throttle.js | 32 + .../node_modules/mout/src/function/timeout.js | 21 + .../node_modules/mout/src/index.js | 24 + .../bin-wrapper/node_modules/mout/src/lang.js | 36 + .../node_modules/mout/src/lang/clone.js | 47 + .../mout/src/lang/createObject.js | 18 + .../node_modules/mout/src/lang/ctorApply.js | 17 + .../node_modules/mout/src/lang/deepClone.js | 45 + .../node_modules/mout/src/lang/defaults.js | 16 + .../mout/src/lang/inheritPrototype.js | 16 + .../node_modules/mout/src/lang/is.js | 23 + .../node_modules/mout/src/lang/isArguments.js | 15 + .../node_modules/mout/src/lang/isArray.js | 8 + .../node_modules/mout/src/lang/isBoolean.js | 8 + .../node_modules/mout/src/lang/isDate.js | 8 + .../node_modules/mout/src/lang/isEmpty.js | 23 + .../node_modules/mout/src/lang/isFinite.js | 21 + .../node_modules/mout/src/lang/isFunction.js | 8 + .../node_modules/mout/src/lang/isInteger.js | 12 + .../node_modules/mout/src/lang/isKind.js | 9 + .../node_modules/mout/src/lang/isNaN.js | 15 + .../node_modules/mout/src/lang/isNull.js | 9 + .../node_modules/mout/src/lang/isNumber.js | 8 + .../node_modules/mout/src/lang/isObject.js | 8 + .../mout/src/lang/isPlainObject.js | 14 + .../node_modules/mout/src/lang/isRegExp.js | 8 + .../node_modules/mout/src/lang/isString.js | 8 + .../node_modules/mout/src/lang/isUndefined.js | 10 + .../node_modules/mout/src/lang/isnt.js | 12 + .../node_modules/mout/src/lang/kindOf.js | 20 + .../node_modules/mout/src/lang/toArray.js | 31 + .../node_modules/mout/src/lang/toString.js | 13 + .../bin-wrapper/node_modules/mout/src/math.js | 19 + .../node_modules/mout/src/math/ceil.js | 11 + .../node_modules/mout/src/math/clamp.js | 9 + .../node_modules/mout/src/math/countSteps.js | 16 + .../node_modules/mout/src/math/floor.js | 10 + .../node_modules/mout/src/math/inRange.js | 11 + .../node_modules/mout/src/math/isNear.js | 9 + .../node_modules/mout/src/math/lerp.js | 11 + .../node_modules/mout/src/math/loop.js | 10 + .../node_modules/mout/src/math/map.js | 10 + .../node_modules/mout/src/math/norm.js | 9 + .../node_modules/mout/src/math/round.js | 12 + .../node_modules/mout/src/number.js | 21 + .../node_modules/mout/src/number/MAX_INT.js | 6 + .../node_modules/mout/src/number/MAX_UINT.js | 6 + .../node_modules/mout/src/number/MIN_INT.js | 6 + .../mout/src/number/abbreviate.js | 35 + .../mout/src/number/currencyFormat.js | 26 + .../mout/src/number/enforcePrecision.js | 13 + .../node_modules/mout/src/number/pad.js | 12 + .../node_modules/mout/src/number/rol.js | 10 + .../node_modules/mout/src/number/ror.js | 10 + .../node_modules/mout/src/number/sign.js | 15 + .../node_modules/mout/src/number/toInt.js | 15 + .../node_modules/mout/src/number/toUInt.js | 13 + .../node_modules/mout/src/number/toUInt31.js | 13 + .../node_modules/mout/src/object.js | 42 + .../node_modules/mout/src/object/bindAll.js | 16 + .../node_modules/mout/src/object/contains.js | 13 + .../mout/src/object/deepEquals.js | 26 + .../mout/src/object/deepFillIn.js | 31 + .../mout/src/object/deepMatches.js | 54 + .../node_modules/mout/src/object/deepMixIn.js | 33 + .../node_modules/mout/src/object/equals.js | 34 + .../node_modules/mout/src/object/every.js | 22 + .../node_modules/mout/src/object/fillIn.js | 19 + .../node_modules/mout/src/object/filter.js | 19 + .../node_modules/mout/src/object/find.js | 20 + .../node_modules/mout/src/object/forIn.js | 62 + .../node_modules/mout/src/object/forOwn.js | 18 + .../node_modules/mout/src/object/functions.js | 18 + .../node_modules/mout/src/object/get.js | 20 + .../node_modules/mout/src/object/has.js | 15 + .../node_modules/mout/src/object/hasOwn.js | 12 + .../node_modules/mout/src/object/keys.js | 16 + .../node_modules/mout/src/object/map.js | 17 + .../node_modules/mout/src/object/matches.js | 20 + .../node_modules/mout/src/object/max.js | 11 + .../node_modules/mout/src/object/merge.js | 38 + .../node_modules/mout/src/object/min.js | 11 + .../node_modules/mout/src/object/mixIn.js | 28 + .../node_modules/mout/src/object/namespace.js | 19 + .../node_modules/mout/src/object/pick.js | 18 + .../node_modules/mout/src/object/pluck.js | 12 + .../node_modules/mout/src/object/reduce.js | 28 + .../node_modules/mout/src/object/reject.js | 15 + .../node_modules/mout/src/object/set.js | 17 + .../node_modules/mout/src/object/size.js | 16 + .../node_modules/mout/src/object/some.js | 20 + .../node_modules/mout/src/object/unset.js | 23 + .../node_modules/mout/src/object/values.js | 16 + .../node_modules/mout/src/queryString.js | 15 + .../mout/src/queryString/contains.js | 12 + .../mout/src/queryString/decode.js | 20 + .../mout/src/queryString/encode.js | 15 + .../mout/src/queryString/getParam.js | 14 + .../mout/src/queryString/getQuery.js | 13 + .../mout/src/queryString/parse.js | 12 + .../mout/src/queryString/setParam.js | 28 + .../node_modules/mout/src/random.js | 16 + .../node_modules/mout/src/random/choice.js | 14 + .../node_modules/mout/src/random/guid.js | 23 + .../node_modules/mout/src/random/rand.js | 13 + .../node_modules/mout/src/random/randBit.js | 11 + .../node_modules/mout/src/random/randHex.js | 19 + .../node_modules/mout/src/random/randInt.js | 16 + .../node_modules/mout/src/random/randSign.js | 11 + .../node_modules/mout/src/random/random.js | 18 + .../node_modules/mout/src/string.js | 45 + .../mout/src/string/WHITE_SPACES.js | 12 + .../node_modules/mout/src/string/camelCase.js | 16 + .../node_modules/mout/src/string/contains.js | 14 + .../node_modules/mout/src/string/crop.js | 11 + .../node_modules/mout/src/string/endsWith.js | 13 + .../mout/src/string/escapeHtml.js | 18 + .../mout/src/string/escapeRegExp.js | 15 + .../mout/src/string/escapeUnicode.js | 21 + .../node_modules/mout/src/string/hyphenate.js | 12 + .../mout/src/string/interpolate.js | 18 + .../node_modules/mout/src/string/lowerCase.js | 11 + .../node_modules/mout/src/string/lpad.js | 16 + .../node_modules/mout/src/string/ltrim.js | 33 + .../node_modules/mout/src/string/makePath.js | 13 + .../mout/src/string/normalizeLineBreaks.js | 18 + .../mout/src/string/pascalCase.js | 11 + .../mout/src/string/properCase.js | 11 + .../mout/src/string/removeNonASCII.js | 14 + .../mout/src/string/removeNonWord.js | 11 + .../node_modules/mout/src/string/repeat.js | 13 + .../node_modules/mout/src/string/replace.js | 32 + .../mout/src/string/replaceAccents.js | 36 + .../node_modules/mout/src/string/rpad.js | 14 + .../node_modules/mout/src/string/rtrim.js | 32 + .../mout/src/string/sentenceCase.js | 13 + .../node_modules/mout/src/string/slugify.js | 21 + .../mout/src/string/startsWith.js | 13 + .../mout/src/string/stripHtmlTags.js | 11 + .../node_modules/mout/src/string/trim.js | 12 + .../node_modules/mout/src/string/truncate.js | 20 + .../node_modules/mout/src/string/typecast.js | 29 + .../mout/src/string/unCamelCase.js | 23 + .../mout/src/string/underscore.js | 11 + .../mout/src/string/unescapeHtml.js | 18 + .../mout/src/string/unescapeUnicode.js | 16 + .../mout/src/string/unhyphenate.js | 10 + .../node_modules/mout/src/string/upperCase.js | 10 + .../bin-wrapper/node_modules/mout/src/time.js | 12 + .../node_modules/mout/src/time/convert.js | 41 + .../node_modules/mout/src/time/now.js | 12 + .../node_modules/mout/src/time/parseMs.js | 17 + .../mout/src/time/toTimeString.js | 23 + .../bin-wrapper/node_modules/mout/string.js | 45 + .../node_modules/mout/string/WHITE_SPACES.js | 12 + .../node_modules/mout/string/camelCase.js | 20 + .../node_modules/mout/string/contains.js | 14 + .../node_modules/mout/string/crop.js | 12 + .../node_modules/mout/string/endsWith.js | 13 + .../node_modules/mout/string/escapeHtml.js | 18 + .../node_modules/mout/string/escapeRegExp.js | 15 + .../node_modules/mout/string/escapeUnicode.js | 21 + .../node_modules/mout/string/hyphenate.js | 14 + .../node_modules/mout/string/interpolate.js | 18 + .../node_modules/mout/string/lowerCase.js | 11 + .../node_modules/mout/string/lpad.js | 17 + .../node_modules/mout/string/ltrim.js | 34 + .../node_modules/mout/string/makePath.js | 13 + .../mout/string/normalizeLineBreaks.js | 18 + .../node_modules/mout/string/pascalCase.js | 13 + .../node_modules/mout/string/properCase.js | 13 + .../mout/string/removeNonASCII.js | 14 + .../node_modules/mout/string/removeNonWord.js | 11 + .../node_modules/mout/string/repeat.js | 13 + .../node_modules/mout/string/replace.js | 33 + .../mout/string/replaceAccents.js | 36 + .../node_modules/mout/string/rpad.js | 15 + .../node_modules/mout/string/rtrim.js | 33 + .../node_modules/mout/string/sentenceCase.js | 15 + .../node_modules/mout/string/slugify.js | 24 + .../node_modules/mout/string/startsWith.js | 13 + .../node_modules/mout/string/stripHtmlTags.js | 11 + .../node_modules/mout/string/trim.js | 15 + .../node_modules/mout/string/truncate.js | 21 + .../node_modules/mout/string/typecast.js | 29 + .../node_modules/mout/string/unCamelCase.js | 23 + .../node_modules/mout/string/underscore.js | 13 + .../node_modules/mout/string/unescapeHtml.js | 18 + .../mout/string/unescapeUnicode.js | 16 + .../node_modules/mout/string/unhyphenate.js | 10 + .../node_modules/mout/string/upperCase.js | 10 + .../bin-wrapper/node_modules/mout/time.js | 12 + .../node_modules/mout/time/convert.js | 41 + .../bin-wrapper/node_modules/mout/time/now.js | 12 + .../node_modules/mout/time/parseMs.js | 17 + .../node_modules/mout/time/toTimeString.js | 24 + .../node_modules/progress/.npmignore | 4 + .../node_modules/progress/History.md | 42 + .../node_modules/progress/Makefile | 5 + .../node_modules/progress/Readme.md | 117 + .../node_modules/progress/index.js | 1 + .../progress/lib/node-progress.js | 183 + .../node_modules/progress/package.json | 34 + .../bin-wrapper/node_modules/rimraf/AUTHORS | 6 + .../bin-wrapper/node_modules/rimraf/LICENSE | 23 + .../bin-wrapper/node_modules/rimraf/README.md | 30 + .../bin-wrapper/node_modules/rimraf/bin.js | 33 + .../node_modules/rimraf/package.json | 60 + .../bin-wrapper/node_modules/rimraf/rimraf.js | 178 + .../node_modules/rimraf/test/run.sh | 10 + .../node_modules/rimraf/test/setup.sh | 47 + .../node_modules/rimraf/test/test-async.js | 5 + .../node_modules/rimraf/test/test-sync.js | 3 + .../bin-wrapper/node_modules/which/LICENSE | 23 + .../bin-wrapper/node_modules/which/README.md | 5 + .../bin-wrapper/node_modules/which/bin/which | 14 + .../node_modules/which/package.json | 35 + .../bin-wrapper/node_modules/which/which.js | 104 + .../node_modules/bin-wrapper/package.json | 54 + .../gifsicle/node_modules/chalk/chalk.js | 62 + .../node_modules/ansi-styles/ansi-styles.js | 29 + .../node_modules/ansi-styles/package.json | 62 + .../chalk/node_modules/ansi-styles/readme.md | 65 + .../chalk/node_modules/has-color/has-color.js | 24 + .../chalk/node_modules/has-color/package.json | 59 + .../chalk/node_modules/has-color/readme.md | 28 + .../gifsicle/node_modules/chalk/package.json | 65 + .../gifsicle/node_modules/chalk/readme.md | 130 + .../node_modules/gifsicle/package.json | 57 + .../image-min/node_modules/gifsicle/readme.md | 50 + .../node_modules/gifsicle/vendor/gifsicle | Bin 0 -> 170964 bytes .../node_modules/jpegtran-bin/bin/jpegtran.js | 8 + .../node_modules/jpegtran-bin/lib/check.js | 32 + .../node_modules/jpegtran-bin/lib/jpegtran.js | 56 + .../node_modules/bin-wrapper/README.md | 67 + .../node_modules/bin-wrapper/bin-wrapper.js | 222 + .../bin-wrapper/node_modules/.bin/rimraf | 1 + .../bin-wrapper/node_modules/.bin/which | 1 + .../node_modules/download/README.md | 84 + .../node_modules/download/download.js | 100 + .../node_modules/decompress/README.md | 71 + .../node_modules/decompress/decompress.js | 168 + .../adm-zip/.idea/scopes/scope_settings.xml | 5 + .../node_modules/adm-zip/MIT-LICENSE.txt | 21 + .../decompress/node_modules/adm-zip/README.md | 64 + .../node_modules/adm-zip/adm-zip.js | 404 ++ .../adm-zip/headers/entryHeader.js | 261 + .../node_modules/adm-zip/headers/index.js | 2 + .../adm-zip/headers/mainHeader.js | 80 + .../node_modules/adm-zip/methods/deflater.js | 1578 +++++ .../node_modules/adm-zip/methods/index.js | 2 + .../node_modules/adm-zip/methods/inflater.js | 448 ++ .../node_modules/adm-zip/package.json | 43 + .../adm-zip/test/assets/attributes_test.zip | Bin 0 -> 4189 bytes .../attributes_test/New folder/hidden.txt | 17 + .../New folder/hidden_readonly.txt | 17 + .../attributes_test/New folder/readonly.txt | 17 + .../attributes_test/New folder/somefile.txt | 17 + .../attributes_test/asd/New Text Document.txt | 0 .../assets/attributes_test/blank file.txt | 0 .../node_modules/adm-zip/test/assets/fast.zip | Bin 0 -> 4194 bytes .../adm-zip/test/assets/fastest.zip | Bin 0 -> 4194 bytes .../adm-zip/test/assets/linux_arc.zip | Bin 0 -> 415 bytes .../adm-zip/test/assets/maximum.zip | Bin 0 -> 4086 bytes .../adm-zip/test/assets/normal.zip | Bin 0 -> 4170 bytes .../adm-zip/test/assets/store.zip | Bin 0 -> 5878 bytes .../adm-zip/test/assets/ultra.zip | Bin 0 -> 4086 bytes .../node_modules/adm-zip/test/index.js | 5 + .../node_modules/adm-zip/util/constants.js | 84 + .../node_modules/adm-zip/util/errors.js | 35 + .../node_modules/adm-zip/util/fattr.js | 84 + .../node_modules/adm-zip/util/index.js | 4 + .../node_modules/adm-zip/util/utils.js | 145 + .../node_modules/adm-zip/zipEntry.js | 224 + .../node_modules/adm-zip/zipFile.js | 311 + .../node_modules/stream-combiner/.npmignore | 3 + .../node_modules/stream-combiner/.travis.yml | 4 + .../node_modules/stream-combiner/LICENSE | 22 + .../node_modules/stream-combiner/README.md | 29 + .../node_modules/stream-combiner/index.js | 39 + .../node_modules/duplexer/.npmignore | 3 + .../node_modules/duplexer/.travis.yml | 6 + .../node_modules/duplexer/LICENCE | 19 + .../node_modules/duplexer/README.md | 47 + .../node_modules/duplexer/index.js | 87 + .../node_modules/duplexer/package.json | 61 + .../node_modules/duplexer/test/index.js | 31 + .../node_modules/stream-combiner/package.json | 37 + .../stream-combiner/test/index.js | 52 + .../decompress/node_modules/tar/.npmignore | 5 + .../decompress/node_modules/tar/.travis.yml | 3 + .../decompress/node_modules/tar/LICENCE | 25 + .../decompress/node_modules/tar/README.md | 46 + .../node_modules/tar/examples/extracter.js | 11 + .../node_modules/tar/examples/reader.js | 36 + .../node_modules/tar/lib/buffer-entry.js | 30 + .../node_modules/tar/lib/entry-writer.js | 169 + .../decompress/node_modules/tar/lib/entry.js | 213 + .../tar/lib/extended-header-writer.js | 191 + .../node_modules/tar/lib/extended-header.js | 140 + .../node_modules/tar/lib/extract.js | 78 + .../tar/lib/global-header-writer.js | 14 + .../decompress/node_modules/tar/lib/header.js | 385 ++ .../decompress/node_modules/tar/lib/pack.js | 231 + .../decompress/node_modules/tar/lib/parse.js | 270 + .../tar/node_modules/block-stream/LICENCE | 25 + .../tar/node_modules/block-stream/README.md | 14 + .../block-stream/bench/block-stream-pause.js | 70 + .../block-stream/bench/block-stream.js | 68 + .../block-stream/bench/dropper-pause.js | 70 + .../block-stream/bench/dropper.js | 68 + .../node_modules/block-stream/block-stream.js | 209 + .../node_modules/block-stream/package.json | 40 + .../node_modules/block-stream/test/basic.js | 27 + .../block-stream/test/nopad-thorough.js | 68 + .../node_modules/block-stream/test/nopad.js | 57 + .../block-stream/test/pause-resume.js | 73 + .../block-stream/test/thorough.js | 68 + .../block-stream/test/two-stream.js | 59 + .../tar/node_modules/fstream/.npmignore | 5 + .../tar/node_modules/fstream/.travis.yml | 3 + .../tar/node_modules/fstream/LICENSE | 27 + .../tar/node_modules/fstream/README.md | 76 + .../fstream/examples/filter-pipe.js | 131 + .../tar/node_modules/fstream/examples/pipe.js | 115 + .../node_modules/fstream/examples/reader.js | 54 + .../fstream/examples/symlink-write.js | 24 + .../tar/node_modules/fstream/fstream.js | 31 + .../tar/node_modules/fstream/lib/abstract.js | 85 + .../tar/node_modules/fstream/lib/collect.js | 67 + .../node_modules/fstream/lib/dir-reader.js | 251 + .../node_modules/fstream/lib/dir-writer.js | 171 + .../node_modules/fstream/lib/file-reader.js | 147 + .../node_modules/fstream/lib/file-writer.js | 100 + .../tar/node_modules/fstream/lib/get-type.js | 32 + .../node_modules/fstream/lib/link-reader.js | 54 + .../node_modules/fstream/lib/link-writer.js | 95 + .../node_modules/fstream/lib/proxy-reader.js | 93 + .../node_modules/fstream/lib/proxy-writer.js | 109 + .../tar/node_modules/fstream/lib/reader.js | 260 + .../node_modules/fstream/lib/socket-reader.js | 38 + .../tar/node_modules/fstream/lib/writer.js | 389 ++ .../tar/node_modules/fstream/package.json | 43 + .../tar/node_modules/inherits/LICENSE | 16 + .../tar/node_modules/inherits/README.md | 42 + .../tar/node_modules/inherits/inherits.js | 1 + .../node_modules/inherits/inherits_browser.js | 23 + .../tar/node_modules/inherits/package.json | 37 + .../tar/node_modules/inherits/test.js | 25 + .../decompress/node_modules/tar/package.json | 40 + .../decompress/node_modules/tar/tar.js | 173 + .../tar/test/00-setup-fixtures.js | 53 + .../node_modules/tar/test/extract.js | 358 ++ .../node_modules/tar/test/fixtures.tgz | Bin 0 -> 19205 bytes .../node_modules/tar/test/header.js | 183 + .../tar/test/pack-no-proprietary.js | 854 +++ .../decompress/node_modules/tar/test/pack.js | 897 +++ .../decompress/node_modules/tar/test/parse.js | 359 ++ .../node_modules/tar/test/zz-cleanup.js | 20 + .../decompress/node_modules/tempfile/index.js | 8 + .../tempfile/node_modules/uuid/.npmignore | 2 + .../tempfile/node_modules/uuid/.travis.yml | 5 + .../tempfile/node_modules/uuid/LICENSE.md | 2 + .../tempfile/node_modules/uuid/README.md | 204 + .../node_modules/uuid/benchmark/README.md | 53 + .../node_modules/uuid/benchmark/bench.gnu | 174 + .../node_modules/uuid/benchmark/bench.sh | 34 + .../uuid/benchmark/benchmark-native.c | 34 + .../node_modules/uuid/benchmark/benchmark.js | 84 + .../node_modules/uuid/misc/compare.js | 62 + .../tempfile/node_modules/uuid/misc/perf.js | 102 + .../tempfile/node_modules/uuid/package.json | 56 + .../tempfile/node_modules/uuid/rng-browser.js | 31 + .../tempfile/node_modules/uuid/rng.js | 4 + .../node_modules/uuid/test/mocha.opts | 1 + .../tempfile/node_modules/uuid/test/test.js | 105 + .../tempfile/node_modules/uuid/uuid.js | 187 + .../node_modules/tempfile/package.json | 52 + .../node_modules/tempfile/readme.md | 36 + .../node_modules/decompress/package.json | 55 + .../node_modules/each-async/each-async.js | 72 + .../node_modules/each-async/package.json | 54 + .../node_modules/each-async/readme.md | 78 + .../download/node_modules/request/.npmignore | 2 + .../download/node_modules/request/.travis.yml | 12 + .../download/node_modules/request/LICENSE | 55 + .../download/node_modules/request/README.md | 366 ++ .../node_modules/request/dns-request.js | 7 + .../download/node_modules/request/index.js | 157 + .../download/node_modules/request/lib/copy.js | 8 + .../node_modules/request/lib/debug.js | 7 + .../node_modules/request/lib/getSafe.js | 34 + .../node_modules/request/lib/optional.js | 5 + .../request/node_modules/aws-sign2/LICENSE | 55 + .../request/node_modules/aws-sign2/README.md | 4 + .../request/node_modules/aws-sign2/index.js | 202 + .../node_modules/aws-sign2/package.json | 32 + .../node_modules/forever-agent/LICENSE | 55 + .../node_modules/forever-agent/README.md | 4 + .../node_modules/forever-agent/index.js | 119 + .../node_modules/forever-agent/package.json | 32 + .../request/node_modules/form-data/License | 19 + .../request/node_modules/form-data/Readme.md | 163 + .../node_modules/form-data/lib/form_data.js | 325 + .../form-data/node_modules/async/LICENSE | 19 + .../form-data/node_modules/async/README.md | 1425 +++++ .../node_modules/async/component.json | 11 + .../form-data/node_modules/async/lib/async.js | 958 +++ .../form-data/node_modules/async/package.json | 47 + .../node_modules/combined-stream/.npmignore | 3 + .../node_modules/combined-stream/License | 19 + .../node_modules/combined-stream/Makefile | 7 + .../node_modules/combined-stream/Readme.md | 132 + .../combined-stream/lib/combined_stream.js | 185 + .../node_modules/delayed-stream/.npmignore | 2 + .../node_modules/delayed-stream/License | 19 + .../node_modules/delayed-stream/Makefile | 7 + .../node_modules/delayed-stream/Readme.md | 154 + .../delayed-stream/lib/delayed_stream.js | 99 + .../node_modules/delayed-stream/package.json | 35 + .../delayed-stream/test/common.js | 6 + .../integration/test-delayed-http-upload.js | 38 + .../test-delayed-stream-auto-pause.js | 21 + .../integration/test-delayed-stream-pause.js | 14 + .../test/integration/test-delayed-stream.js | 48 + .../integration/test-handle-source-errors.js | 15 + .../test/integration/test-max-data-size.js | 18 + .../test/integration/test-pipe-resumes.js | 13 + .../test/integration/test-proxy-readable.js | 13 + .../node_modules/delayed-stream/test/run.js | 7 + .../node_modules/combined-stream/package.json | 36 + .../combined-stream/test/common.js | 23 + .../combined-stream/test/fixture/file1.txt | 256 + .../combined-stream/test/fixture/file2.txt | 256 + .../test/integration/test-callback-streams.js | 27 + .../test/integration/test-data-size.js | 34 + ...delayed-streams-and-buffers-and-strings.js | 38 + .../test/integration/test-delayed-streams.js | 35 + .../test/integration/test-empty-string.js | 39 + .../test/integration/test-is-stream-like.js | 17 + .../test/integration/test-max-data-size.js | 24 + .../test/integration/test-unpaused-streams.js | 30 + .../node_modules/combined-stream/test/run.js | 7 + .../node_modules/form-data/package.json | 50 + .../request/node_modules/hawk/.npmignore | 18 + .../request/node_modules/hawk/.travis.yml | 5 + .../request/node_modules/hawk/LICENSE | 24 + .../request/node_modules/hawk/Makefile | 10 + .../request/node_modules/hawk/README.md | 627 ++ .../node_modules/hawk/example/usage.js | 78 + .../request/node_modules/hawk/images/hawk.png | Bin 0 -> 6945 bytes .../request/node_modules/hawk/images/logo.png | Bin 0 -> 71732 bytes .../request/node_modules/hawk/index.js | 1 + .../request/node_modules/hawk/lib/browser.js | 485 ++ .../request/node_modules/hawk/lib/client.js | 367 ++ .../request/node_modules/hawk/lib/crypto.js | 111 + .../request/node_modules/hawk/lib/index.js | 15 + .../request/node_modules/hawk/lib/server.js | 524 ++ .../request/node_modules/hawk/lib/utils.js | 183 + .../hawk/node_modules/boom/.npmignore | 18 + .../hawk/node_modules/boom/.travis.yml | 5 + .../hawk/node_modules/boom/LICENSE | 24 + .../hawk/node_modules/boom/Makefile | 11 + .../hawk/node_modules/boom/README.md | 6 + .../hawk/node_modules/boom/images/boom.png | Bin 0 -> 29479 bytes .../hawk/node_modules/boom/index.js | 1 + .../hawk/node_modules/boom/lib/index.js | 207 + .../hawk/node_modules/boom/package.json | 51 + .../hawk/node_modules/boom/test/index.js | 245 + .../hawk/node_modules/cryptiles/.npmignore | 18 + .../hawk/node_modules/cryptiles/.travis.yml | 5 + .../hawk/node_modules/cryptiles/LICENSE | 24 + .../hawk/node_modules/cryptiles/Makefile | 11 + .../hawk/node_modules/cryptiles/README.md | 6 + .../hawk/node_modules/cryptiles/index.js | 1 + .../hawk/node_modules/cryptiles/lib/index.js | 68 + .../hawk/node_modules/cryptiles/package.json | 52 + .../hawk/node_modules/cryptiles/test/index.js | 101 + .../hawk/node_modules/hoek/.npmignore | 18 + .../hawk/node_modules/hoek/.travis.yml | 5 + .../hawk/node_modules/hoek/LICENSE | 33 + .../hawk/node_modules/hoek/Makefile | 10 + .../hawk/node_modules/hoek/README.md | 436 ++ .../hawk/node_modules/hoek/images/hoek.png | Bin 0 -> 37939 bytes .../hawk/node_modules/hoek/index.js | 1 + .../hawk/node_modules/hoek/lib/escape.js | 132 + .../hawk/node_modules/hoek/lib/index.js | 585 ++ .../hawk/node_modules/hoek/package.json | 53 + .../hawk/node_modules/hoek/test/escaper.js | 86 + .../hawk/node_modules/hoek/test/index.js | 1078 ++++ .../node_modules/hoek/test/modules/test1.js | 1 + .../node_modules/hoek/test/modules/test2.js | 1 + .../node_modules/hoek/test/modules/test3.js | 1 + .../hawk/node_modules/sntp/.npmignore | 18 + .../hawk/node_modules/sntp/.travis.yml | 5 + .../hawk/node_modules/sntp/LICENSE | 24 + .../hawk/node_modules/sntp/Makefile | 11 + .../hawk/node_modules/sntp/README.md | 68 + .../hawk/node_modules/sntp/examples/offset.js | 16 + .../hawk/node_modules/sntp/examples/time.js | 25 + .../hawk/node_modules/sntp/index.js | 1 + .../hawk/node_modules/sntp/lib/index.js | 409 ++ .../hawk/node_modules/sntp/package.json | 52 + .../hawk/node_modules/sntp/test/index.js | 359 ++ .../request/node_modules/hawk/package.json | 57 + .../request/node_modules/hawk/test/browser.js | 771 +++ .../request/node_modules/hawk/test/client.js | 206 + .../request/node_modules/hawk/test/crypto.js | 86 + .../request/node_modules/hawk/test/index.js | 316 + .../request/node_modules/hawk/test/message.js | 246 + .../request/node_modules/hawk/test/readme.js | 98 + .../request/node_modules/hawk/test/server.js | 686 +++ .../request/node_modules/hawk/test/uri.js | 456 ++ .../request/node_modules/hawk/test/utils.js | 120 + .../http-signature/.dir-locals.el | 6 + .../node_modules/http-signature/.npmignore | 7 + .../node_modules/http-signature/LICENSE | 18 + .../node_modules/http-signature/README.md | 75 + .../http-signature/http_signing.md | 296 + .../node_modules/http-signature/lib/index.js | 25 + .../node_modules/http-signature/lib/parser.js | 304 + .../node_modules/http-signature/lib/signer.js | 179 + .../node_modules/http-signature/lib/util.js | 249 + .../node_modules/http-signature/lib/verify.js | 42 + .../node_modules/asn1/.npmignore | 2 + .../http-signature/node_modules/asn1/LICENSE | 19 + .../node_modules/asn1/README.md | 50 + .../node_modules/asn1/lib/ber/errors.js | 13 + .../node_modules/asn1/lib/ber/index.js | 27 + .../node_modules/asn1/lib/ber/reader.js | 267 + .../node_modules/asn1/lib/ber/types.js | 36 + .../node_modules/asn1/lib/ber/writer.js | 317 + .../node_modules/asn1/lib/index.js | 20 + .../node_modules/asn1/package.json | 47 + .../node_modules/asn1/tst/ber/reader.test.js | 172 + .../node_modules/asn1/tst/ber/writer.test.js | 296 + .../node_modules/assert-plus/README.md | 126 + .../node_modules/assert-plus/assert.js | 196 + .../node_modules/assert-plus/package.json | 24 + .../node_modules/ctype/CHANGELOG | 71 + .../http-signature/node_modules/ctype/LICENSE | 24 + .../http-signature/node_modules/ctype/README | 82 + .../node_modules/ctype/README.old | 298 + .../http-signature/node_modules/ctype/ctf.js | 245 + .../http-signature/node_modules/ctype/ctio.js | 1485 +++++ .../node_modules/ctype/ctype.js | 944 +++ .../ctype/man/man3ctype/ctio.3ctype | 241 + .../node_modules/ctype/package.json | 22 + .../node_modules/ctype/tools/jsl.conf | 129 + .../node_modules/ctype/tools/jsstyle | 839 +++ .../node_modules/ctype/tst/ctf/float.json | 13 + .../node_modules/ctype/tst/ctf/int.json | 13 + .../node_modules/ctype/tst/ctf/psinfo.json | 104 + .../node_modules/ctype/tst/ctf/struct.json | 19 + .../node_modules/ctype/tst/ctf/tst.fail.js | 39 + .../node_modules/ctype/tst/ctf/tst.float.js | 14 + .../node_modules/ctype/tst/ctf/tst.int.js | 14 + .../node_modules/ctype/tst/ctf/tst.psinfo.js | 17 + .../node_modules/ctype/tst/ctf/tst.struct.js | 18 + .../node_modules/ctype/tst/ctf/tst.typedef.js | 15 + .../node_modules/ctype/tst/ctf/typedef.json | 14 + .../ctype/tst/ctio/float/tst.rfloat.js | 767 +++ .../ctype/tst/ctio/float/tst.wfloat.js | 753 +++ .../node_modules/ctype/tst/ctio/int/tst.64.js | 638 ++ .../ctype/tst/ctio/int/tst.rint.js | 101 + .../ctype/tst/ctio/int/tst.wbounds.js | 53 + .../ctype/tst/ctio/int/tst.wint.js | 92 + .../ctype/tst/ctio/uint/tst.64.js | 451 ++ .../ctype/tst/ctio/uint/tst.roundtrip.js | 81 + .../ctype/tst/ctio/uint/tst.ruint.js | 95 + .../ctype/tst/ctio/uint/tst.wuint.js | 156 + .../ctype/tst/ctype/tst.basicr.js | 50 + .../ctype/tst/ctype/tst.basicw.js | 44 + .../node_modules/ctype/tst/ctype/tst.char.js | 42 + .../ctype/tst/ctype/tst.endian.js | 45 + .../ctype/tst/ctype/tst.oldwrite.js | 28 + .../ctype/tst/ctype/tst.readSize.js | 128 + .../ctype/tst/ctype/tst.structw.js | 28 + .../ctype/tst/ctype/tst.writeStruct.js | 31 + .../node_modules/http-signature/package.json | 40 + .../node_modules/json-stringify-safe/LICENSE | 27 + .../json-stringify-safe/README.md | 49 + .../json-stringify-safe/package.json | 37 + .../json-stringify-safe/stringify.js | 39 + .../node_modules/json-stringify-safe/test.js | 128 + .../request/node_modules/mime/LICENSE | 19 + .../request/node_modules/mime/README.md | 66 + .../request/node_modules/mime/mime.js | 114 + .../request/node_modules/mime/package.json | 36 + .../request/node_modules/mime/test.js | 84 + .../node_modules/mime/types/mime.types | 1588 +++++ .../node_modules/mime/types/node.types | 77 + .../request/node_modules/node-uuid/.npmignore | 2 + .../request/node_modules/node-uuid/LICENSE.md | 2 + .../request/node_modules/node-uuid/README.md | 207 + .../node-uuid/benchmark/README.md | 53 + .../node-uuid/benchmark/bench.gnu | 174 + .../node_modules/node-uuid/benchmark/bench.sh | 34 + .../node-uuid/benchmark/benchmark-native.c | 34 + .../node-uuid/benchmark/benchmark.js | 84 + .../node_modules/node-uuid/component.json | 18 + .../node_modules/node-uuid/package.json | 39 + .../node_modules/node-uuid/test/compare_v1.js | 63 + .../node_modules/node-uuid/test/test.html | 17 + .../node_modules/node-uuid/test/test.js | 228 + .../request/node_modules/node-uuid/uuid.js | 245 + .../request/node_modules/oauth-sign/LICENSE | 55 + .../request/node_modules/oauth-sign/README.md | 4 + .../request/node_modules/oauth-sign/index.js | 43 + .../node_modules/oauth-sign/package.json | 35 + .../request/node_modules/oauth-sign/test.js | 49 + .../request/node_modules/qs/.gitmodules | 6 + .../request/node_modules/qs/.npmignore | 7 + .../request/node_modules/qs/Readme.md | 58 + .../request/node_modules/qs/index.js | 366 ++ .../request/node_modules/qs/package.json | 38 + .../node_modules/tough-cookie/.jshintrc | 72 + .../node_modules/tough-cookie/.npmignore | 3 + .../request/node_modules/tough-cookie/LICENSE | 78 + .../node_modules/tough-cookie/README.md | 380 ++ .../tough-cookie/generate-pubsuffix.js | 230 + .../node_modules/tough-cookie/lib/cookie.js | 947 +++ .../node_modules/tough-cookie/lib/memstore.js | 102 + .../tough-cookie/lib/pubsuffix.js | 69 + .../node_modules/punycode/LICENSE-GPL.txt | 278 + .../node_modules/punycode/LICENSE-MIT.txt | 20 + .../node_modules/punycode/package.json | 77 + .../node_modules/punycode/punycode.js | 508 ++ .../node_modules/punycode/punycode.min.js | 2 + .../punycode/vendor/docdown/LICENSE.txt | 20 + .../punycode/vendor/docdown/README.md | 35 + .../punycode/vendor/docdown/doc/README.md | 69 + .../punycode/vendor/docdown/doc/parse.php | 35 + .../punycode/vendor/docdown/docdown.php | 38 + .../vendor/docdown/src/DocDown/Alias.php | 226 + .../vendor/docdown/src/DocDown/Entry.php | 442 ++ .../vendor/docdown/src/DocDown/Generator.php | 563 ++ .../node_modules/tough-cookie/package.json | 50 + .../tough-cookie/public-suffix.txt | 5229 +++++++++++++++++ .../request/node_modules/tough-cookie/test.js | 1340 +++++ .../request/node_modules/tunnel-agent/LICENSE | 55 + .../node_modules/tunnel-agent/README.md | 4 + .../node_modules/tunnel-agent/index.js | 227 + .../node_modules/tunnel-agent/package.json | 32 + .../node_modules/request/package.json | 61 + .../download/node_modules/request/request.js | 1260 ++++ .../download/node_modules/through2/.jshintrc | 59 + .../download/node_modules/through2/.npmignore | 1 + .../node_modules/through2/.travis.yml | 17 + .../download/node_modules/through2/LICENSE | 39 + .../download/node_modules/through2/README.md | 131 + .../node_modules/readable-stream/.npmignore | 5 + .../node_modules/readable-stream/LICENSE | 27 + .../node_modules/readable-stream/README.md | 768 +++ .../node_modules/readable-stream/duplex.js | 1 + .../node_modules/readable-stream/float.patch | 68 + .../readable-stream/lib/_stream_duplex.js | 69 + .../lib/_stream_passthrough.js | 41 + .../readable-stream/lib/_stream_readable.js | 927 +++ .../readable-stream/lib/_stream_transform.js | 205 + .../readable-stream/lib/_stream_writable.js | 371 ++ .../node_modules/string_decoder/.npmignore | 1 + .../node_modules/string_decoder/LICENSE | 20 + .../node_modules/string_decoder/README.md | 7 + .../string_decoder/build/.npmignore | 1 + .../string_decoder/build/build.js | 94 + .../string_decoder/build/files.js | 36 + .../string_decoder/build/package.json | 12 + .../string_decoder/build/test-replacements.js | 24 + .../node_modules/string_decoder/index.js | 200 + .../node_modules/string_decoder/package.json | 36 + .../string_decoder/test/common.js | 200 + .../test/simple/test-string-decoder-end.js | 75 + .../test/simple/test-string-decoder.js | 163 + .../node_modules/readable-stream/package.json | 42 + .../readable-stream/passthrough.js | 1 + .../node_modules/readable-stream/readable.js | 6 + .../node_modules/readable-stream/transform.js | 1 + .../node_modules/readable-stream/writable.js | 1 + .../through2/node_modules/xtend/.npmignore | 1 + .../through2/node_modules/xtend/LICENCE | 19 + .../through2/node_modules/xtend/Makefile | 4 + .../through2/node_modules/xtend/README.md | 27 + .../through2/node_modules/xtend/has-keys.js | 7 + .../through2/node_modules/xtend/index.js | 25 + .../through2/node_modules/xtend/mutable.js | 25 + .../xtend/node_modules/object-keys/.npmignore | 1 + .../node_modules/object-keys/.travis.yml | 5 + .../xtend/node_modules/object-keys/README.md | 39 + .../xtend/node_modules/object-keys/foreach.js | 40 + .../xtend/node_modules/object-keys/index.js | 2 + .../node_modules/object-keys/isArguments.js | 16 + .../node_modules/object-keys/package.json | 60 + .../xtend/node_modules/object-keys/shim.js | 62 + .../node_modules/object-keys/test/foreach.js | 156 + .../node_modules/object-keys/test/index.js | 6 + .../object-keys/test/isArguments.js | 10 + .../node_modules/object-keys/test/shim.js | 134 + .../through2/node_modules/xtend/package.json | 76 + .../through2/node_modules/xtend/test.js | 63 + .../node_modules/through2/package.json | 48 + .../node_modules/through2/test/basic-test.js | 334 ++ .../node_modules/through2/test/bench.js | 42 + .../node_modules/through2/test/sauce.js | 38 + .../node_modules/through2/test/test.js | 9 + .../node_modules/through2/through2.js | 78 + .../node_modules/download/package.json | 55 + .../bin-wrapper/node_modules/isbin/.npmignore | 1 + .../node_modules/isbin/.travis.yml | 3 + .../bin-wrapper/node_modules/isbin/History.md | 20 + .../bin-wrapper/node_modules/isbin/Makefile | 6 + .../bin-wrapper/node_modules/isbin/README.md | 59 + .../bin-wrapper/node_modules/isbin/index.js | 1 + .../node_modules/isbin/lib/index.js | 51 + .../isbin/node_modules/async/.gitmodules | 9 + .../isbin/node_modules/async/.npmignore | 4 + .../isbin/node_modules/async/LICENSE | 19 + .../isbin/node_modules/async/Makefile | 25 + .../isbin/node_modules/async/README.md | 1021 ++++ .../isbin/node_modules/async/index.js | 3 + .../isbin/node_modules/async/lib/async.js | 692 +++ .../isbin/node_modules/async/package.json | 36 + .../node_modules/isbin/package.json | 45 + .../node_modules/isbin/test/isbin.js | 39 + .../node_modules/isbin/test/mocha.opts | 4 + .../node_modules/mout/.editorconfig | 20 + .../bin-wrapper/node_modules/mout/.jshintrc | 69 + .../bin-wrapper/node_modules/mout/.npmignore | 30 + .../bin-wrapper/node_modules/mout/.travis.yml | 13 + .../node_modules/mout/CHANGELOG.md | 93 + .../node_modules/mout/CONTRIBUTING.md | 61 + .../bin-wrapper/node_modules/mout/LICENSE.md | 21 + .../bin-wrapper/node_modules/mout/README.md | 63 + .../bin-wrapper/node_modules/mout/array.js | 46 + .../node_modules/mout/array/append.js | 21 + .../node_modules/mout/array/collect.js | 27 + .../node_modules/mout/array/combine.js | 22 + .../node_modules/mout/array/compact.js | 13 + .../node_modules/mout/array/contains.js | 10 + .../node_modules/mout/array/difference.js | 22 + .../node_modules/mout/array/every.js | 27 + .../node_modules/mout/array/filter.js | 27 + .../node_modules/mout/array/find.js | 13 + .../node_modules/mout/array/findIndex.js | 23 + .../node_modules/mout/array/flatten.js | 43 + .../node_modules/mout/array/forEach.js | 23 + .../node_modules/mout/array/indexOf.js | 28 + .../node_modules/mout/array/insert.js | 15 + .../node_modules/mout/array/intersection.js | 23 + .../node_modules/mout/array/invoke.js | 23 + .../node_modules/mout/array/join.js | 17 + .../node_modules/mout/array/lastIndexOf.js | 28 + .../node_modules/mout/array/map.js | 23 + .../node_modules/mout/array/max.js | 35 + .../node_modules/mout/array/min.js | 35 + .../node_modules/mout/array/pick.js | 14 + .../node_modules/mout/array/pluck.js | 12 + .../node_modules/mout/array/range.js | 27 + .../node_modules/mout/array/reduce.js | 33 + .../node_modules/mout/array/reduceRight.js | 34 + .../node_modules/mout/array/reject.js | 26 + .../node_modules/mout/array/remove.js | 13 + .../node_modules/mout/array/removeAll.js | 15 + .../node_modules/mout/array/shuffle.js | 29 + .../node_modules/mout/array/some.js | 27 + .../node_modules/mout/array/sort.js | 55 + .../node_modules/mout/array/split.js | 35 + .../node_modules/mout/array/toLookup.js | 28 + .../node_modules/mout/array/union.js | 19 + .../node_modules/mout/array/unique.js | 17 + .../node_modules/mout/array/xor.js | 26 + .../node_modules/mout/array/zip.js | 29 + .../node_modules/mout/collection.js | 22 + .../node_modules/mout/collection/contains.js | 9 + .../node_modules/mout/collection/every.js | 9 + .../node_modules/mout/collection/filter.js | 23 + .../node_modules/mout/collection/find.js | 10 + .../node_modules/mout/collection/forEach.js | 9 + .../node_modules/mout/collection/make_.js | 19 + .../node_modules/mout/collection/map.js | 23 + .../node_modules/mout/collection/max.js | 10 + .../node_modules/mout/collection/min.js | 10 + .../node_modules/mout/collection/pluck.js | 14 + .../node_modules/mout/collection/reduce.js | 9 + .../node_modules/mout/collection/reject.js | 16 + .../node_modules/mout/collection/size.js | 19 + .../node_modules/mout/collection/some.js | 9 + .../bin-wrapper/node_modules/mout/date.js | 21 + .../node_modules/mout/date/dayOfTheYear.js | 13 + .../node_modules/mout/date/diff.js | 130 + .../node_modules/mout/date/i18n/en-US.js | 61 + .../node_modules/mout/date/i18n/pt-BR.js | 61 + .../node_modules/mout/date/i18n_.js | 14 + .../node_modules/mout/date/isLeapYear.js | 15 + .../node_modules/mout/date/isSame.js | 16 + .../node_modules/mout/date/parseIso.js | 146 + .../node_modules/mout/date/startOf.js | 54 + .../node_modules/mout/date/strftime.js | 118 + .../node_modules/mout/date/timezoneAbbr.js | 17 + .../node_modules/mout/date/timezoneOffset.js | 16 + .../mout/date/totalDaysInMonth.js | 25 + .../node_modules/mout/date/totalDaysInYear.js | 13 + .../node_modules/mout/date/weekOfTheYear.js | 16 + .../node_modules/mout/doc/array.md | 773 +++ .../node_modules/mout/doc/collection.md | 233 + .../bin-wrapper/node_modules/mout/doc/date.md | 295 + .../node_modules/mout/doc/function.md | 174 + .../bin-wrapper/node_modules/mout/doc/lang.md | 385 ++ .../bin-wrapper/node_modules/mout/doc/math.md | 298 + .../node_modules/mout/doc/number.md | 225 + .../node_modules/mout/doc/object.md | 780 +++ .../node_modules/mout/doc/queryString.md | 115 + .../node_modules/mout/doc/random.md | 218 + .../node_modules/mout/doc/string.md | 594 ++ .../bin-wrapper/node_modules/mout/doc/time.md | 64 + .../bin-wrapper/node_modules/mout/function.js | 18 + .../node_modules/mout/function/bind.js | 23 + .../node_modules/mout/function/compose.js | 23 + .../node_modules/mout/function/debounce.js | 29 + .../node_modules/mout/function/func.js | 14 + .../mout/function/makeIterator_.js | 34 + .../node_modules/mout/function/partial.js | 19 + .../node_modules/mout/function/prop.js | 14 + .../node_modules/mout/function/series.js | 22 + .../node_modules/mout/function/throttle.js | 32 + .../node_modules/mout/function/timeout.js | 21 + .../bin-wrapper/node_modules/mout/index.js | 24 + .../bin-wrapper/node_modules/mout/lang.js | 36 + .../node_modules/mout/lang/clone.js | 49 + .../node_modules/mout/lang/createObject.js | 18 + .../node_modules/mout/lang/ctorApply.js | 17 + .../node_modules/mout/lang/deepClone.js | 48 + .../node_modules/mout/lang/defaults.js | 17 + .../mout/lang/inheritPrototype.js | 16 + .../bin-wrapper/node_modules/mout/lang/is.js | 23 + .../node_modules/mout/lang/isArguments.js | 15 + .../node_modules/mout/lang/isArray.js | 8 + .../node_modules/mout/lang/isBoolean.js | 8 + .../node_modules/mout/lang/isDate.js | 8 + .../node_modules/mout/lang/isEmpty.js | 24 + .../node_modules/mout/lang/isFinite.js | 21 + .../node_modules/mout/lang/isFunction.js | 8 + .../node_modules/mout/lang/isInteger.js | 12 + .../node_modules/mout/lang/isKind.js | 9 + .../node_modules/mout/lang/isNaN.js | 15 + .../node_modules/mout/lang/isNull.js | 9 + .../node_modules/mout/lang/isNumber.js | 8 + .../node_modules/mout/lang/isObject.js | 8 + .../node_modules/mout/lang/isPlainObject.js | 14 + .../node_modules/mout/lang/isRegExp.js | 8 + .../node_modules/mout/lang/isString.js | 8 + .../node_modules/mout/lang/isUndefined.js | 10 + .../node_modules/mout/lang/isnt.js | 12 + .../node_modules/mout/lang/kindOf.js | 20 + .../node_modules/mout/lang/toArray.js | 31 + .../node_modules/mout/lang/toString.js | 13 + .../bin-wrapper/node_modules/mout/math.js | 19 + .../node_modules/mout/math/ceil.js | 11 + .../node_modules/mout/math/clamp.js | 9 + .../node_modules/mout/math/countSteps.js | 16 + .../node_modules/mout/math/floor.js | 10 + .../node_modules/mout/math/inRange.js | 11 + .../node_modules/mout/math/isNear.js | 9 + .../node_modules/mout/math/lerp.js | 11 + .../node_modules/mout/math/loop.js | 10 + .../bin-wrapper/node_modules/mout/math/map.js | 11 + .../node_modules/mout/math/norm.js | 9 + .../node_modules/mout/math/round.js | 12 + .../bin-wrapper/node_modules/mout/number.js | 21 + .../node_modules/mout/number/MAX_INT.js | 6 + .../node_modules/mout/number/MAX_UINT.js | 6 + .../node_modules/mout/number/MIN_INT.js | 6 + .../node_modules/mout/number/abbreviate.js | 35 + .../mout/number/currencyFormat.js | 26 + .../mout/number/enforcePrecision.js | 13 + .../node_modules/mout/number/pad.js | 12 + .../node_modules/mout/number/rol.js | 10 + .../node_modules/mout/number/ror.js | 10 + .../node_modules/mout/number/sign.js | 15 + .../node_modules/mout/number/toInt.js | 15 + .../node_modules/mout/number/toUInt.js | 13 + .../node_modules/mout/number/toUInt31.js | 13 + .../bin-wrapper/node_modules/mout/object.js | 42 + .../node_modules/mout/object/bindAll.js | 18 + .../node_modules/mout/object/contains.js | 13 + .../node_modules/mout/object/deepEquals.js | 27 + .../node_modules/mout/object/deepFillIn.js | 32 + .../node_modules/mout/object/deepMatches.js | 55 + .../node_modules/mout/object/deepMixIn.js | 34 + .../node_modules/mout/object/equals.js | 36 + .../node_modules/mout/object/every.js | 23 + .../node_modules/mout/object/fillIn.js | 20 + .../node_modules/mout/object/filter.js | 20 + .../node_modules/mout/object/find.js | 21 + .../node_modules/mout/object/forIn.js | 62 + .../node_modules/mout/object/forOwn.js | 19 + .../node_modules/mout/object/functions.js | 18 + .../node_modules/mout/object/get.js | 20 + .../node_modules/mout/object/has.js | 15 + .../node_modules/mout/object/hasOwn.js | 12 + .../node_modules/mout/object/keys.js | 16 + .../node_modules/mout/object/map.js | 18 + .../node_modules/mout/object/matches.js | 20 + .../node_modules/mout/object/max.js | 12 + .../node_modules/mout/object/merge.js | 40 + .../node_modules/mout/object/min.js | 12 + .../node_modules/mout/object/mixIn.js | 28 + .../node_modules/mout/object/namespace.js | 19 + .../node_modules/mout/object/pick.js | 18 + .../node_modules/mout/object/pluck.js | 13 + .../node_modules/mout/object/reduce.js | 29 + .../node_modules/mout/object/reject.js | 16 + .../node_modules/mout/object/set.js | 17 + .../node_modules/mout/object/size.js | 16 + .../node_modules/mout/object/some.js | 21 + .../node_modules/mout/object/unset.js | 23 + .../node_modules/mout/object/values.js | 16 + .../node_modules/mout/package.json | 123 + .../node_modules/mout/queryString.js | 15 + .../node_modules/mout/queryString/contains.js | 12 + .../node_modules/mout/queryString/decode.js | 21 + .../node_modules/mout/queryString/encode.js | 15 + .../node_modules/mout/queryString/getParam.js | 15 + .../node_modules/mout/queryString/getQuery.js | 13 + .../node_modules/mout/queryString/parse.js | 13 + .../node_modules/mout/queryString/setParam.js | 28 + .../bin-wrapper/node_modules/mout/random.js | 16 + .../node_modules/mout/random/choice.js | 15 + .../node_modules/mout/random/guid.js | 24 + .../node_modules/mout/random/rand.js | 15 + .../node_modules/mout/random/randBit.js | 11 + .../node_modules/mout/random/randHex.js | 19 + .../node_modules/mout/random/randInt.js | 18 + .../node_modules/mout/random/randSign.js | 11 + .../node_modules/mout/random/random.js | 18 + .../node_modules/mout/src/array.js | 46 + .../node_modules/mout/src/array/append.js | 21 + .../node_modules/mout/src/array/collect.js | 26 + .../node_modules/mout/src/array/combine.js | 22 + .../node_modules/mout/src/array/compact.js | 13 + .../node_modules/mout/src/array/contains.js | 10 + .../node_modules/mout/src/array/difference.js | 19 + .../node_modules/mout/src/array/every.js | 27 + .../node_modules/mout/src/array/filter.js | 26 + .../node_modules/mout/src/array/find.js | 13 + .../node_modules/mout/src/array/findIndex.js | 23 + .../node_modules/mout/src/array/flatten.js | 42 + .../node_modules/mout/src/array/forEach.js | 23 + .../node_modules/mout/src/array/indexOf.js | 28 + .../node_modules/mout/src/array/insert.js | 14 + .../mout/src/array/intersection.js | 20 + .../node_modules/mout/src/array/invoke.js | 23 + .../node_modules/mout/src/array/join.js | 17 + .../mout/src/array/lastIndexOf.js | 28 + .../node_modules/mout/src/array/map.js | 22 + .../node_modules/mout/src/array/max.js | 34 + .../node_modules/mout/src/array/min.js | 34 + .../node_modules/mout/src/array/pick.js | 14 + .../node_modules/mout/src/array/pluck.js | 12 + .../node_modules/mout/src/array/range.js | 27 + .../node_modules/mout/src/array/reduce.js | 33 + .../mout/src/array/reduceRight.js | 34 + .../node_modules/mout/src/array/reject.js | 25 + .../node_modules/mout/src/array/remove.js | 13 + .../node_modules/mout/src/array/removeAll.js | 15 + .../node_modules/mout/src/array/shuffle.js | 28 + .../node_modules/mout/src/array/some.js | 27 + .../node_modules/mout/src/array/sort.js | 55 + .../node_modules/mout/src/array/split.js | 35 + .../node_modules/mout/src/array/toLookup.js | 28 + .../node_modules/mout/src/array/union.js | 18 + .../node_modules/mout/src/array/unique.js | 16 + .../node_modules/mout/src/array/xor.js | 24 + .../node_modules/mout/src/array/zip.js | 27 + .../node_modules/mout/src/collection.js | 22 + .../mout/src/collection/contains.js | 7 + .../node_modules/mout/src/collection/every.js | 7 + .../mout/src/collection/filter.js | 22 + .../node_modules/mout/src/collection/find.js | 8 + .../mout/src/collection/forEach.js | 7 + .../node_modules/mout/src/collection/make_.js | 19 + .../node_modules/mout/src/collection/map.js | 20 + .../node_modules/mout/src/collection/max.js | 8 + .../node_modules/mout/src/collection/min.js | 8 + .../node_modules/mout/src/collection/pluck.js | 14 + .../mout/src/collection/reduce.js | 7 + .../mout/src/collection/reject.js | 15 + .../node_modules/mout/src/collection/size.js | 18 + .../node_modules/mout/src/collection/some.js | 7 + .../bin-wrapper/node_modules/mout/src/date.js | 21 + .../mout/src/date/dayOfTheYear.js | 13 + .../node_modules/mout/src/date/diff.js | 128 + .../node_modules/mout/src/date/i18n/en-US.js | 61 + .../node_modules/mout/src/date/i18n/pt-BR.js | 61 + .../node_modules/mout/src/date/i18n_.js | 13 + .../node_modules/mout/src/date/isLeapYear.js | 15 + .../node_modules/mout/src/date/isSame.js | 16 + .../node_modules/mout/src/date/parseIso.js | 146 + .../node_modules/mout/src/date/startOf.js | 54 + .../node_modules/mout/src/date/strftime.js | 113 + .../mout/src/date/timezoneAbbr.js | 17 + .../mout/src/date/timezoneOffset.js | 16 + .../mout/src/date/totalDaysInMonth.js | 24 + .../mout/src/date/totalDaysInYear.js | 13 + .../mout/src/date/weekOfTheYear.js | 16 + .../node_modules/mout/src/function.js | 18 + .../node_modules/mout/src/function/bind.js | 23 + .../node_modules/mout/src/function/compose.js | 23 + .../mout/src/function/debounce.js | 29 + .../node_modules/mout/src/function/func.js | 14 + .../mout/src/function/makeIterator_.js | 33 + .../node_modules/mout/src/function/partial.js | 19 + .../node_modules/mout/src/function/prop.js | 14 + .../node_modules/mout/src/function/series.js | 22 + .../mout/src/function/throttle.js | 32 + .../node_modules/mout/src/function/timeout.js | 21 + .../node_modules/mout/src/index.js | 24 + .../bin-wrapper/node_modules/mout/src/lang.js | 36 + .../node_modules/mout/src/lang/clone.js | 47 + .../mout/src/lang/createObject.js | 18 + .../node_modules/mout/src/lang/ctorApply.js | 17 + .../node_modules/mout/src/lang/deepClone.js | 45 + .../node_modules/mout/src/lang/defaults.js | 16 + .../mout/src/lang/inheritPrototype.js | 16 + .../node_modules/mout/src/lang/is.js | 23 + .../node_modules/mout/src/lang/isArguments.js | 15 + .../node_modules/mout/src/lang/isArray.js | 8 + .../node_modules/mout/src/lang/isBoolean.js | 8 + .../node_modules/mout/src/lang/isDate.js | 8 + .../node_modules/mout/src/lang/isEmpty.js | 23 + .../node_modules/mout/src/lang/isFinite.js | 21 + .../node_modules/mout/src/lang/isFunction.js | 8 + .../node_modules/mout/src/lang/isInteger.js | 12 + .../node_modules/mout/src/lang/isKind.js | 9 + .../node_modules/mout/src/lang/isNaN.js | 15 + .../node_modules/mout/src/lang/isNull.js | 9 + .../node_modules/mout/src/lang/isNumber.js | 8 + .../node_modules/mout/src/lang/isObject.js | 8 + .../mout/src/lang/isPlainObject.js | 14 + .../node_modules/mout/src/lang/isRegExp.js | 8 + .../node_modules/mout/src/lang/isString.js | 8 + .../node_modules/mout/src/lang/isUndefined.js | 10 + .../node_modules/mout/src/lang/isnt.js | 12 + .../node_modules/mout/src/lang/kindOf.js | 20 + .../node_modules/mout/src/lang/toArray.js | 31 + .../node_modules/mout/src/lang/toString.js | 13 + .../bin-wrapper/node_modules/mout/src/math.js | 19 + .../node_modules/mout/src/math/ceil.js | 11 + .../node_modules/mout/src/math/clamp.js | 9 + .../node_modules/mout/src/math/countSteps.js | 16 + .../node_modules/mout/src/math/floor.js | 10 + .../node_modules/mout/src/math/inRange.js | 11 + .../node_modules/mout/src/math/isNear.js | 9 + .../node_modules/mout/src/math/lerp.js | 11 + .../node_modules/mout/src/math/loop.js | 10 + .../node_modules/mout/src/math/map.js | 10 + .../node_modules/mout/src/math/norm.js | 9 + .../node_modules/mout/src/math/round.js | 12 + .../node_modules/mout/src/number.js | 21 + .../node_modules/mout/src/number/MAX_INT.js | 6 + .../node_modules/mout/src/number/MAX_UINT.js | 6 + .../node_modules/mout/src/number/MIN_INT.js | 6 + .../mout/src/number/abbreviate.js | 35 + .../mout/src/number/currencyFormat.js | 26 + .../mout/src/number/enforcePrecision.js | 13 + .../node_modules/mout/src/number/pad.js | 12 + .../node_modules/mout/src/number/rol.js | 10 + .../node_modules/mout/src/number/ror.js | 10 + .../node_modules/mout/src/number/sign.js | 15 + .../node_modules/mout/src/number/toInt.js | 15 + .../node_modules/mout/src/number/toUInt.js | 13 + .../node_modules/mout/src/number/toUInt31.js | 13 + .../node_modules/mout/src/object.js | 42 + .../node_modules/mout/src/object/bindAll.js | 16 + .../node_modules/mout/src/object/contains.js | 13 + .../mout/src/object/deepEquals.js | 26 + .../mout/src/object/deepFillIn.js | 31 + .../mout/src/object/deepMatches.js | 54 + .../node_modules/mout/src/object/deepMixIn.js | 33 + .../node_modules/mout/src/object/equals.js | 34 + .../node_modules/mout/src/object/every.js | 22 + .../node_modules/mout/src/object/fillIn.js | 19 + .../node_modules/mout/src/object/filter.js | 19 + .../node_modules/mout/src/object/find.js | 20 + .../node_modules/mout/src/object/forIn.js | 62 + .../node_modules/mout/src/object/forOwn.js | 18 + .../node_modules/mout/src/object/functions.js | 18 + .../node_modules/mout/src/object/get.js | 20 + .../node_modules/mout/src/object/has.js | 15 + .../node_modules/mout/src/object/hasOwn.js | 12 + .../node_modules/mout/src/object/keys.js | 16 + .../node_modules/mout/src/object/map.js | 17 + .../node_modules/mout/src/object/matches.js | 20 + .../node_modules/mout/src/object/max.js | 11 + .../node_modules/mout/src/object/merge.js | 38 + .../node_modules/mout/src/object/min.js | 11 + .../node_modules/mout/src/object/mixIn.js | 28 + .../node_modules/mout/src/object/namespace.js | 19 + .../node_modules/mout/src/object/pick.js | 18 + .../node_modules/mout/src/object/pluck.js | 12 + .../node_modules/mout/src/object/reduce.js | 28 + .../node_modules/mout/src/object/reject.js | 15 + .../node_modules/mout/src/object/set.js | 17 + .../node_modules/mout/src/object/size.js | 16 + .../node_modules/mout/src/object/some.js | 20 + .../node_modules/mout/src/object/unset.js | 23 + .../node_modules/mout/src/object/values.js | 16 + .../node_modules/mout/src/queryString.js | 15 + .../mout/src/queryString/contains.js | 12 + .../mout/src/queryString/decode.js | 20 + .../mout/src/queryString/encode.js | 15 + .../mout/src/queryString/getParam.js | 14 + .../mout/src/queryString/getQuery.js | 13 + .../mout/src/queryString/parse.js | 12 + .../mout/src/queryString/setParam.js | 28 + .../node_modules/mout/src/random.js | 16 + .../node_modules/mout/src/random/choice.js | 14 + .../node_modules/mout/src/random/guid.js | 23 + .../node_modules/mout/src/random/rand.js | 13 + .../node_modules/mout/src/random/randBit.js | 11 + .../node_modules/mout/src/random/randHex.js | 19 + .../node_modules/mout/src/random/randInt.js | 16 + .../node_modules/mout/src/random/randSign.js | 11 + .../node_modules/mout/src/random/random.js | 18 + .../node_modules/mout/src/string.js | 45 + .../mout/src/string/WHITE_SPACES.js | 12 + .../node_modules/mout/src/string/camelCase.js | 16 + .../node_modules/mout/src/string/contains.js | 14 + .../node_modules/mout/src/string/crop.js | 11 + .../node_modules/mout/src/string/endsWith.js | 13 + .../mout/src/string/escapeHtml.js | 18 + .../mout/src/string/escapeRegExp.js | 15 + .../mout/src/string/escapeUnicode.js | 21 + .../node_modules/mout/src/string/hyphenate.js | 12 + .../mout/src/string/interpolate.js | 18 + .../node_modules/mout/src/string/lowerCase.js | 11 + .../node_modules/mout/src/string/lpad.js | 16 + .../node_modules/mout/src/string/ltrim.js | 33 + .../node_modules/mout/src/string/makePath.js | 13 + .../mout/src/string/normalizeLineBreaks.js | 18 + .../mout/src/string/pascalCase.js | 11 + .../mout/src/string/properCase.js | 11 + .../mout/src/string/removeNonASCII.js | 14 + .../mout/src/string/removeNonWord.js | 11 + .../node_modules/mout/src/string/repeat.js | 13 + .../node_modules/mout/src/string/replace.js | 32 + .../mout/src/string/replaceAccents.js | 36 + .../node_modules/mout/src/string/rpad.js | 14 + .../node_modules/mout/src/string/rtrim.js | 32 + .../mout/src/string/sentenceCase.js | 13 + .../node_modules/mout/src/string/slugify.js | 21 + .../mout/src/string/startsWith.js | 13 + .../mout/src/string/stripHtmlTags.js | 11 + .../node_modules/mout/src/string/trim.js | 12 + .../node_modules/mout/src/string/truncate.js | 20 + .../node_modules/mout/src/string/typecast.js | 29 + .../mout/src/string/unCamelCase.js | 23 + .../mout/src/string/underscore.js | 11 + .../mout/src/string/unescapeHtml.js | 18 + .../mout/src/string/unescapeUnicode.js | 16 + .../mout/src/string/unhyphenate.js | 10 + .../node_modules/mout/src/string/upperCase.js | 10 + .../bin-wrapper/node_modules/mout/src/time.js | 12 + .../node_modules/mout/src/time/convert.js | 41 + .../node_modules/mout/src/time/now.js | 12 + .../node_modules/mout/src/time/parseMs.js | 17 + .../mout/src/time/toTimeString.js | 23 + .../bin-wrapper/node_modules/mout/string.js | 45 + .../node_modules/mout/string/WHITE_SPACES.js | 12 + .../node_modules/mout/string/camelCase.js | 20 + .../node_modules/mout/string/contains.js | 14 + .../node_modules/mout/string/crop.js | 12 + .../node_modules/mout/string/endsWith.js | 13 + .../node_modules/mout/string/escapeHtml.js | 18 + .../node_modules/mout/string/escapeRegExp.js | 15 + .../node_modules/mout/string/escapeUnicode.js | 21 + .../node_modules/mout/string/hyphenate.js | 14 + .../node_modules/mout/string/interpolate.js | 18 + .../node_modules/mout/string/lowerCase.js | 11 + .../node_modules/mout/string/lpad.js | 17 + .../node_modules/mout/string/ltrim.js | 34 + .../node_modules/mout/string/makePath.js | 13 + .../mout/string/normalizeLineBreaks.js | 18 + .../node_modules/mout/string/pascalCase.js | 13 + .../node_modules/mout/string/properCase.js | 13 + .../mout/string/removeNonASCII.js | 14 + .../node_modules/mout/string/removeNonWord.js | 11 + .../node_modules/mout/string/repeat.js | 13 + .../node_modules/mout/string/replace.js | 33 + .../mout/string/replaceAccents.js | 36 + .../node_modules/mout/string/rpad.js | 15 + .../node_modules/mout/string/rtrim.js | 33 + .../node_modules/mout/string/sentenceCase.js | 15 + .../node_modules/mout/string/slugify.js | 24 + .../node_modules/mout/string/startsWith.js | 13 + .../node_modules/mout/string/stripHtmlTags.js | 11 + .../node_modules/mout/string/trim.js | 15 + .../node_modules/mout/string/truncate.js | 21 + .../node_modules/mout/string/typecast.js | 29 + .../node_modules/mout/string/unCamelCase.js | 23 + .../node_modules/mout/string/underscore.js | 13 + .../node_modules/mout/string/unescapeHtml.js | 18 + .../mout/string/unescapeUnicode.js | 16 + .../node_modules/mout/string/unhyphenate.js | 10 + .../node_modules/mout/string/upperCase.js | 10 + .../bin-wrapper/node_modules/mout/time.js | 12 + .../node_modules/mout/time/convert.js | 41 + .../bin-wrapper/node_modules/mout/time/now.js | 12 + .../node_modules/mout/time/parseMs.js | 17 + .../node_modules/mout/time/toTimeString.js | 24 + .../node_modules/progress/.npmignore | 4 + .../node_modules/progress/History.md | 42 + .../node_modules/progress/Makefile | 5 + .../node_modules/progress/Readme.md | 117 + .../node_modules/progress/index.js | 1 + .../progress/lib/node-progress.js | 183 + .../node_modules/progress/package.json | 34 + .../bin-wrapper/node_modules/rimraf/AUTHORS | 6 + .../bin-wrapper/node_modules/rimraf/LICENSE | 23 + .../bin-wrapper/node_modules/rimraf/README.md | 30 + .../bin-wrapper/node_modules/rimraf/bin.js | 33 + .../node_modules/rimraf/package.json | 60 + .../bin-wrapper/node_modules/rimraf/rimraf.js | 178 + .../node_modules/rimraf/test/run.sh | 10 + .../node_modules/rimraf/test/setup.sh | 47 + .../node_modules/rimraf/test/test-async.js | 5 + .../node_modules/rimraf/test/test-sync.js | 3 + .../bin-wrapper/node_modules/which/LICENSE | 23 + .../bin-wrapper/node_modules/which/README.md | 5 + .../bin-wrapper/node_modules/which/bin/which | 14 + .../node_modules/which/package.json | 35 + .../bin-wrapper/node_modules/which/which.js | 104 + .../node_modules/bin-wrapper/package.json | 54 + .../jpegtran-bin/node_modules/chalk/chalk.js | 62 + .../node_modules/ansi-styles/ansi-styles.js | 29 + .../node_modules/ansi-styles/package.json | 62 + .../chalk/node_modules/ansi-styles/readme.md | 65 + .../chalk/node_modules/has-color/has-color.js | 24 + .../chalk/node_modules/has-color/package.json | 59 + .../chalk/node_modules/has-color/readme.md | 28 + .../node_modules/chalk/package.json | 65 + .../jpegtran-bin/node_modules/chalk/readme.md | 130 + .../node_modules/jpegtran-bin/package.json | 69 + .../node_modules/jpegtran-bin/readme.md | 52 + .../jpegtran-bin/test/fixtures/test.jpg | Bin 0 -> 2139 bytes .../jpegtran-bin/test/minified.jpg | Bin 0 -> 927 bytes .../jpegtran-bin/test/test-build.js | 30 + .../jpegtran-bin/test/test-path.js | 49 + .../node_modules/jpegtran-bin/vendor/jpegtran | Bin 0 -> 137944 bytes .../image-min/node_modules/mkdirp/.npmignore | 2 + .../image-min/node_modules/mkdirp/.travis.yml | 5 + .../image-min/node_modules/mkdirp/LICENSE | 21 + .../node_modules/mkdirp/examples/pow.js | 6 + .../image-min/node_modules/mkdirp/index.js | 82 + .../node_modules/mkdirp/package.json | 34 + .../node_modules/mkdirp/readme.markdown | 63 + .../node_modules/mkdirp/test/chmod.js | 38 + .../node_modules/mkdirp/test/clobber.js | 37 + .../node_modules/mkdirp/test/mkdirp.js | 28 + .../node_modules/mkdirp/test/perm.js | 32 + .../node_modules/mkdirp/test/perm_sync.js | 39 + .../node_modules/mkdirp/test/race.js | 41 + .../image-min/node_modules/mkdirp/test/rel.js | 32 + .../node_modules/mkdirp/test/return.js | 25 + .../node_modules/mkdirp/test/return_sync.js | 24 + .../node_modules/mkdirp/test/root.js | 18 + .../node_modules/mkdirp/test/sync.js | 32 + .../node_modules/mkdirp/test/umask.js | 28 + .../node_modules/mkdirp/test/umask_sync.js | 32 + .../image-min/node_modules/mout/.editorconfig | 20 + .../image-min/node_modules/mout/.jshintrc | 69 + .../image-min/node_modules/mout/.npmignore | 30 + .../image-min/node_modules/mout/.travis.yml | 15 + .../image-min/node_modules/mout/CHANGELOG.md | 116 + .../node_modules/mout/CONTRIBUTING.md | 61 + .../image-min/node_modules/mout/LICENSE.md | 21 + .../image-min/node_modules/mout/README.md | 63 + .../image-min/node_modules/mout/array.js | 46 + .../node_modules/mout/array/append.js | 21 + .../node_modules/mout/array/collect.js | 27 + .../node_modules/mout/array/combine.js | 22 + .../node_modules/mout/array/compact.js | 13 + .../node_modules/mout/array/contains.js | 10 + .../node_modules/mout/array/difference.js | 22 + .../node_modules/mout/array/every.js | 27 + .../node_modules/mout/array/filter.js | 26 + .../image-min/node_modules/mout/array/find.js | 13 + .../node_modules/mout/array/findIndex.js | 23 + .../node_modules/mout/array/flatten.js | 43 + .../node_modules/mout/array/forEach.js | 23 + .../node_modules/mout/array/indexOf.js | 28 + .../node_modules/mout/array/insert.js | 15 + .../node_modules/mout/array/intersection.js | 23 + .../node_modules/mout/array/invoke.js | 23 + .../image-min/node_modules/mout/array/join.js | 17 + .../node_modules/mout/array/lastIndexOf.js | 28 + .../image-min/node_modules/mout/array/map.js | 22 + .../image-min/node_modules/mout/array/max.js | 34 + .../image-min/node_modules/mout/array/min.js | 34 + .../image-min/node_modules/mout/array/pick.js | 31 + .../node_modules/mout/array/pluck.js | 12 + .../node_modules/mout/array/range.js | 27 + .../node_modules/mout/array/reduce.js | 33 + .../node_modules/mout/array/reduceRight.js | 34 + .../node_modules/mout/array/reject.js | 25 + .../node_modules/mout/array/remove.js | 13 + .../node_modules/mout/array/removeAll.js | 15 + .../node_modules/mout/array/shuffle.js | 28 + .../image-min/node_modules/mout/array/some.js | 27 + .../image-min/node_modules/mout/array/sort.js | 55 + .../node_modules/mout/array/split.js | 35 + .../node_modules/mout/array/toLookup.js | 28 + .../node_modules/mout/array/union.js | 19 + .../node_modules/mout/array/unique.js | 17 + .../image-min/node_modules/mout/array/xor.js | 26 + .../image-min/node_modules/mout/array/zip.js | 28 + .../image-min/node_modules/mout/collection.js | 22 + .../node_modules/mout/collection/contains.js | 9 + .../node_modules/mout/collection/every.js | 9 + .../node_modules/mout/collection/filter.js | 23 + .../node_modules/mout/collection/find.js | 10 + .../node_modules/mout/collection/forEach.js | 9 + .../node_modules/mout/collection/make_.js | 19 + .../node_modules/mout/collection/map.js | 23 + .../node_modules/mout/collection/max.js | 10 + .../node_modules/mout/collection/min.js | 10 + .../node_modules/mout/collection/pluck.js | 14 + .../node_modules/mout/collection/reduce.js | 9 + .../node_modules/mout/collection/reject.js | 16 + .../node_modules/mout/collection/size.js | 19 + .../node_modules/mout/collection/some.js | 9 + .../image-min/node_modules/mout/date.js | 21 + .../node_modules/mout/date/dayOfTheYear.js | 13 + .../image-min/node_modules/mout/date/diff.js | 130 + .../node_modules/mout/date/i18n/de-DE.js | 61 + .../node_modules/mout/date/i18n/en-US.js | 61 + .../node_modules/mout/date/i18n/pt-BR.js | 61 + .../image-min/node_modules/mout/date/i18n_.js | 14 + .../node_modules/mout/date/isLeapYear.js | 15 + .../node_modules/mout/date/isSame.js | 16 + .../node_modules/mout/date/parseIso.js | 146 + .../node_modules/mout/date/startOf.js | 54 + .../node_modules/mout/date/strftime.js | 118 + .../node_modules/mout/date/timezoneAbbr.js | 17 + .../node_modules/mout/date/timezoneOffset.js | 16 + .../mout/date/totalDaysInMonth.js | 25 + .../node_modules/mout/date/totalDaysInYear.js | 13 + .../node_modules/mout/date/weekOfTheYear.js | 16 + .../image-min/node_modules/mout/doc/array.md | 781 +++ .../node_modules/mout/doc/collection.md | 233 + .../image-min/node_modules/mout/doc/date.md | 295 + .../node_modules/mout/doc/function.md | 210 + .../image-min/node_modules/mout/doc/lang.md | 464 ++ .../image-min/node_modules/mout/doc/math.md | 298 + .../image-min/node_modules/mout/doc/number.md | 225 + .../image-min/node_modules/mout/doc/object.md | 780 +++ .../node_modules/mout/doc/queryString.md | 115 + .../image-min/node_modules/mout/doc/random.md | 218 + .../image-min/node_modules/mout/doc/string.md | 606 ++ .../image-min/node_modules/mout/doc/time.md | 64 + .../image-min/node_modules/mout/function.js | 19 + .../node_modules/mout/function/bind.js | 23 + .../node_modules/mout/function/compose.js | 23 + .../node_modules/mout/function/debounce.js | 32 + .../node_modules/mout/function/func.js | 14 + .../mout/function/makeIterator_.js | 31 + .../node_modules/mout/function/partial.js | 19 + .../node_modules/mout/function/prop.js | 14 + .../node_modules/mout/function/series.js | 22 + .../node_modules/mout/function/throttle.js | 35 + .../node_modules/mout/function/timeout.js | 21 + .../node_modules/mout/function/times.js | 17 + .../image-min/node_modules/mout/index.js | 25 + .../image-min/node_modules/mout/lang.js | 37 + .../image-min/node_modules/mout/lang/clone.js | 49 + .../node_modules/mout/lang/createObject.js | 18 + .../node_modules/mout/lang/ctorApply.js | 17 + .../node_modules/mout/lang/deepClone.js | 48 + .../node_modules/mout/lang/defaults.js | 17 + .../mout/lang/inheritPrototype.js | 17 + .../image-min/node_modules/mout/lang/is.js | 23 + .../node_modules/mout/lang/isArguments.js | 15 + .../node_modules/mout/lang/isArray.js | 8 + .../node_modules/mout/lang/isBoolean.js | 8 + .../node_modules/mout/lang/isDate.js | 8 + .../node_modules/mout/lang/isEmpty.js | 24 + .../node_modules/mout/lang/isFinite.js | 21 + .../node_modules/mout/lang/isFunction.js | 8 + .../node_modules/mout/lang/isInteger.js | 12 + .../node_modules/mout/lang/isKind.js | 9 + .../image-min/node_modules/mout/lang/isNaN.js | 16 + .../node_modules/mout/lang/isNull.js | 9 + .../node_modules/mout/lang/isNumber.js | 8 + .../node_modules/mout/lang/isObject.js | 8 + .../node_modules/mout/lang/isPlainObject.js | 13 + .../node_modules/mout/lang/isRegExp.js | 8 + .../node_modules/mout/lang/isString.js | 8 + .../node_modules/mout/lang/isUndefined.js | 10 + .../image-min/node_modules/mout/lang/isnt.js | 12 + .../node_modules/mout/lang/kindOf.js | 20 + .../node_modules/mout/lang/toArray.js | 31 + .../node_modules/mout/lang/toNumber.js | 20 + .../node_modules/mout/lang/toString.js | 13 + .../image-min/node_modules/mout/math.js | 19 + .../image-min/node_modules/mout/math/ceil.js | 11 + .../image-min/node_modules/mout/math/clamp.js | 9 + .../node_modules/mout/math/countSteps.js | 16 + .../image-min/node_modules/mout/math/floor.js | 10 + .../node_modules/mout/math/inRange.js | 11 + .../node_modules/mout/math/isNear.js | 9 + .../image-min/node_modules/mout/math/lerp.js | 11 + .../image-min/node_modules/mout/math/loop.js | 10 + .../image-min/node_modules/mout/math/map.js | 11 + .../image-min/node_modules/mout/math/norm.js | 9 + .../image-min/node_modules/mout/math/round.js | 12 + .../image-min/node_modules/mout/number.js | 21 + .../node_modules/mout/number/MAX_INT.js | 6 + .../node_modules/mout/number/MAX_UINT.js | 6 + .../node_modules/mout/number/MIN_INT.js | 6 + .../node_modules/mout/number/abbreviate.js | 35 + .../mout/number/currencyFormat.js | 27 + .../mout/number/enforcePrecision.js | 12 + .../image-min/node_modules/mout/number/pad.js | 14 + .../image-min/node_modules/mout/number/rol.js | 10 + .../image-min/node_modules/mout/number/ror.js | 10 + .../node_modules/mout/number/sign.js | 15 + .../node_modules/mout/number/toInt.js | 17 + .../node_modules/mout/number/toUInt.js | 15 + .../node_modules/mout/number/toUInt31.js | 15 + .../image-min/node_modules/mout/object.js | 42 + .../node_modules/mout/object/bindAll.js | 18 + .../node_modules/mout/object/contains.js | 13 + .../node_modules/mout/object/deepEquals.js | 27 + .../node_modules/mout/object/deepFillIn.js | 33 + .../node_modules/mout/object/deepMatches.js | 55 + .../node_modules/mout/object/deepMixIn.js | 34 + .../node_modules/mout/object/equals.js | 36 + .../node_modules/mout/object/every.js | 23 + .../node_modules/mout/object/fillIn.js | 20 + .../node_modules/mout/object/filter.js | 20 + .../node_modules/mout/object/find.js | 21 + .../node_modules/mout/object/forIn.js | 62 + .../node_modules/mout/object/forOwn.js | 19 + .../node_modules/mout/object/functions.js | 18 + .../image-min/node_modules/mout/object/get.js | 20 + .../image-min/node_modules/mout/object/has.js | 15 + .../node_modules/mout/object/hasOwn.js | 12 + .../node_modules/mout/object/keys.js | 16 + .../image-min/node_modules/mout/object/map.js | 18 + .../node_modules/mout/object/matches.js | 20 + .../image-min/node_modules/mout/object/max.js | 12 + .../node_modules/mout/object/merge.js | 40 + .../image-min/node_modules/mout/object/min.js | 12 + .../node_modules/mout/object/mixIn.js | 28 + .../node_modules/mout/object/namespace.js | 19 + .../node_modules/mout/object/pick.js | 18 + .../node_modules/mout/object/pluck.js | 13 + .../node_modules/mout/object/reduce.js | 29 + .../node_modules/mout/object/reject.js | 16 + .../image-min/node_modules/mout/object/set.js | 17 + .../node_modules/mout/object/size.js | 16 + .../node_modules/mout/object/some.js | 21 + .../node_modules/mout/object/unset.js | 23 + .../node_modules/mout/object/values.js | 16 + .../image-min/node_modules/mout/package.json | 124 + .../node_modules/mout/queryString.js | 15 + .../node_modules/mout/queryString/contains.js | 12 + .../node_modules/mout/queryString/decode.js | 38 + .../node_modules/mout/queryString/encode.js | 27 + .../node_modules/mout/queryString/getParam.js | 15 + .../node_modules/mout/queryString/getQuery.js | 13 + .../node_modules/mout/queryString/parse.js | 13 + .../node_modules/mout/queryString/setParam.js | 28 + .../image-min/node_modules/mout/random.js | 16 + .../node_modules/mout/random/choice.js | 15 + .../node_modules/mout/random/guid.js | 24 + .../node_modules/mout/random/rand.js | 15 + .../node_modules/mout/random/randBit.js | 11 + .../node_modules/mout/random/randHex.js | 19 + .../node_modules/mout/random/randInt.js | 18 + .../node_modules/mout/random/randSign.js | 11 + .../node_modules/mout/random/random.js | 18 + .../image-min/node_modules/mout/src/array.js | 46 + .../node_modules/mout/src/array/append.js | 21 + .../node_modules/mout/src/array/collect.js | 26 + .../node_modules/mout/src/array/combine.js | 22 + .../node_modules/mout/src/array/compact.js | 13 + .../node_modules/mout/src/array/contains.js | 10 + .../node_modules/mout/src/array/difference.js | 19 + .../node_modules/mout/src/array/every.js | 27 + .../node_modules/mout/src/array/filter.js | 26 + .../node_modules/mout/src/array/find.js | 13 + .../node_modules/mout/src/array/findIndex.js | 23 + .../node_modules/mout/src/array/flatten.js | 42 + .../node_modules/mout/src/array/forEach.js | 23 + .../node_modules/mout/src/array/indexOf.js | 28 + .../node_modules/mout/src/array/insert.js | 14 + .../mout/src/array/intersection.js | 20 + .../node_modules/mout/src/array/invoke.js | 23 + .../node_modules/mout/src/array/join.js | 17 + .../mout/src/array/lastIndexOf.js | 28 + .../node_modules/mout/src/array/map.js | 22 + .../node_modules/mout/src/array/max.js | 34 + .../node_modules/mout/src/array/min.js | 34 + .../node_modules/mout/src/array/pick.js | 31 + .../node_modules/mout/src/array/pluck.js | 12 + .../node_modules/mout/src/array/range.js | 27 + .../node_modules/mout/src/array/reduce.js | 33 + .../mout/src/array/reduceRight.js | 34 + .../node_modules/mout/src/array/reject.js | 25 + .../node_modules/mout/src/array/remove.js | 13 + .../node_modules/mout/src/array/removeAll.js | 15 + .../node_modules/mout/src/array/shuffle.js | 28 + .../node_modules/mout/src/array/some.js | 27 + .../node_modules/mout/src/array/sort.js | 55 + .../node_modules/mout/src/array/split.js | 35 + .../node_modules/mout/src/array/toLookup.js | 28 + .../node_modules/mout/src/array/union.js | 18 + .../node_modules/mout/src/array/unique.js | 16 + .../node_modules/mout/src/array/xor.js | 24 + .../node_modules/mout/src/array/zip.js | 27 + .../node_modules/mout/src/collection.js | 22 + .../mout/src/collection/contains.js | 7 + .../node_modules/mout/src/collection/every.js | 7 + .../mout/src/collection/filter.js | 22 + .../node_modules/mout/src/collection/find.js | 8 + .../mout/src/collection/forEach.js | 7 + .../node_modules/mout/src/collection/make_.js | 19 + .../node_modules/mout/src/collection/map.js | 20 + .../node_modules/mout/src/collection/max.js | 8 + .../node_modules/mout/src/collection/min.js | 8 + .../node_modules/mout/src/collection/pluck.js | 14 + .../mout/src/collection/reduce.js | 7 + .../mout/src/collection/reject.js | 15 + .../node_modules/mout/src/collection/size.js | 18 + .../node_modules/mout/src/collection/some.js | 7 + .../image-min/node_modules/mout/src/date.js | 21 + .../mout/src/date/dayOfTheYear.js | 13 + .../node_modules/mout/src/date/diff.js | 128 + .../node_modules/mout/src/date/i18n/de-DE.js | 61 + .../node_modules/mout/src/date/i18n/en-US.js | 61 + .../node_modules/mout/src/date/i18n/pt-BR.js | 61 + .../node_modules/mout/src/date/i18n_.js | 13 + .../node_modules/mout/src/date/isLeapYear.js | 15 + .../node_modules/mout/src/date/isSame.js | 16 + .../node_modules/mout/src/date/parseIso.js | 146 + .../node_modules/mout/src/date/startOf.js | 54 + .../node_modules/mout/src/date/strftime.js | 113 + .../mout/src/date/timezoneAbbr.js | 17 + .../mout/src/date/timezoneOffset.js | 16 + .../mout/src/date/totalDaysInMonth.js | 24 + .../mout/src/date/totalDaysInYear.js | 13 + .../mout/src/date/weekOfTheYear.js | 16 + .../node_modules/mout/src/function.js | 19 + .../node_modules/mout/src/function/bind.js | 23 + .../node_modules/mout/src/function/compose.js | 23 + .../mout/src/function/debounce.js | 32 + .../node_modules/mout/src/function/func.js | 14 + .../mout/src/function/makeIterator_.js | 30 + .../node_modules/mout/src/function/partial.js | 19 + .../node_modules/mout/src/function/prop.js | 14 + .../node_modules/mout/src/function/series.js | 22 + .../mout/src/function/throttle.js | 35 + .../node_modules/mout/src/function/timeout.js | 21 + .../node_modules/mout/src/function/times.js | 17 + .../image-min/node_modules/mout/src/index.js | 25 + .../image-min/node_modules/mout/src/lang.js | 37 + .../node_modules/mout/src/lang/clone.js | 47 + .../mout/src/lang/createObject.js | 18 + .../node_modules/mout/src/lang/ctorApply.js | 17 + .../node_modules/mout/src/lang/deepClone.js | 45 + .../node_modules/mout/src/lang/defaults.js | 16 + .../mout/src/lang/inheritPrototype.js | 17 + .../node_modules/mout/src/lang/is.js | 23 + .../node_modules/mout/src/lang/isArguments.js | 15 + .../node_modules/mout/src/lang/isArray.js | 8 + .../node_modules/mout/src/lang/isBoolean.js | 8 + .../node_modules/mout/src/lang/isDate.js | 8 + .../node_modules/mout/src/lang/isEmpty.js | 23 + .../node_modules/mout/src/lang/isFinite.js | 21 + .../node_modules/mout/src/lang/isFunction.js | 8 + .../node_modules/mout/src/lang/isInteger.js | 12 + .../node_modules/mout/src/lang/isKind.js | 9 + .../node_modules/mout/src/lang/isNaN.js | 16 + .../node_modules/mout/src/lang/isNull.js | 9 + .../node_modules/mout/src/lang/isNumber.js | 8 + .../node_modules/mout/src/lang/isObject.js | 8 + .../mout/src/lang/isPlainObject.js | 13 + .../node_modules/mout/src/lang/isRegExp.js | 8 + .../node_modules/mout/src/lang/isString.js | 8 + .../node_modules/mout/src/lang/isUndefined.js | 10 + .../node_modules/mout/src/lang/isnt.js | 12 + .../node_modules/mout/src/lang/kindOf.js | 20 + .../node_modules/mout/src/lang/toArray.js | 31 + .../node_modules/mout/src/lang/toNumber.js | 20 + .../node_modules/mout/src/lang/toString.js | 13 + .../image-min/node_modules/mout/src/math.js | 19 + .../node_modules/mout/src/math/ceil.js | 11 + .../node_modules/mout/src/math/clamp.js | 9 + .../node_modules/mout/src/math/countSteps.js | 16 + .../node_modules/mout/src/math/floor.js | 10 + .../node_modules/mout/src/math/inRange.js | 11 + .../node_modules/mout/src/math/isNear.js | 9 + .../node_modules/mout/src/math/lerp.js | 11 + .../node_modules/mout/src/math/loop.js | 10 + .../node_modules/mout/src/math/map.js | 10 + .../node_modules/mout/src/math/norm.js | 9 + .../node_modules/mout/src/math/round.js | 12 + .../image-min/node_modules/mout/src/number.js | 21 + .../node_modules/mout/src/number/MAX_INT.js | 6 + .../node_modules/mout/src/number/MAX_UINT.js | 6 + .../node_modules/mout/src/number/MIN_INT.js | 6 + .../mout/src/number/abbreviate.js | 35 + .../mout/src/number/currencyFormat.js | 27 + .../mout/src/number/enforcePrecision.js | 12 + .../node_modules/mout/src/number/pad.js | 13 + .../node_modules/mout/src/number/rol.js | 10 + .../node_modules/mout/src/number/ror.js | 10 + .../node_modules/mout/src/number/sign.js | 15 + .../node_modules/mout/src/number/toInt.js | 17 + .../node_modules/mout/src/number/toUInt.js | 15 + .../node_modules/mout/src/number/toUInt31.js | 15 + .../image-min/node_modules/mout/src/object.js | 42 + .../node_modules/mout/src/object/bindAll.js | 16 + .../node_modules/mout/src/object/contains.js | 13 + .../mout/src/object/deepEquals.js | 26 + .../mout/src/object/deepFillIn.js | 32 + .../mout/src/object/deepMatches.js | 54 + .../node_modules/mout/src/object/deepMixIn.js | 33 + .../node_modules/mout/src/object/equals.js | 34 + .../node_modules/mout/src/object/every.js | 22 + .../node_modules/mout/src/object/fillIn.js | 19 + .../node_modules/mout/src/object/filter.js | 19 + .../node_modules/mout/src/object/find.js | 20 + .../node_modules/mout/src/object/forIn.js | 62 + .../node_modules/mout/src/object/forOwn.js | 18 + .../node_modules/mout/src/object/functions.js | 18 + .../node_modules/mout/src/object/get.js | 20 + .../node_modules/mout/src/object/has.js | 15 + .../node_modules/mout/src/object/hasOwn.js | 12 + .../node_modules/mout/src/object/keys.js | 16 + .../node_modules/mout/src/object/map.js | 17 + .../node_modules/mout/src/object/matches.js | 20 + .../node_modules/mout/src/object/max.js | 11 + .../node_modules/mout/src/object/merge.js | 38 + .../node_modules/mout/src/object/min.js | 11 + .../node_modules/mout/src/object/mixIn.js | 28 + .../node_modules/mout/src/object/namespace.js | 19 + .../node_modules/mout/src/object/pick.js | 18 + .../node_modules/mout/src/object/pluck.js | 12 + .../node_modules/mout/src/object/reduce.js | 28 + .../node_modules/mout/src/object/reject.js | 15 + .../node_modules/mout/src/object/set.js | 17 + .../node_modules/mout/src/object/size.js | 16 + .../node_modules/mout/src/object/some.js | 20 + .../node_modules/mout/src/object/unset.js | 23 + .../node_modules/mout/src/object/values.js | 16 + .../node_modules/mout/src/queryString.js | 15 + .../mout/src/queryString/contains.js | 12 + .../mout/src/queryString/decode.js | 35 + .../mout/src/queryString/encode.js | 25 + .../mout/src/queryString/getParam.js | 14 + .../mout/src/queryString/getQuery.js | 13 + .../mout/src/queryString/parse.js | 12 + .../mout/src/queryString/setParam.js | 28 + .../image-min/node_modules/mout/src/random.js | 16 + .../node_modules/mout/src/random/choice.js | 14 + .../node_modules/mout/src/random/guid.js | 23 + .../node_modules/mout/src/random/rand.js | 13 + .../node_modules/mout/src/random/randBit.js | 11 + .../node_modules/mout/src/random/randHex.js | 19 + .../node_modules/mout/src/random/randInt.js | 16 + .../node_modules/mout/src/random/randSign.js | 11 + .../node_modules/mout/src/random/random.js | 18 + .../image-min/node_modules/mout/src/string.js | 46 + .../mout/src/string/WHITE_SPACES.js | 12 + .../node_modules/mout/src/string/camelCase.js | 16 + .../node_modules/mout/src/string/contains.js | 14 + .../node_modules/mout/src/string/crop.js | 11 + .../node_modules/mout/src/string/endsWith.js | 13 + .../mout/src/string/escapeHtml.js | 18 + .../mout/src/string/escapeRegExp.js | 15 + .../mout/src/string/escapeUnicode.js | 21 + .../node_modules/mout/src/string/hyphenate.js | 12 + .../node_modules/mout/src/string/insert.js | 20 + .../mout/src/string/interpolate.js | 18 + .../node_modules/mout/src/string/lowerCase.js | 11 + .../node_modules/mout/src/string/lpad.js | 16 + .../node_modules/mout/src/string/ltrim.js | 33 + .../node_modules/mout/src/string/makePath.js | 14 + .../mout/src/string/normalizeLineBreaks.js | 18 + .../mout/src/string/pascalCase.js | 11 + .../mout/src/string/properCase.js | 11 + .../mout/src/string/removeNonASCII.js | 14 + .../mout/src/string/removeNonWord.js | 11 + .../node_modules/mout/src/string/repeat.js | 13 + .../node_modules/mout/src/string/replace.js | 32 + .../mout/src/string/replaceAccents.js | 36 + .../node_modules/mout/src/string/rpad.js | 14 + .../node_modules/mout/src/string/rtrim.js | 32 + .../mout/src/string/sentenceCase.js | 13 + .../node_modules/mout/src/string/slugify.js | 21 + .../mout/src/string/startsWith.js | 13 + .../mout/src/string/stripHtmlTags.js | 11 + .../node_modules/mout/src/string/trim.js | 12 + .../node_modules/mout/src/string/truncate.js | 20 + .../node_modules/mout/src/string/typecast.js | 29 + .../mout/src/string/unCamelCase.js | 23 + .../mout/src/string/underscore.js | 11 + .../mout/src/string/unescapeHtml.js | 18 + .../mout/src/string/unescapeUnicode.js | 16 + .../mout/src/string/unhyphenate.js | 10 + .../node_modules/mout/src/string/upperCase.js | 10 + .../image-min/node_modules/mout/src/time.js | 12 + .../node_modules/mout/src/time/convert.js | 41 + .../node_modules/mout/src/time/now.js | 12 + .../node_modules/mout/src/time/parseMs.js | 17 + .../mout/src/time/toTimeString.js | 23 + .../image-min/node_modules/mout/string.js | 46 + .../node_modules/mout/string/WHITE_SPACES.js | 12 + .../node_modules/mout/string/camelCase.js | 20 + .../node_modules/mout/string/contains.js | 14 + .../node_modules/mout/string/crop.js | 12 + .../node_modules/mout/string/endsWith.js | 13 + .../node_modules/mout/string/escapeHtml.js | 18 + .../node_modules/mout/string/escapeRegExp.js | 15 + .../node_modules/mout/string/escapeUnicode.js | 21 + .../node_modules/mout/string/hyphenate.js | 14 + .../node_modules/mout/string/insert.js | 21 + .../node_modules/mout/string/interpolate.js | 18 + .../node_modules/mout/string/lowerCase.js | 11 + .../node_modules/mout/string/lpad.js | 17 + .../node_modules/mout/string/ltrim.js | 34 + .../node_modules/mout/string/makePath.js | 14 + .../mout/string/normalizeLineBreaks.js | 18 + .../node_modules/mout/string/pascalCase.js | 13 + .../node_modules/mout/string/properCase.js | 13 + .../mout/string/removeNonASCII.js | 14 + .../node_modules/mout/string/removeNonWord.js | 11 + .../node_modules/mout/string/repeat.js | 13 + .../node_modules/mout/string/replace.js | 33 + .../mout/string/replaceAccents.js | 36 + .../node_modules/mout/string/rpad.js | 15 + .../node_modules/mout/string/rtrim.js | 33 + .../node_modules/mout/string/sentenceCase.js | 15 + .../node_modules/mout/string/slugify.js | 24 + .../node_modules/mout/string/startsWith.js | 13 + .../node_modules/mout/string/stripHtmlTags.js | 11 + .../node_modules/mout/string/trim.js | 15 + .../node_modules/mout/string/truncate.js | 21 + .../node_modules/mout/string/typecast.js | 29 + .../node_modules/mout/string/unCamelCase.js | 23 + .../node_modules/mout/string/underscore.js | 13 + .../node_modules/mout/string/unescapeHtml.js | 18 + .../mout/string/unescapeUnicode.js | 16 + .../node_modules/mout/string/unhyphenate.js | 10 + .../node_modules/mout/string/upperCase.js | 10 + .../image-min/node_modules/mout/time.js | 12 + .../node_modules/mout/time/convert.js | 41 + .../image-min/node_modules/mout/time/now.js | 12 + .../node_modules/mout/time/parseMs.js | 17 + .../node_modules/mout/time/toTimeString.js | 24 + .../node_modules/optipng-bin/bin/optipng.js | 8 + .../node_modules/optipng-bin/lib/check.js | 24 + .../node_modules/optipng-bin/lib/optipng.js | 46 + .../node_modules/bin-wrapper/README.md | 67 + .../node_modules/bin-wrapper/bin-wrapper.js | 222 + .../bin-wrapper/node_modules/.bin/rimraf | 1 + .../bin-wrapper/node_modules/.bin/which | 1 + .../node_modules/download/README.md | 84 + .../node_modules/download/download.js | 100 + .../node_modules/decompress/README.md | 71 + .../node_modules/decompress/decompress.js | 168 + .../adm-zip/.idea/scopes/scope_settings.xml | 5 + .../node_modules/adm-zip/MIT-LICENSE.txt | 21 + .../decompress/node_modules/adm-zip/README.md | 64 + .../node_modules/adm-zip/adm-zip.js | 404 ++ .../adm-zip/headers/entryHeader.js | 261 + .../node_modules/adm-zip/headers/index.js | 2 + .../adm-zip/headers/mainHeader.js | 80 + .../node_modules/adm-zip/methods/deflater.js | 1578 +++++ .../node_modules/adm-zip/methods/index.js | 2 + .../node_modules/adm-zip/methods/inflater.js | 448 ++ .../node_modules/adm-zip/package.json | 43 + .../adm-zip/test/assets/attributes_test.zip | Bin 0 -> 4189 bytes .../attributes_test/New folder/hidden.txt | 17 + .../New folder/hidden_readonly.txt | 17 + .../attributes_test/New folder/readonly.txt | 17 + .../attributes_test/New folder/somefile.txt | 17 + .../attributes_test/asd/New Text Document.txt | 0 .../assets/attributes_test/blank file.txt | 0 .../node_modules/adm-zip/test/assets/fast.zip | Bin 0 -> 4194 bytes .../adm-zip/test/assets/fastest.zip | Bin 0 -> 4194 bytes .../adm-zip/test/assets/linux_arc.zip | Bin 0 -> 415 bytes .../adm-zip/test/assets/maximum.zip | Bin 0 -> 4086 bytes .../adm-zip/test/assets/normal.zip | Bin 0 -> 4170 bytes .../adm-zip/test/assets/store.zip | Bin 0 -> 5878 bytes .../adm-zip/test/assets/ultra.zip | Bin 0 -> 4086 bytes .../node_modules/adm-zip/test/index.js | 5 + .../node_modules/adm-zip/util/constants.js | 84 + .../node_modules/adm-zip/util/errors.js | 35 + .../node_modules/adm-zip/util/fattr.js | 84 + .../node_modules/adm-zip/util/index.js | 4 + .../node_modules/adm-zip/util/utils.js | 145 + .../node_modules/adm-zip/zipEntry.js | 224 + .../node_modules/adm-zip/zipFile.js | 311 + .../node_modules/stream-combiner/.npmignore | 3 + .../node_modules/stream-combiner/.travis.yml | 4 + .../node_modules/stream-combiner/LICENSE | 22 + .../node_modules/stream-combiner/README.md | 29 + .../node_modules/stream-combiner/index.js | 39 + .../node_modules/duplexer/.npmignore | 3 + .../node_modules/duplexer/.travis.yml | 6 + .../node_modules/duplexer/LICENCE | 19 + .../node_modules/duplexer/README.md | 47 + .../node_modules/duplexer/index.js | 87 + .../node_modules/duplexer/package.json | 61 + .../node_modules/duplexer/test/index.js | 31 + .../node_modules/stream-combiner/package.json | 37 + .../stream-combiner/test/index.js | 52 + .../decompress/node_modules/tar/.npmignore | 5 + .../decompress/node_modules/tar/.travis.yml | 3 + .../decompress/node_modules/tar/LICENCE | 25 + .../decompress/node_modules/tar/README.md | 46 + .../node_modules/tar/examples/extracter.js | 11 + .../node_modules/tar/examples/reader.js | 36 + .../node_modules/tar/lib/buffer-entry.js | 30 + .../node_modules/tar/lib/entry-writer.js | 169 + .../decompress/node_modules/tar/lib/entry.js | 213 + .../tar/lib/extended-header-writer.js | 191 + .../node_modules/tar/lib/extended-header.js | 140 + .../node_modules/tar/lib/extract.js | 78 + .../tar/lib/global-header-writer.js | 14 + .../decompress/node_modules/tar/lib/header.js | 385 ++ .../decompress/node_modules/tar/lib/pack.js | 231 + .../decompress/node_modules/tar/lib/parse.js | 270 + .../tar/node_modules/block-stream/LICENCE | 25 + .../tar/node_modules/block-stream/README.md | 14 + .../block-stream/bench/block-stream-pause.js | 70 + .../block-stream/bench/block-stream.js | 68 + .../block-stream/bench/dropper-pause.js | 70 + .../block-stream/bench/dropper.js | 68 + .../node_modules/block-stream/block-stream.js | 209 + .../node_modules/block-stream/package.json | 40 + .../node_modules/block-stream/test/basic.js | 27 + .../block-stream/test/nopad-thorough.js | 68 + .../node_modules/block-stream/test/nopad.js | 57 + .../block-stream/test/pause-resume.js | 73 + .../block-stream/test/thorough.js | 68 + .../block-stream/test/two-stream.js | 59 + .../tar/node_modules/fstream/.npmignore | 5 + .../tar/node_modules/fstream/.travis.yml | 3 + .../tar/node_modules/fstream/LICENSE | 27 + .../tar/node_modules/fstream/README.md | 76 + .../fstream/examples/filter-pipe.js | 131 + .../tar/node_modules/fstream/examples/pipe.js | 115 + .../node_modules/fstream/examples/reader.js | 54 + .../fstream/examples/symlink-write.js | 24 + .../tar/node_modules/fstream/fstream.js | 31 + .../tar/node_modules/fstream/lib/abstract.js | 85 + .../tar/node_modules/fstream/lib/collect.js | 67 + .../node_modules/fstream/lib/dir-reader.js | 251 + .../node_modules/fstream/lib/dir-writer.js | 171 + .../node_modules/fstream/lib/file-reader.js | 147 + .../node_modules/fstream/lib/file-writer.js | 100 + .../tar/node_modules/fstream/lib/get-type.js | 32 + .../node_modules/fstream/lib/link-reader.js | 54 + .../node_modules/fstream/lib/link-writer.js | 95 + .../node_modules/fstream/lib/proxy-reader.js | 93 + .../node_modules/fstream/lib/proxy-writer.js | 109 + .../tar/node_modules/fstream/lib/reader.js | 260 + .../node_modules/fstream/lib/socket-reader.js | 38 + .../tar/node_modules/fstream/lib/writer.js | 389 ++ .../tar/node_modules/fstream/package.json | 43 + .../tar/node_modules/inherits/LICENSE | 16 + .../tar/node_modules/inherits/README.md | 42 + .../tar/node_modules/inherits/inherits.js | 1 + .../node_modules/inherits/inherits_browser.js | 23 + .../tar/node_modules/inherits/package.json | 37 + .../tar/node_modules/inherits/test.js | 25 + .../decompress/node_modules/tar/package.json | 40 + .../decompress/node_modules/tar/tar.js | 173 + .../tar/test/00-setup-fixtures.js | 53 + .../node_modules/tar/test/extract.js | 358 ++ .../node_modules/tar/test/fixtures.tgz | Bin 0 -> 19205 bytes .../node_modules/tar/test/header.js | 183 + .../tar/test/pack-no-proprietary.js | 854 +++ .../decompress/node_modules/tar/test/pack.js | 897 +++ .../decompress/node_modules/tar/test/parse.js | 359 ++ .../node_modules/tar/test/zz-cleanup.js | 20 + .../decompress/node_modules/tempfile/index.js | 8 + .../tempfile/node_modules/uuid/.npmignore | 2 + .../tempfile/node_modules/uuid/.travis.yml | 5 + .../tempfile/node_modules/uuid/LICENSE.md | 2 + .../tempfile/node_modules/uuid/README.md | 204 + .../node_modules/uuid/benchmark/README.md | 53 + .../node_modules/uuid/benchmark/bench.gnu | 174 + .../node_modules/uuid/benchmark/bench.sh | 34 + .../uuid/benchmark/benchmark-native.c | 34 + .../node_modules/uuid/benchmark/benchmark.js | 84 + .../node_modules/uuid/misc/compare.js | 62 + .../tempfile/node_modules/uuid/misc/perf.js | 102 + .../tempfile/node_modules/uuid/package.json | 56 + .../tempfile/node_modules/uuid/rng-browser.js | 31 + .../tempfile/node_modules/uuid/rng.js | 4 + .../node_modules/uuid/test/mocha.opts | 1 + .../tempfile/node_modules/uuid/test/test.js | 105 + .../tempfile/node_modules/uuid/uuid.js | 187 + .../node_modules/tempfile/package.json | 52 + .../node_modules/tempfile/readme.md | 36 + .../node_modules/decompress/package.json | 55 + .../node_modules/each-async/each-async.js | 72 + .../node_modules/each-async/package.json | 54 + .../node_modules/each-async/readme.md | 78 + .../download/node_modules/request/.npmignore | 2 + .../download/node_modules/request/.travis.yml | 12 + .../download/node_modules/request/LICENSE | 55 + .../download/node_modules/request/README.md | 366 ++ .../node_modules/request/dns-request.js | 7 + .../download/node_modules/request/index.js | 157 + .../download/node_modules/request/lib/copy.js | 8 + .../node_modules/request/lib/debug.js | 7 + .../node_modules/request/lib/getSafe.js | 34 + .../node_modules/request/lib/optional.js | 5 + .../request/node_modules/aws-sign2/LICENSE | 55 + .../request/node_modules/aws-sign2/README.md | 4 + .../request/node_modules/aws-sign2/index.js | 202 + .../node_modules/aws-sign2/package.json | 32 + .../node_modules/forever-agent/LICENSE | 55 + .../node_modules/forever-agent/README.md | 4 + .../node_modules/forever-agent/index.js | 119 + .../node_modules/forever-agent/package.json | 32 + .../request/node_modules/form-data/License | 19 + .../request/node_modules/form-data/Readme.md | 163 + .../node_modules/form-data/lib/form_data.js | 325 + .../form-data/node_modules/async/LICENSE | 19 + .../form-data/node_modules/async/README.md | 1425 +++++ .../node_modules/async/component.json | 11 + .../form-data/node_modules/async/lib/async.js | 958 +++ .../form-data/node_modules/async/package.json | 47 + .../node_modules/combined-stream/.npmignore | 3 + .../node_modules/combined-stream/License | 19 + .../node_modules/combined-stream/Makefile | 7 + .../node_modules/combined-stream/Readme.md | 132 + .../combined-stream/lib/combined_stream.js | 185 + .../node_modules/delayed-stream/.npmignore | 2 + .../node_modules/delayed-stream/License | 19 + .../node_modules/delayed-stream/Makefile | 7 + .../node_modules/delayed-stream/Readme.md | 154 + .../delayed-stream/lib/delayed_stream.js | 99 + .../node_modules/delayed-stream/package.json | 35 + .../delayed-stream/test/common.js | 6 + .../integration/test-delayed-http-upload.js | 38 + .../test-delayed-stream-auto-pause.js | 21 + .../integration/test-delayed-stream-pause.js | 14 + .../test/integration/test-delayed-stream.js | 48 + .../integration/test-handle-source-errors.js | 15 + .../test/integration/test-max-data-size.js | 18 + .../test/integration/test-pipe-resumes.js | 13 + .../test/integration/test-proxy-readable.js | 13 + .../node_modules/delayed-stream/test/run.js | 7 + .../node_modules/combined-stream/package.json | 36 + .../combined-stream/test/common.js | 23 + .../combined-stream/test/fixture/file1.txt | 256 + .../combined-stream/test/fixture/file2.txt | 256 + .../test/integration/test-callback-streams.js | 27 + .../test/integration/test-data-size.js | 34 + ...delayed-streams-and-buffers-and-strings.js | 38 + .../test/integration/test-delayed-streams.js | 35 + .../test/integration/test-empty-string.js | 39 + .../test/integration/test-is-stream-like.js | 17 + .../test/integration/test-max-data-size.js | 24 + .../test/integration/test-unpaused-streams.js | 30 + .../node_modules/combined-stream/test/run.js | 7 + .../node_modules/form-data/package.json | 50 + .../request/node_modules/hawk/.npmignore | 18 + .../request/node_modules/hawk/.travis.yml | 5 + .../request/node_modules/hawk/LICENSE | 24 + .../request/node_modules/hawk/Makefile | 10 + .../request/node_modules/hawk/README.md | 627 ++ .../node_modules/hawk/example/usage.js | 78 + .../request/node_modules/hawk/images/hawk.png | Bin 0 -> 6945 bytes .../request/node_modules/hawk/images/logo.png | Bin 0 -> 71732 bytes .../request/node_modules/hawk/index.js | 1 + .../request/node_modules/hawk/lib/browser.js | 485 ++ .../request/node_modules/hawk/lib/client.js | 367 ++ .../request/node_modules/hawk/lib/crypto.js | 111 + .../request/node_modules/hawk/lib/index.js | 15 + .../request/node_modules/hawk/lib/server.js | 524 ++ .../request/node_modules/hawk/lib/utils.js | 183 + .../hawk/node_modules/boom/.npmignore | 18 + .../hawk/node_modules/boom/.travis.yml | 5 + .../hawk/node_modules/boom/LICENSE | 24 + .../hawk/node_modules/boom/Makefile | 11 + .../hawk/node_modules/boom/README.md | 6 + .../hawk/node_modules/boom/images/boom.png | Bin 0 -> 29479 bytes .../hawk/node_modules/boom/index.js | 1 + .../hawk/node_modules/boom/lib/index.js | 207 + .../hawk/node_modules/boom/package.json | 51 + .../hawk/node_modules/boom/test/index.js | 245 + .../hawk/node_modules/cryptiles/.npmignore | 18 + .../hawk/node_modules/cryptiles/.travis.yml | 5 + .../hawk/node_modules/cryptiles/LICENSE | 24 + .../hawk/node_modules/cryptiles/Makefile | 11 + .../hawk/node_modules/cryptiles/README.md | 6 + .../hawk/node_modules/cryptiles/index.js | 1 + .../hawk/node_modules/cryptiles/lib/index.js | 68 + .../hawk/node_modules/cryptiles/package.json | 52 + .../hawk/node_modules/cryptiles/test/index.js | 101 + .../hawk/node_modules/hoek/.npmignore | 18 + .../hawk/node_modules/hoek/.travis.yml | 5 + .../hawk/node_modules/hoek/LICENSE | 33 + .../hawk/node_modules/hoek/Makefile | 10 + .../hawk/node_modules/hoek/README.md | 436 ++ .../hawk/node_modules/hoek/images/hoek.png | Bin 0 -> 37939 bytes .../hawk/node_modules/hoek/index.js | 1 + .../hawk/node_modules/hoek/lib/escape.js | 132 + .../hawk/node_modules/hoek/lib/index.js | 585 ++ .../hawk/node_modules/hoek/package.json | 53 + .../hawk/node_modules/hoek/test/escaper.js | 86 + .../hawk/node_modules/hoek/test/index.js | 1078 ++++ .../node_modules/hoek/test/modules/test1.js | 1 + .../node_modules/hoek/test/modules/test2.js | 1 + .../node_modules/hoek/test/modules/test3.js | 1 + .../hawk/node_modules/sntp/.npmignore | 18 + .../hawk/node_modules/sntp/.travis.yml | 5 + .../hawk/node_modules/sntp/LICENSE | 24 + .../hawk/node_modules/sntp/Makefile | 11 + .../hawk/node_modules/sntp/README.md | 68 + .../hawk/node_modules/sntp/examples/offset.js | 16 + .../hawk/node_modules/sntp/examples/time.js | 25 + .../hawk/node_modules/sntp/index.js | 1 + .../hawk/node_modules/sntp/lib/index.js | 409 ++ .../hawk/node_modules/sntp/package.json | 52 + .../hawk/node_modules/sntp/test/index.js | 359 ++ .../request/node_modules/hawk/package.json | 57 + .../request/node_modules/hawk/test/browser.js | 771 +++ .../request/node_modules/hawk/test/client.js | 206 + .../request/node_modules/hawk/test/crypto.js | 86 + .../request/node_modules/hawk/test/index.js | 316 + .../request/node_modules/hawk/test/message.js | 246 + .../request/node_modules/hawk/test/readme.js | 98 + .../request/node_modules/hawk/test/server.js | 686 +++ .../request/node_modules/hawk/test/uri.js | 456 ++ .../request/node_modules/hawk/test/utils.js | 120 + .../http-signature/.dir-locals.el | 6 + .../node_modules/http-signature/.npmignore | 7 + .../node_modules/http-signature/LICENSE | 18 + .../node_modules/http-signature/README.md | 75 + .../http-signature/http_signing.md | 296 + .../node_modules/http-signature/lib/index.js | 25 + .../node_modules/http-signature/lib/parser.js | 304 + .../node_modules/http-signature/lib/signer.js | 179 + .../node_modules/http-signature/lib/util.js | 249 + .../node_modules/http-signature/lib/verify.js | 42 + .../node_modules/asn1/.npmignore | 2 + .../http-signature/node_modules/asn1/LICENSE | 19 + .../node_modules/asn1/README.md | 50 + .../node_modules/asn1/lib/ber/errors.js | 13 + .../node_modules/asn1/lib/ber/index.js | 27 + .../node_modules/asn1/lib/ber/reader.js | 267 + .../node_modules/asn1/lib/ber/types.js | 36 + .../node_modules/asn1/lib/ber/writer.js | 317 + .../node_modules/asn1/lib/index.js | 20 + .../node_modules/asn1/package.json | 47 + .../node_modules/asn1/tst/ber/reader.test.js | 172 + .../node_modules/asn1/tst/ber/writer.test.js | 296 + .../node_modules/assert-plus/README.md | 126 + .../node_modules/assert-plus/assert.js | 196 + .../node_modules/assert-plus/package.json | 24 + .../node_modules/ctype/CHANGELOG | 71 + .../http-signature/node_modules/ctype/LICENSE | 24 + .../http-signature/node_modules/ctype/README | 82 + .../node_modules/ctype/README.old | 298 + .../http-signature/node_modules/ctype/ctf.js | 245 + .../http-signature/node_modules/ctype/ctio.js | 1485 +++++ .../node_modules/ctype/ctype.js | 944 +++ .../ctype/man/man3ctype/ctio.3ctype | 241 + .../node_modules/ctype/package.json | 22 + .../node_modules/ctype/tools/jsl.conf | 129 + .../node_modules/ctype/tools/jsstyle | 839 +++ .../node_modules/ctype/tst/ctf/float.json | 13 + .../node_modules/ctype/tst/ctf/int.json | 13 + .../node_modules/ctype/tst/ctf/psinfo.json | 104 + .../node_modules/ctype/tst/ctf/struct.json | 19 + .../node_modules/ctype/tst/ctf/tst.fail.js | 39 + .../node_modules/ctype/tst/ctf/tst.float.js | 14 + .../node_modules/ctype/tst/ctf/tst.int.js | 14 + .../node_modules/ctype/tst/ctf/tst.psinfo.js | 17 + .../node_modules/ctype/tst/ctf/tst.struct.js | 18 + .../node_modules/ctype/tst/ctf/tst.typedef.js | 15 + .../node_modules/ctype/tst/ctf/typedef.json | 14 + .../ctype/tst/ctio/float/tst.rfloat.js | 767 +++ .../ctype/tst/ctio/float/tst.wfloat.js | 753 +++ .../node_modules/ctype/tst/ctio/int/tst.64.js | 638 ++ .../ctype/tst/ctio/int/tst.rint.js | 101 + .../ctype/tst/ctio/int/tst.wbounds.js | 53 + .../ctype/tst/ctio/int/tst.wint.js | 92 + .../ctype/tst/ctio/uint/tst.64.js | 451 ++ .../ctype/tst/ctio/uint/tst.roundtrip.js | 81 + .../ctype/tst/ctio/uint/tst.ruint.js | 95 + .../ctype/tst/ctio/uint/tst.wuint.js | 156 + .../ctype/tst/ctype/tst.basicr.js | 50 + .../ctype/tst/ctype/tst.basicw.js | 44 + .../node_modules/ctype/tst/ctype/tst.char.js | 42 + .../ctype/tst/ctype/tst.endian.js | 45 + .../ctype/tst/ctype/tst.oldwrite.js | 28 + .../ctype/tst/ctype/tst.readSize.js | 128 + .../ctype/tst/ctype/tst.structw.js | 28 + .../ctype/tst/ctype/tst.writeStruct.js | 31 + .../node_modules/http-signature/package.json | 40 + .../node_modules/json-stringify-safe/LICENSE | 27 + .../json-stringify-safe/README.md | 49 + .../json-stringify-safe/package.json | 37 + .../json-stringify-safe/stringify.js | 39 + .../node_modules/json-stringify-safe/test.js | 128 + .../request/node_modules/mime/LICENSE | 19 + .../request/node_modules/mime/README.md | 66 + .../request/node_modules/mime/mime.js | 114 + .../request/node_modules/mime/package.json | 36 + .../request/node_modules/mime/test.js | 84 + .../node_modules/mime/types/mime.types | 1588 +++++ .../node_modules/mime/types/node.types | 77 + .../request/node_modules/node-uuid/.npmignore | 2 + .../request/node_modules/node-uuid/LICENSE.md | 2 + .../request/node_modules/node-uuid/README.md | 207 + .../node-uuid/benchmark/README.md | 53 + .../node-uuid/benchmark/bench.gnu | 174 + .../node_modules/node-uuid/benchmark/bench.sh | 34 + .../node-uuid/benchmark/benchmark-native.c | 34 + .../node-uuid/benchmark/benchmark.js | 84 + .../node_modules/node-uuid/component.json | 18 + .../node_modules/node-uuid/package.json | 39 + .../node_modules/node-uuid/test/compare_v1.js | 63 + .../node_modules/node-uuid/test/test.html | 17 + .../node_modules/node-uuid/test/test.js | 228 + .../request/node_modules/node-uuid/uuid.js | 245 + .../request/node_modules/oauth-sign/LICENSE | 55 + .../request/node_modules/oauth-sign/README.md | 4 + .../request/node_modules/oauth-sign/index.js | 43 + .../node_modules/oauth-sign/package.json | 35 + .../request/node_modules/oauth-sign/test.js | 49 + .../request/node_modules/qs/.gitmodules | 6 + .../request/node_modules/qs/.npmignore | 7 + .../request/node_modules/qs/Readme.md | 58 + .../request/node_modules/qs/index.js | 366 ++ .../request/node_modules/qs/package.json | 38 + .../node_modules/tough-cookie/.jshintrc | 72 + .../node_modules/tough-cookie/.npmignore | 3 + .../request/node_modules/tough-cookie/LICENSE | 78 + .../node_modules/tough-cookie/README.md | 380 ++ .../tough-cookie/generate-pubsuffix.js | 230 + .../node_modules/tough-cookie/lib/cookie.js | 947 +++ .../node_modules/tough-cookie/lib/memstore.js | 102 + .../tough-cookie/lib/pubsuffix.js | 69 + .../node_modules/punycode/LICENSE-GPL.txt | 278 + .../node_modules/punycode/LICENSE-MIT.txt | 20 + .../node_modules/punycode/package.json | 77 + .../node_modules/punycode/punycode.js | 508 ++ .../node_modules/punycode/punycode.min.js | 2 + .../punycode/vendor/docdown/LICENSE.txt | 20 + .../punycode/vendor/docdown/README.md | 35 + .../punycode/vendor/docdown/doc/README.md | 69 + .../punycode/vendor/docdown/doc/parse.php | 35 + .../punycode/vendor/docdown/docdown.php | 38 + .../vendor/docdown/src/DocDown/Alias.php | 226 + .../vendor/docdown/src/DocDown/Entry.php | 442 ++ .../vendor/docdown/src/DocDown/Generator.php | 563 ++ .../node_modules/tough-cookie/package.json | 50 + .../tough-cookie/public-suffix.txt | 5229 +++++++++++++++++ .../request/node_modules/tough-cookie/test.js | 1340 +++++ .../request/node_modules/tunnel-agent/LICENSE | 55 + .../node_modules/tunnel-agent/README.md | 4 + .../node_modules/tunnel-agent/index.js | 227 + .../node_modules/tunnel-agent/package.json | 32 + .../node_modules/request/package.json | 61 + .../download/node_modules/request/request.js | 1260 ++++ .../download/node_modules/through2/.jshintrc | 59 + .../download/node_modules/through2/.npmignore | 1 + .../node_modules/through2/.travis.yml | 17 + .../download/node_modules/through2/LICENSE | 39 + .../download/node_modules/through2/README.md | 131 + .../node_modules/readable-stream/.npmignore | 5 + .../node_modules/readable-stream/LICENSE | 27 + .../node_modules/readable-stream/README.md | 768 +++ .../node_modules/readable-stream/duplex.js | 1 + .../node_modules/readable-stream/float.patch | 68 + .../readable-stream/lib/_stream_duplex.js | 69 + .../lib/_stream_passthrough.js | 41 + .../readable-stream/lib/_stream_readable.js | 927 +++ .../readable-stream/lib/_stream_transform.js | 205 + .../readable-stream/lib/_stream_writable.js | 371 ++ .../node_modules/string_decoder/.npmignore | 1 + .../node_modules/string_decoder/LICENSE | 20 + .../node_modules/string_decoder/README.md | 7 + .../string_decoder/build/.npmignore | 1 + .../string_decoder/build/build.js | 94 + .../string_decoder/build/files.js | 36 + .../string_decoder/build/package.json | 12 + .../string_decoder/build/test-replacements.js | 24 + .../node_modules/string_decoder/index.js | 200 + .../node_modules/string_decoder/package.json | 36 + .../string_decoder/test/common.js | 200 + .../test/simple/test-string-decoder-end.js | 75 + .../test/simple/test-string-decoder.js | 163 + .../node_modules/readable-stream/package.json | 42 + .../readable-stream/passthrough.js | 1 + .../node_modules/readable-stream/readable.js | 6 + .../node_modules/readable-stream/transform.js | 1 + .../node_modules/readable-stream/writable.js | 1 + .../through2/node_modules/xtend/.npmignore | 1 + .../through2/node_modules/xtend/LICENCE | 19 + .../through2/node_modules/xtend/Makefile | 4 + .../through2/node_modules/xtend/README.md | 27 + .../through2/node_modules/xtend/has-keys.js | 7 + .../through2/node_modules/xtend/index.js | 25 + .../through2/node_modules/xtend/mutable.js | 25 + .../xtend/node_modules/object-keys/.npmignore | 1 + .../node_modules/object-keys/.travis.yml | 5 + .../xtend/node_modules/object-keys/README.md | 39 + .../xtend/node_modules/object-keys/foreach.js | 40 + .../xtend/node_modules/object-keys/index.js | 2 + .../node_modules/object-keys/isArguments.js | 16 + .../node_modules/object-keys/package.json | 60 + .../xtend/node_modules/object-keys/shim.js | 62 + .../node_modules/object-keys/test/foreach.js | 156 + .../node_modules/object-keys/test/index.js | 6 + .../object-keys/test/isArguments.js | 10 + .../node_modules/object-keys/test/shim.js | 134 + .../through2/node_modules/xtend/package.json | 76 + .../through2/node_modules/xtend/test.js | 63 + .../node_modules/through2/package.json | 48 + .../node_modules/through2/test/basic-test.js | 334 ++ .../node_modules/through2/test/bench.js | 42 + .../node_modules/through2/test/sauce.js | 38 + .../node_modules/through2/test/test.js | 9 + .../node_modules/through2/through2.js | 78 + .../node_modules/download/package.json | 55 + .../bin-wrapper/node_modules/isbin/.npmignore | 1 + .../node_modules/isbin/.travis.yml | 3 + .../bin-wrapper/node_modules/isbin/History.md | 20 + .../bin-wrapper/node_modules/isbin/Makefile | 6 + .../bin-wrapper/node_modules/isbin/README.md | 59 + .../bin-wrapper/node_modules/isbin/index.js | 1 + .../node_modules/isbin/lib/index.js | 51 + .../isbin/node_modules/async/.gitmodules | 9 + .../isbin/node_modules/async/.npmignore | 4 + .../isbin/node_modules/async/LICENSE | 19 + .../isbin/node_modules/async/Makefile | 25 + .../isbin/node_modules/async/README.md | 1021 ++++ .../isbin/node_modules/async/index.js | 3 + .../isbin/node_modules/async/lib/async.js | 692 +++ .../isbin/node_modules/async/package.json | 36 + .../node_modules/isbin/package.json | 45 + .../node_modules/isbin/test/isbin.js | 39 + .../node_modules/isbin/test/mocha.opts | 4 + .../node_modules/mout/.editorconfig | 20 + .../bin-wrapper/node_modules/mout/.jshintrc | 69 + .../bin-wrapper/node_modules/mout/.npmignore | 30 + .../bin-wrapper/node_modules/mout/.travis.yml | 13 + .../node_modules/mout/CHANGELOG.md | 93 + .../node_modules/mout/CONTRIBUTING.md | 61 + .../bin-wrapper/node_modules/mout/LICENSE.md | 21 + .../bin-wrapper/node_modules/mout/README.md | 63 + .../bin-wrapper/node_modules/mout/array.js | 46 + .../node_modules/mout/array/append.js | 21 + .../node_modules/mout/array/collect.js | 27 + .../node_modules/mout/array/combine.js | 22 + .../node_modules/mout/array/compact.js | 13 + .../node_modules/mout/array/contains.js | 10 + .../node_modules/mout/array/difference.js | 22 + .../node_modules/mout/array/every.js | 27 + .../node_modules/mout/array/filter.js | 27 + .../node_modules/mout/array/find.js | 13 + .../node_modules/mout/array/findIndex.js | 23 + .../node_modules/mout/array/flatten.js | 43 + .../node_modules/mout/array/forEach.js | 23 + .../node_modules/mout/array/indexOf.js | 28 + .../node_modules/mout/array/insert.js | 15 + .../node_modules/mout/array/intersection.js | 23 + .../node_modules/mout/array/invoke.js | 23 + .../node_modules/mout/array/join.js | 17 + .../node_modules/mout/array/lastIndexOf.js | 28 + .../node_modules/mout/array/map.js | 23 + .../node_modules/mout/array/max.js | 35 + .../node_modules/mout/array/min.js | 35 + .../node_modules/mout/array/pick.js | 14 + .../node_modules/mout/array/pluck.js | 12 + .../node_modules/mout/array/range.js | 27 + .../node_modules/mout/array/reduce.js | 33 + .../node_modules/mout/array/reduceRight.js | 34 + .../node_modules/mout/array/reject.js | 26 + .../node_modules/mout/array/remove.js | 13 + .../node_modules/mout/array/removeAll.js | 15 + .../node_modules/mout/array/shuffle.js | 29 + .../node_modules/mout/array/some.js | 27 + .../node_modules/mout/array/sort.js | 55 + .../node_modules/mout/array/split.js | 35 + .../node_modules/mout/array/toLookup.js | 28 + .../node_modules/mout/array/union.js | 19 + .../node_modules/mout/array/unique.js | 17 + .../node_modules/mout/array/xor.js | 26 + .../node_modules/mout/array/zip.js | 29 + .../node_modules/mout/collection.js | 22 + .../node_modules/mout/collection/contains.js | 9 + .../node_modules/mout/collection/every.js | 9 + .../node_modules/mout/collection/filter.js | 23 + .../node_modules/mout/collection/find.js | 10 + .../node_modules/mout/collection/forEach.js | 9 + .../node_modules/mout/collection/make_.js | 19 + .../node_modules/mout/collection/map.js | 23 + .../node_modules/mout/collection/max.js | 10 + .../node_modules/mout/collection/min.js | 10 + .../node_modules/mout/collection/pluck.js | 14 + .../node_modules/mout/collection/reduce.js | 9 + .../node_modules/mout/collection/reject.js | 16 + .../node_modules/mout/collection/size.js | 19 + .../node_modules/mout/collection/some.js | 9 + .../bin-wrapper/node_modules/mout/date.js | 21 + .../node_modules/mout/date/dayOfTheYear.js | 13 + .../node_modules/mout/date/diff.js | 130 + .../node_modules/mout/date/i18n/en-US.js | 61 + .../node_modules/mout/date/i18n/pt-BR.js | 61 + .../node_modules/mout/date/i18n_.js | 14 + .../node_modules/mout/date/isLeapYear.js | 15 + .../node_modules/mout/date/isSame.js | 16 + .../node_modules/mout/date/parseIso.js | 146 + .../node_modules/mout/date/startOf.js | 54 + .../node_modules/mout/date/strftime.js | 118 + .../node_modules/mout/date/timezoneAbbr.js | 17 + .../node_modules/mout/date/timezoneOffset.js | 16 + .../mout/date/totalDaysInMonth.js | 25 + .../node_modules/mout/date/totalDaysInYear.js | 13 + .../node_modules/mout/date/weekOfTheYear.js | 16 + .../node_modules/mout/doc/array.md | 773 +++ .../node_modules/mout/doc/collection.md | 233 + .../bin-wrapper/node_modules/mout/doc/date.md | 295 + .../node_modules/mout/doc/function.md | 174 + .../bin-wrapper/node_modules/mout/doc/lang.md | 385 ++ .../bin-wrapper/node_modules/mout/doc/math.md | 298 + .../node_modules/mout/doc/number.md | 225 + .../node_modules/mout/doc/object.md | 780 +++ .../node_modules/mout/doc/queryString.md | 115 + .../node_modules/mout/doc/random.md | 218 + .../node_modules/mout/doc/string.md | 594 ++ .../bin-wrapper/node_modules/mout/doc/time.md | 64 + .../bin-wrapper/node_modules/mout/function.js | 18 + .../node_modules/mout/function/bind.js | 23 + .../node_modules/mout/function/compose.js | 23 + .../node_modules/mout/function/debounce.js | 29 + .../node_modules/mout/function/func.js | 14 + .../mout/function/makeIterator_.js | 34 + .../node_modules/mout/function/partial.js | 19 + .../node_modules/mout/function/prop.js | 14 + .../node_modules/mout/function/series.js | 22 + .../node_modules/mout/function/throttle.js | 32 + .../node_modules/mout/function/timeout.js | 21 + .../bin-wrapper/node_modules/mout/index.js | 24 + .../bin-wrapper/node_modules/mout/lang.js | 36 + .../node_modules/mout/lang/clone.js | 49 + .../node_modules/mout/lang/createObject.js | 18 + .../node_modules/mout/lang/ctorApply.js | 17 + .../node_modules/mout/lang/deepClone.js | 48 + .../node_modules/mout/lang/defaults.js | 17 + .../mout/lang/inheritPrototype.js | 16 + .../bin-wrapper/node_modules/mout/lang/is.js | 23 + .../node_modules/mout/lang/isArguments.js | 15 + .../node_modules/mout/lang/isArray.js | 8 + .../node_modules/mout/lang/isBoolean.js | 8 + .../node_modules/mout/lang/isDate.js | 8 + .../node_modules/mout/lang/isEmpty.js | 24 + .../node_modules/mout/lang/isFinite.js | 21 + .../node_modules/mout/lang/isFunction.js | 8 + .../node_modules/mout/lang/isInteger.js | 12 + .../node_modules/mout/lang/isKind.js | 9 + .../node_modules/mout/lang/isNaN.js | 15 + .../node_modules/mout/lang/isNull.js | 9 + .../node_modules/mout/lang/isNumber.js | 8 + .../node_modules/mout/lang/isObject.js | 8 + .../node_modules/mout/lang/isPlainObject.js | 14 + .../node_modules/mout/lang/isRegExp.js | 8 + .../node_modules/mout/lang/isString.js | 8 + .../node_modules/mout/lang/isUndefined.js | 10 + .../node_modules/mout/lang/isnt.js | 12 + .../node_modules/mout/lang/kindOf.js | 20 + .../node_modules/mout/lang/toArray.js | 31 + .../node_modules/mout/lang/toString.js | 13 + .../bin-wrapper/node_modules/mout/math.js | 19 + .../node_modules/mout/math/ceil.js | 11 + .../node_modules/mout/math/clamp.js | 9 + .../node_modules/mout/math/countSteps.js | 16 + .../node_modules/mout/math/floor.js | 10 + .../node_modules/mout/math/inRange.js | 11 + .../node_modules/mout/math/isNear.js | 9 + .../node_modules/mout/math/lerp.js | 11 + .../node_modules/mout/math/loop.js | 10 + .../bin-wrapper/node_modules/mout/math/map.js | 11 + .../node_modules/mout/math/norm.js | 9 + .../node_modules/mout/math/round.js | 12 + .../bin-wrapper/node_modules/mout/number.js | 21 + .../node_modules/mout/number/MAX_INT.js | 6 + .../node_modules/mout/number/MAX_UINT.js | 6 + .../node_modules/mout/number/MIN_INT.js | 6 + .../node_modules/mout/number/abbreviate.js | 35 + .../mout/number/currencyFormat.js | 26 + .../mout/number/enforcePrecision.js | 13 + .../node_modules/mout/number/pad.js | 12 + .../node_modules/mout/number/rol.js | 10 + .../node_modules/mout/number/ror.js | 10 + .../node_modules/mout/number/sign.js | 15 + .../node_modules/mout/number/toInt.js | 15 + .../node_modules/mout/number/toUInt.js | 13 + .../node_modules/mout/number/toUInt31.js | 13 + .../bin-wrapper/node_modules/mout/object.js | 42 + .../node_modules/mout/object/bindAll.js | 18 + .../node_modules/mout/object/contains.js | 13 + .../node_modules/mout/object/deepEquals.js | 27 + .../node_modules/mout/object/deepFillIn.js | 32 + .../node_modules/mout/object/deepMatches.js | 55 + .../node_modules/mout/object/deepMixIn.js | 34 + .../node_modules/mout/object/equals.js | 36 + .../node_modules/mout/object/every.js | 23 + .../node_modules/mout/object/fillIn.js | 20 + .../node_modules/mout/object/filter.js | 20 + .../node_modules/mout/object/find.js | 21 + .../node_modules/mout/object/forIn.js | 62 + .../node_modules/mout/object/forOwn.js | 19 + .../node_modules/mout/object/functions.js | 18 + .../node_modules/mout/object/get.js | 20 + .../node_modules/mout/object/has.js | 15 + .../node_modules/mout/object/hasOwn.js | 12 + .../node_modules/mout/object/keys.js | 16 + .../node_modules/mout/object/map.js | 18 + .../node_modules/mout/object/matches.js | 20 + .../node_modules/mout/object/max.js | 12 + .../node_modules/mout/object/merge.js | 40 + .../node_modules/mout/object/min.js | 12 + .../node_modules/mout/object/mixIn.js | 28 + .../node_modules/mout/object/namespace.js | 19 + .../node_modules/mout/object/pick.js | 18 + .../node_modules/mout/object/pluck.js | 13 + .../node_modules/mout/object/reduce.js | 29 + .../node_modules/mout/object/reject.js | 16 + .../node_modules/mout/object/set.js | 17 + .../node_modules/mout/object/size.js | 16 + .../node_modules/mout/object/some.js | 21 + .../node_modules/mout/object/unset.js | 23 + .../node_modules/mout/object/values.js | 16 + .../node_modules/mout/package.json | 123 + .../node_modules/mout/queryString.js | 15 + .../node_modules/mout/queryString/contains.js | 12 + .../node_modules/mout/queryString/decode.js | 21 + .../node_modules/mout/queryString/encode.js | 15 + .../node_modules/mout/queryString/getParam.js | 15 + .../node_modules/mout/queryString/getQuery.js | 13 + .../node_modules/mout/queryString/parse.js | 13 + .../node_modules/mout/queryString/setParam.js | 28 + .../bin-wrapper/node_modules/mout/random.js | 16 + .../node_modules/mout/random/choice.js | 15 + .../node_modules/mout/random/guid.js | 24 + .../node_modules/mout/random/rand.js | 15 + .../node_modules/mout/random/randBit.js | 11 + .../node_modules/mout/random/randHex.js | 19 + .../node_modules/mout/random/randInt.js | 18 + .../node_modules/mout/random/randSign.js | 11 + .../node_modules/mout/random/random.js | 18 + .../node_modules/mout/src/array.js | 46 + .../node_modules/mout/src/array/append.js | 21 + .../node_modules/mout/src/array/collect.js | 26 + .../node_modules/mout/src/array/combine.js | 22 + .../node_modules/mout/src/array/compact.js | 13 + .../node_modules/mout/src/array/contains.js | 10 + .../node_modules/mout/src/array/difference.js | 19 + .../node_modules/mout/src/array/every.js | 27 + .../node_modules/mout/src/array/filter.js | 26 + .../node_modules/mout/src/array/find.js | 13 + .../node_modules/mout/src/array/findIndex.js | 23 + .../node_modules/mout/src/array/flatten.js | 42 + .../node_modules/mout/src/array/forEach.js | 23 + .../node_modules/mout/src/array/indexOf.js | 28 + .../node_modules/mout/src/array/insert.js | 14 + .../mout/src/array/intersection.js | 20 + .../node_modules/mout/src/array/invoke.js | 23 + .../node_modules/mout/src/array/join.js | 17 + .../mout/src/array/lastIndexOf.js | 28 + .../node_modules/mout/src/array/map.js | 22 + .../node_modules/mout/src/array/max.js | 34 + .../node_modules/mout/src/array/min.js | 34 + .../node_modules/mout/src/array/pick.js | 14 + .../node_modules/mout/src/array/pluck.js | 12 + .../node_modules/mout/src/array/range.js | 27 + .../node_modules/mout/src/array/reduce.js | 33 + .../mout/src/array/reduceRight.js | 34 + .../node_modules/mout/src/array/reject.js | 25 + .../node_modules/mout/src/array/remove.js | 13 + .../node_modules/mout/src/array/removeAll.js | 15 + .../node_modules/mout/src/array/shuffle.js | 28 + .../node_modules/mout/src/array/some.js | 27 + .../node_modules/mout/src/array/sort.js | 55 + .../node_modules/mout/src/array/split.js | 35 + .../node_modules/mout/src/array/toLookup.js | 28 + .../node_modules/mout/src/array/union.js | 18 + .../node_modules/mout/src/array/unique.js | 16 + .../node_modules/mout/src/array/xor.js | 24 + .../node_modules/mout/src/array/zip.js | 27 + .../node_modules/mout/src/collection.js | 22 + .../mout/src/collection/contains.js | 7 + .../node_modules/mout/src/collection/every.js | 7 + .../mout/src/collection/filter.js | 22 + .../node_modules/mout/src/collection/find.js | 8 + .../mout/src/collection/forEach.js | 7 + .../node_modules/mout/src/collection/make_.js | 19 + .../node_modules/mout/src/collection/map.js | 20 + .../node_modules/mout/src/collection/max.js | 8 + .../node_modules/mout/src/collection/min.js | 8 + .../node_modules/mout/src/collection/pluck.js | 14 + .../mout/src/collection/reduce.js | 7 + .../mout/src/collection/reject.js | 15 + .../node_modules/mout/src/collection/size.js | 18 + .../node_modules/mout/src/collection/some.js | 7 + .../bin-wrapper/node_modules/mout/src/date.js | 21 + .../mout/src/date/dayOfTheYear.js | 13 + .../node_modules/mout/src/date/diff.js | 128 + .../node_modules/mout/src/date/i18n/en-US.js | 61 + .../node_modules/mout/src/date/i18n/pt-BR.js | 61 + .../node_modules/mout/src/date/i18n_.js | 13 + .../node_modules/mout/src/date/isLeapYear.js | 15 + .../node_modules/mout/src/date/isSame.js | 16 + .../node_modules/mout/src/date/parseIso.js | 146 + .../node_modules/mout/src/date/startOf.js | 54 + .../node_modules/mout/src/date/strftime.js | 113 + .../mout/src/date/timezoneAbbr.js | 17 + .../mout/src/date/timezoneOffset.js | 16 + .../mout/src/date/totalDaysInMonth.js | 24 + .../mout/src/date/totalDaysInYear.js | 13 + .../mout/src/date/weekOfTheYear.js | 16 + .../node_modules/mout/src/function.js | 18 + .../node_modules/mout/src/function/bind.js | 23 + .../node_modules/mout/src/function/compose.js | 23 + .../mout/src/function/debounce.js | 29 + .../node_modules/mout/src/function/func.js | 14 + .../mout/src/function/makeIterator_.js | 33 + .../node_modules/mout/src/function/partial.js | 19 + .../node_modules/mout/src/function/prop.js | 14 + .../node_modules/mout/src/function/series.js | 22 + .../mout/src/function/throttle.js | 32 + .../node_modules/mout/src/function/timeout.js | 21 + .../node_modules/mout/src/index.js | 24 + .../bin-wrapper/node_modules/mout/src/lang.js | 36 + .../node_modules/mout/src/lang/clone.js | 47 + .../mout/src/lang/createObject.js | 18 + .../node_modules/mout/src/lang/ctorApply.js | 17 + .../node_modules/mout/src/lang/deepClone.js | 45 + .../node_modules/mout/src/lang/defaults.js | 16 + .../mout/src/lang/inheritPrototype.js | 16 + .../node_modules/mout/src/lang/is.js | 23 + .../node_modules/mout/src/lang/isArguments.js | 15 + .../node_modules/mout/src/lang/isArray.js | 8 + .../node_modules/mout/src/lang/isBoolean.js | 8 + .../node_modules/mout/src/lang/isDate.js | 8 + .../node_modules/mout/src/lang/isEmpty.js | 23 + .../node_modules/mout/src/lang/isFinite.js | 21 + .../node_modules/mout/src/lang/isFunction.js | 8 + .../node_modules/mout/src/lang/isInteger.js | 12 + .../node_modules/mout/src/lang/isKind.js | 9 + .../node_modules/mout/src/lang/isNaN.js | 15 + .../node_modules/mout/src/lang/isNull.js | 9 + .../node_modules/mout/src/lang/isNumber.js | 8 + .../node_modules/mout/src/lang/isObject.js | 8 + .../mout/src/lang/isPlainObject.js | 14 + .../node_modules/mout/src/lang/isRegExp.js | 8 + .../node_modules/mout/src/lang/isString.js | 8 + .../node_modules/mout/src/lang/isUndefined.js | 10 + .../node_modules/mout/src/lang/isnt.js | 12 + .../node_modules/mout/src/lang/kindOf.js | 20 + .../node_modules/mout/src/lang/toArray.js | 31 + .../node_modules/mout/src/lang/toString.js | 13 + .../bin-wrapper/node_modules/mout/src/math.js | 19 + .../node_modules/mout/src/math/ceil.js | 11 + .../node_modules/mout/src/math/clamp.js | 9 + .../node_modules/mout/src/math/countSteps.js | 16 + .../node_modules/mout/src/math/floor.js | 10 + .../node_modules/mout/src/math/inRange.js | 11 + .../node_modules/mout/src/math/isNear.js | 9 + .../node_modules/mout/src/math/lerp.js | 11 + .../node_modules/mout/src/math/loop.js | 10 + .../node_modules/mout/src/math/map.js | 10 + .../node_modules/mout/src/math/norm.js | 9 + .../node_modules/mout/src/math/round.js | 12 + .../node_modules/mout/src/number.js | 21 + .../node_modules/mout/src/number/MAX_INT.js | 6 + .../node_modules/mout/src/number/MAX_UINT.js | 6 + .../node_modules/mout/src/number/MIN_INT.js | 6 + .../mout/src/number/abbreviate.js | 35 + .../mout/src/number/currencyFormat.js | 26 + .../mout/src/number/enforcePrecision.js | 13 + .../node_modules/mout/src/number/pad.js | 12 + .../node_modules/mout/src/number/rol.js | 10 + .../node_modules/mout/src/number/ror.js | 10 + .../node_modules/mout/src/number/sign.js | 15 + .../node_modules/mout/src/number/toInt.js | 15 + .../node_modules/mout/src/number/toUInt.js | 13 + .../node_modules/mout/src/number/toUInt31.js | 13 + .../node_modules/mout/src/object.js | 42 + .../node_modules/mout/src/object/bindAll.js | 16 + .../node_modules/mout/src/object/contains.js | 13 + .../mout/src/object/deepEquals.js | 26 + .../mout/src/object/deepFillIn.js | 31 + .../mout/src/object/deepMatches.js | 54 + .../node_modules/mout/src/object/deepMixIn.js | 33 + .../node_modules/mout/src/object/equals.js | 34 + .../node_modules/mout/src/object/every.js | 22 + .../node_modules/mout/src/object/fillIn.js | 19 + .../node_modules/mout/src/object/filter.js | 19 + .../node_modules/mout/src/object/find.js | 20 + .../node_modules/mout/src/object/forIn.js | 62 + .../node_modules/mout/src/object/forOwn.js | 18 + .../node_modules/mout/src/object/functions.js | 18 + .../node_modules/mout/src/object/get.js | 20 + .../node_modules/mout/src/object/has.js | 15 + .../node_modules/mout/src/object/hasOwn.js | 12 + .../node_modules/mout/src/object/keys.js | 16 + .../node_modules/mout/src/object/map.js | 17 + .../node_modules/mout/src/object/matches.js | 20 + .../node_modules/mout/src/object/max.js | 11 + .../node_modules/mout/src/object/merge.js | 38 + .../node_modules/mout/src/object/min.js | 11 + .../node_modules/mout/src/object/mixIn.js | 28 + .../node_modules/mout/src/object/namespace.js | 19 + .../node_modules/mout/src/object/pick.js | 18 + .../node_modules/mout/src/object/pluck.js | 12 + .../node_modules/mout/src/object/reduce.js | 28 + .../node_modules/mout/src/object/reject.js | 15 + .../node_modules/mout/src/object/set.js | 17 + .../node_modules/mout/src/object/size.js | 16 + .../node_modules/mout/src/object/some.js | 20 + .../node_modules/mout/src/object/unset.js | 23 + .../node_modules/mout/src/object/values.js | 16 + .../node_modules/mout/src/queryString.js | 15 + .../mout/src/queryString/contains.js | 12 + .../mout/src/queryString/decode.js | 20 + .../mout/src/queryString/encode.js | 15 + .../mout/src/queryString/getParam.js | 14 + .../mout/src/queryString/getQuery.js | 13 + .../mout/src/queryString/parse.js | 12 + .../mout/src/queryString/setParam.js | 28 + .../node_modules/mout/src/random.js | 16 + .../node_modules/mout/src/random/choice.js | 14 + .../node_modules/mout/src/random/guid.js | 23 + .../node_modules/mout/src/random/rand.js | 13 + .../node_modules/mout/src/random/randBit.js | 11 + .../node_modules/mout/src/random/randHex.js | 19 + .../node_modules/mout/src/random/randInt.js | 16 + .../node_modules/mout/src/random/randSign.js | 11 + .../node_modules/mout/src/random/random.js | 18 + .../node_modules/mout/src/string.js | 45 + .../mout/src/string/WHITE_SPACES.js | 12 + .../node_modules/mout/src/string/camelCase.js | 16 + .../node_modules/mout/src/string/contains.js | 14 + .../node_modules/mout/src/string/crop.js | 11 + .../node_modules/mout/src/string/endsWith.js | 13 + .../mout/src/string/escapeHtml.js | 18 + .../mout/src/string/escapeRegExp.js | 15 + .../mout/src/string/escapeUnicode.js | 21 + .../node_modules/mout/src/string/hyphenate.js | 12 + .../mout/src/string/interpolate.js | 18 + .../node_modules/mout/src/string/lowerCase.js | 11 + .../node_modules/mout/src/string/lpad.js | 16 + .../node_modules/mout/src/string/ltrim.js | 33 + .../node_modules/mout/src/string/makePath.js | 13 + .../mout/src/string/normalizeLineBreaks.js | 18 + .../mout/src/string/pascalCase.js | 11 + .../mout/src/string/properCase.js | 11 + .../mout/src/string/removeNonASCII.js | 14 + .../mout/src/string/removeNonWord.js | 11 + .../node_modules/mout/src/string/repeat.js | 13 + .../node_modules/mout/src/string/replace.js | 32 + .../mout/src/string/replaceAccents.js | 36 + .../node_modules/mout/src/string/rpad.js | 14 + .../node_modules/mout/src/string/rtrim.js | 32 + .../mout/src/string/sentenceCase.js | 13 + .../node_modules/mout/src/string/slugify.js | 21 + .../mout/src/string/startsWith.js | 13 + .../mout/src/string/stripHtmlTags.js | 11 + .../node_modules/mout/src/string/trim.js | 12 + .../node_modules/mout/src/string/truncate.js | 20 + .../node_modules/mout/src/string/typecast.js | 29 + .../mout/src/string/unCamelCase.js | 23 + .../mout/src/string/underscore.js | 11 + .../mout/src/string/unescapeHtml.js | 18 + .../mout/src/string/unescapeUnicode.js | 16 + .../mout/src/string/unhyphenate.js | 10 + .../node_modules/mout/src/string/upperCase.js | 10 + .../bin-wrapper/node_modules/mout/src/time.js | 12 + .../node_modules/mout/src/time/convert.js | 41 + .../node_modules/mout/src/time/now.js | 12 + .../node_modules/mout/src/time/parseMs.js | 17 + .../mout/src/time/toTimeString.js | 23 + .../bin-wrapper/node_modules/mout/string.js | 45 + .../node_modules/mout/string/WHITE_SPACES.js | 12 + .../node_modules/mout/string/camelCase.js | 20 + .../node_modules/mout/string/contains.js | 14 + .../node_modules/mout/string/crop.js | 12 + .../node_modules/mout/string/endsWith.js | 13 + .../node_modules/mout/string/escapeHtml.js | 18 + .../node_modules/mout/string/escapeRegExp.js | 15 + .../node_modules/mout/string/escapeUnicode.js | 21 + .../node_modules/mout/string/hyphenate.js | 14 + .../node_modules/mout/string/interpolate.js | 18 + .../node_modules/mout/string/lowerCase.js | 11 + .../node_modules/mout/string/lpad.js | 17 + .../node_modules/mout/string/ltrim.js | 34 + .../node_modules/mout/string/makePath.js | 13 + .../mout/string/normalizeLineBreaks.js | 18 + .../node_modules/mout/string/pascalCase.js | 13 + .../node_modules/mout/string/properCase.js | 13 + .../mout/string/removeNonASCII.js | 14 + .../node_modules/mout/string/removeNonWord.js | 11 + .../node_modules/mout/string/repeat.js | 13 + .../node_modules/mout/string/replace.js | 33 + .../mout/string/replaceAccents.js | 36 + .../node_modules/mout/string/rpad.js | 15 + .../node_modules/mout/string/rtrim.js | 33 + .../node_modules/mout/string/sentenceCase.js | 15 + .../node_modules/mout/string/slugify.js | 24 + .../node_modules/mout/string/startsWith.js | 13 + .../node_modules/mout/string/stripHtmlTags.js | 11 + .../node_modules/mout/string/trim.js | 15 + .../node_modules/mout/string/truncate.js | 21 + .../node_modules/mout/string/typecast.js | 29 + .../node_modules/mout/string/unCamelCase.js | 23 + .../node_modules/mout/string/underscore.js | 13 + .../node_modules/mout/string/unescapeHtml.js | 18 + .../mout/string/unescapeUnicode.js | 16 + .../node_modules/mout/string/unhyphenate.js | 10 + .../node_modules/mout/string/upperCase.js | 10 + .../bin-wrapper/node_modules/mout/time.js | 12 + .../node_modules/mout/time/convert.js | 41 + .../bin-wrapper/node_modules/mout/time/now.js | 12 + .../node_modules/mout/time/parseMs.js | 17 + .../node_modules/mout/time/toTimeString.js | 24 + .../node_modules/progress/.npmignore | 4 + .../node_modules/progress/History.md | 42 + .../node_modules/progress/Makefile | 5 + .../node_modules/progress/Readme.md | 117 + .../node_modules/progress/index.js | 1 + .../progress/lib/node-progress.js | 183 + .../node_modules/progress/package.json | 34 + .../bin-wrapper/node_modules/rimraf/AUTHORS | 6 + .../bin-wrapper/node_modules/rimraf/LICENSE | 23 + .../bin-wrapper/node_modules/rimraf/README.md | 30 + .../bin-wrapper/node_modules/rimraf/bin.js | 33 + .../node_modules/rimraf/package.json | 60 + .../bin-wrapper/node_modules/rimraf/rimraf.js | 178 + .../node_modules/rimraf/test/run.sh | 10 + .../node_modules/rimraf/test/setup.sh | 47 + .../node_modules/rimraf/test/test-async.js | 5 + .../node_modules/rimraf/test/test-sync.js | 3 + .../bin-wrapper/node_modules/which/LICENSE | 23 + .../bin-wrapper/node_modules/which/README.md | 5 + .../bin-wrapper/node_modules/which/bin/which | 14 + .../node_modules/which/package.json | 35 + .../bin-wrapper/node_modules/which/which.js | 104 + .../node_modules/bin-wrapper/package.json | 54 + .../optipng-bin/node_modules/chalk/chalk.js | 62 + .../node_modules/ansi-styles/ansi-styles.js | 29 + .../node_modules/ansi-styles/package.json | 62 + .../chalk/node_modules/ansi-styles/readme.md | 65 + .../chalk/node_modules/has-color/has-color.js | 24 + .../chalk/node_modules/has-color/package.json | 59 + .../chalk/node_modules/has-color/readme.md | 28 + .../node_modules/chalk/package.json | 65 + .../optipng-bin/node_modules/chalk/readme.md | 130 + .../node_modules/optipng-bin/package.json | 71 + .../node_modules/optipng-bin/readme.md | 30 + .../node_modules/optipng-bin/vendor/optipng | Bin 0 -> 171784 bytes .../node_modules/image-min/package.json | 65 + .../node_modules/map-stream/.npmignore | 3 + .../node_modules/map-stream/.travis.yml | 4 + .../node_modules/map-stream/LICENCE | 22 + .../map-stream/examples/pretty.js | 26 + .../node_modules/map-stream/index.js | 145 + .../node_modules/map-stream/package.json | 38 + .../node_modules/map-stream/readme.markdown | 37 + .../map-stream/test/simple-map.asynct.js | 318 + .../node_modules/temp-write/index.js | 44 + .../temp-write/node_modules/mkdirp/.npmignore | 2 + .../node_modules/mkdirp/.travis.yml | 5 + .../temp-write/node_modules/mkdirp/LICENSE | 21 + .../node_modules/mkdirp/examples/pow.js | 6 + .../temp-write/node_modules/mkdirp/index.js | 82 + .../node_modules/mkdirp/package.json | 34 + .../node_modules/mkdirp/readme.markdown | 63 + .../node_modules/mkdirp/test/chmod.js | 38 + .../node_modules/mkdirp/test/clobber.js | 37 + .../node_modules/mkdirp/test/mkdirp.js | 28 + .../node_modules/mkdirp/test/perm.js | 32 + .../node_modules/mkdirp/test/perm_sync.js | 39 + .../node_modules/mkdirp/test/race.js | 41 + .../node_modules/mkdirp/test/rel.js | 32 + .../node_modules/mkdirp/test/return.js | 25 + .../node_modules/mkdirp/test/return_sync.js | 24 + .../node_modules/mkdirp/test/root.js | 18 + .../node_modules/mkdirp/test/sync.js | 32 + .../node_modules/mkdirp/test/umask.js | 28 + .../node_modules/mkdirp/test/umask_sync.js | 32 + .../temp-write/node_modules/uuid/.npmignore | 2 + .../temp-write/node_modules/uuid/.travis.yml | 5 + .../temp-write/node_modules/uuid/LICENSE.md | 2 + .../temp-write/node_modules/uuid/README.md | 204 + .../node_modules/uuid/benchmark/README.md | 53 + .../node_modules/uuid/benchmark/bench.gnu | 174 + .../node_modules/uuid/benchmark/bench.sh | 34 + .../uuid/benchmark/benchmark-native.c | 34 + .../node_modules/uuid/benchmark/benchmark.js | 84 + .../node_modules/uuid/misc/compare.js | 62 + .../temp-write/node_modules/uuid/misc/perf.js | 102 + .../temp-write/node_modules/uuid/package.json | 56 + .../node_modules/uuid/rng-browser.js | 31 + .../temp-write/node_modules/uuid/rng.js | 4 + .../node_modules/uuid/test/mocha.opts | 1 + .../temp-write/node_modules/uuid/test/test.js | 105 + .../temp-write/node_modules/uuid/uuid.js | 187 + .../node_modules/temp-write/package.json | 59 + .../node_modules/temp-write/readme.md | 58 + node_modules/gulp-imagemin/package.json | 58 + node_modules/gulp-imagemin/readme.md | 40 + package.json | 3 +- routers/route.js | 16 +- server.js | 8 +- 3938 files changed, 282391 insertions(+), 13 deletions(-) create mode 100644 assets/fonts/PT Free Font License_eng_1.2.txt create mode 100644 assets/fonts/PT Free Font License_rus_1.2.txt create mode 100644 assets/fonts/PTC55F_W.eot create mode 100644 assets/fonts/PTC55F_W.svg create mode 100644 assets/fonts/PTC55F_W.ttf create mode 100644 assets/fonts/PTC55F_W.woff create mode 100644 assets/fonts/PTC75F_W.eot create mode 100644 assets/fonts/PTC75F_W.svg create mode 100644 assets/fonts/PTC75F_W.ttf create mode 100644 assets/fonts/PTC75F_W.woff create mode 100644 assets/fonts/PTN57F_W.eot create mode 100644 assets/fonts/PTN57F_W.svg create mode 100644 assets/fonts/PTN57F_W.ttf create mode 100644 assets/fonts/PTN57F_W.woff create mode 100644 assets/fonts/PTN77F_W.eot create mode 100644 assets/fonts/PTN77F_W.svg create mode 100644 assets/fonts/PTN77F_W.ttf create mode 100644 assets/fonts/PTN77F_W.woff create mode 100644 assets/fonts/PTS55F_W.eot create mode 100644 assets/fonts/PTS55F_W.svg create mode 100644 assets/fonts/PTS55F_W.ttf create mode 100644 assets/fonts/PTS55F_W.woff create mode 100644 assets/fonts/PTS56F_W.eot create mode 100644 assets/fonts/PTS56F_W.svg create mode 100644 assets/fonts/PTS56F_W.ttf create mode 100644 assets/fonts/PTS56F_W.woff create mode 100644 assets/fonts/PTS75F_W.eot create mode 100644 assets/fonts/PTS75F_W.svg create mode 100644 assets/fonts/PTS75F_W.ttf create mode 100644 assets/fonts/PTS75F_W.woff create mode 100644 assets/fonts/PTS76F_W.eot create mode 100644 assets/fonts/PTS76F_W.svg create mode 100644 assets/fonts/PTS76F_W.ttf create mode 100644 assets/fonts/PTS76F_W.woff create mode 100644 assets/fonts/demo.html create mode 100644 assets/fonts/stylesheet.css create mode 100644 assets/img/icon.vk.png create mode 100644 assets/img/preview/certificate_egryl1.png create mode 100644 assets/img/preview/certificate_egryl2.png create mode 100644 assets/img/preview/certificate_gov.png create mode 100644 assets/img/preview/license_edu.png create mode 100644 assets/img/preview/statue-2013.png create mode 100644 assets/img/preview/vatin.png create mode 100644 config.js create mode 100644 node_modules/gulp-imagemin/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/filesize/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/filesize/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/filesize/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/filesize/lib/filesize.js create mode 100644 node_modules/gulp-imagemin/node_modules/filesize/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/graceful-fs.js create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/polyfills.js create mode 100644 node_modules/gulp-imagemin/node_modules/graceful-fs/test/open.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/gulp-util/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/File.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/PluginError.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/beep.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/buffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/colors.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/env.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/isBuffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/isStream.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/linefeed.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/log.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/noop.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/replaceExtension.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/lib/template.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/index.js create mode 120000 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/has-color.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/readme.md create mode 100755 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/cli.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/lib/dateformat.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/test/basic.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/test/test_dayofweek.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/test/test_weekofyear.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/dateformat/test/test_weekofyear.sh create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash._reinterpolate/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash._reinterpolate/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash._reinterpolate/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash._reinterpolate/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.templatesettings/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.templatesettings/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.templatesettings/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.templatesettings/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/lodash.template/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/example/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/readme.markdown create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/dash.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/default_bool.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/dotted.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/long.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/short.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/minimist/test/whitespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/example.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/test/tests.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/multipipe/test/multipipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/float.patch create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/readable-stream/writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/has-keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/mutable.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/node_modules/xtend/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/test/basic-test.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/test/bench.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/test/sauce.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/through2/through2.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/lib/cloneBuffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/lib/inspectStream.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/lib/isBuffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/lib/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/lib/isStream.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/node_modules/clone-stats/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/node_modules/clone-stats/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/node_modules/clone-stats/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/node_modules/clone-stats/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/node_modules/clone-stats/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/test/File.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/test/cloneBuffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/test/inspectStream.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/test/isBuffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/test/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/vinyl/test/isStream.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/File.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/PluginError.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/beep.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/buffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/colors.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/env.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/isBuffer.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/isStream.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/linefeed.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/log.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/noop.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/replaceExtension.js create mode 100644 node_modules/gulp-imagemin/node_modules/gulp-util/test/template.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/imagemin.js create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/.bin/gifsicle create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/.bin/jpegtran create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/.bin/optipng create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/index.js create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/.bin/rimraf create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/hash-file/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/hash-file/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/hash-file/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/AUTHORS create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/bin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/rimraf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/test/run.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/test/setup.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/test/test-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/node_modules/rimraf/test/test-sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/cache-file/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/bin/gifsicle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/lib/check.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/lib/gifsicle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/bin-wrapper.js create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/.bin/rimraf create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/.bin/which create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/download.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/decompress.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/.idea/scopes/scope_settings.xml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/MIT-LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/adm-zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/entryHeader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/mainHeader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/deflater.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/inflater.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/hidden.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/hidden_readonly.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/readonly.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/somefile.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/asd/New Text Document.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/blank file.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/fast.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/fastest.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/linux_arc.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/maximum.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/normal.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/store.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/ultra.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/constants.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/fattr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/zipEntry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/zipFile.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/examples/extracter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/examples/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/buffer-entry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/entry-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/entry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extended-header-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extended-header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/global-header-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/pack.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/block-stream-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/block-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/dropper-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/dropper.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/block-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/basic.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/nopad-thorough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/nopad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/pause-resume.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/thorough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/two-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/filter-pipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/pipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/symlink-write.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/fstream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/abstract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/dir-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/dir-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/file-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/file-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/get-type.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/link-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/link-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/proxy-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/proxy-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/socket-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/inherits.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/inherits_browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/tar.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/00-setup-fixtures.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/extract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/fixtures.tgz create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/pack-no-proprietary.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/pack.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/zz-cleanup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/misc/compare.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/misc/perf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/rng-browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/rng.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/each-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/dns-request.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/copy.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/debug.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/getSafe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/optional.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/lib/form_data.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/component.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/fixture/file1.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/fixture/file2.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-callback-streams.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams-and-buffers-and-strings.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-empty-string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-is-stream-like.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-max-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-unpaused-streams.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/run.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/example/usage.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/images/hawk.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/images/logo.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/browser.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/client.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/crypto.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/server.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/escaper.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test1.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test2.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test3.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/browser.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/client.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/crypto.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/message.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/readme.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/server.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/uri.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/.dir-locals.el create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/http_signing.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/parser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/signer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/util.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/verify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/README create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/float.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/int.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/psinfo.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/struct.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.fail.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.float.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.int.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.psinfo.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.struct.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.typedef.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/typedef.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.rfloat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.wfloat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.64.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.rint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wbounds.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.64.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.roundtrip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.ruint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.wuint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicw.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.char.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.endian.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.oldwrite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.readSize.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.structw.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.writeStruct.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/stringify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/mime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/types/mime.types create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/types/node.types create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/component.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/compare_v1.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.html create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.editorconfig create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/array.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/collection.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/date.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/function.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/lang.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/math.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/number.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/object.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/random.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/string.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/time.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/bin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/bin/which create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/which.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/chalk.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/has-color.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/readme.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/vendor/gifsicle create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/bin/jpegtran.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/lib/check.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/lib/jpegtran.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/bin-wrapper.js create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/.bin/rimraf create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/.bin/which create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/download.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/decompress.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/.idea/scopes/scope_settings.xml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/MIT-LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/adm-zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/entryHeader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/mainHeader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/deflater.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/inflater.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/hidden.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/hidden_readonly.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/readonly.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/somefile.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/asd/New Text Document.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/blank file.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/fast.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/fastest.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/linux_arc.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/maximum.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/normal.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/store.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/ultra.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/constants.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/fattr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/zipEntry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/zipFile.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/examples/extracter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/examples/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/buffer-entry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/entry-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/entry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extended-header-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extended-header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/global-header-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/pack.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/block-stream-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/block-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/dropper-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/dropper.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/block-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/basic.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/nopad-thorough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/nopad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/pause-resume.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/thorough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/two-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/filter-pipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/pipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/symlink-write.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/fstream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/abstract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/dir-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/dir-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/file-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/file-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/get-type.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/link-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/link-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/proxy-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/proxy-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/socket-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/inherits.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/inherits_browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/tar.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/00-setup-fixtures.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/extract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/fixtures.tgz create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/pack-no-proprietary.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/pack.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/zz-cleanup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/misc/compare.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/misc/perf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/rng-browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/rng.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/each-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/dns-request.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/copy.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/debug.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/getSafe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/optional.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/lib/form_data.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/component.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/fixture/file1.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/fixture/file2.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-callback-streams.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams-and-buffers-and-strings.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-empty-string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-is-stream-like.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-max-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-unpaused-streams.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/run.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/example/usage.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/images/hawk.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/images/logo.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/browser.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/client.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/crypto.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/server.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/escaper.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test1.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test2.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test3.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/browser.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/client.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/crypto.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/message.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/readme.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/server.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/uri.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/.dir-locals.el create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/http_signing.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/parser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/signer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/util.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/verify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/README create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/float.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/int.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/psinfo.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/struct.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.fail.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.float.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.int.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.psinfo.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.struct.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.typedef.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/typedef.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.rfloat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.wfloat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.64.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.rint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wbounds.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.64.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.roundtrip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.ruint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.wuint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicw.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.char.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.endian.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.oldwrite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.readSize.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.structw.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.writeStruct.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/stringify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/mime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/types/mime.types create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/types/node.types create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/component.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/compare_v1.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.html create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/bin/which create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/which.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/chalk.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/has-color.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/test/fixtures/test.jpg create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/test/minified.jpg create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/test/test-build.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/test/test-path.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/vendor/jpegtran create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/examples/pow.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/readme.markdown create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/chmod.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/clobber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/mkdirp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/perm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/perm_sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/race.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/rel.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/return.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/return_sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/root.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/umask.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mkdirp/test/umask_sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/.editorconfig create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/CHANGELOG.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/CONTRIBUTING.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/i18n/de-DE.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/array.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/collection.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/date.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/function.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/lang.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/math.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/number.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/object.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/queryString.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/random.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/string.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/doc/time.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/function/times.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/toNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/i18n/de-DE.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/function/times.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/toNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/src/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/mout/time/toTimeString.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/bin/optipng.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/lib/check.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/lib/optipng.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/bin-wrapper.js create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/.bin/rimraf create mode 120000 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/.bin/which create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/download.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/decompress.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/.idea/scopes/scope_settings.xml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/MIT-LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/adm-zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/entryHeader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/headers/mainHeader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/deflater.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/methods/inflater.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/hidden.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/hidden_readonly.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/readonly.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/New folder/somefile.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/asd/New Text Document.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/attributes_test/blank file.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/fast.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/fastest.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/linux_arc.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/maximum.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/normal.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/store.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/assets/ultra.zip create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/constants.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/fattr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/util/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/zipEntry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/adm-zip/zipFile.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/node_modules/duplexer/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/stream-combiner/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/examples/extracter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/examples/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/buffer-entry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/entry-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/entry.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extended-header-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extended-header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/extract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/global-header-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/pack.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/lib/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/block-stream-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/block-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/dropper-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/bench/dropper.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/block-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/basic.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/nopad-thorough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/nopad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/pause-resume.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/thorough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/block-stream/test/two-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/filter-pipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/pipe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/examples/symlink-write.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/fstream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/abstract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/dir-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/dir-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/file-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/file-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/get-type.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/link-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/link-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/proxy-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/proxy-writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/socket-reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/lib/writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/fstream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/inherits.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/inherits_browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/node_modules/inherits/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/tar.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/00-setup-fixtures.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/extract.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/fixtures.tgz create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/header.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/pack-no-proprietary.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/pack.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tar/test/zz-cleanup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/misc/compare.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/misc/perf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/rng-browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/rng.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/node_modules/uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/node_modules/tempfile/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/each-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/each-async/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/dns-request.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/copy.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/debug.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/getSafe.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/lib/optional.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/aws-sign2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/forever-agent/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/lib/form_data.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/component.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/fixture/file1.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/fixture/file2.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-callback-streams.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams-and-buffers-and-strings.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-empty-string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-is-stream-like.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-max-data-size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/integration/test-unpaused-streams.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/test/run.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/example/usage.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/images/hawk.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/images/logo.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/browser.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/client.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/crypto.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/server.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/lib/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/cryptiles/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/escaper.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test1.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test2.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test3.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/browser.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/client.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/crypto.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/index.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/message.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/readme.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/server.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/uri.js create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/hawk/test/utils.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/.dir-locals.el create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/http_signing.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/parser.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/signer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/util.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/lib/verify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/README create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/float.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/int.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/psinfo.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/struct.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.fail.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.float.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.int.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.psinfo.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.struct.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.typedef.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/typedef.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.rfloat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.wfloat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.64.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.rint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wbounds.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.64.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.roundtrip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.ruint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.wuint.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicw.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.char.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.endian.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.oldwrite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.readSize.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.structw.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.writeStruct.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/http-signature/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/stringify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/json-stringify-safe/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/mime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/types/mime.types create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/mime/types/node.types create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/component.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/compare_v1.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.html create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/History.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Makefile create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/README.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/bin/which create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/which.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/chalk.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/has-color.js create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/readme.md create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/readme.md create mode 100755 node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/vendor/optipng create mode 100644 node_modules/gulp-imagemin/node_modules/image-min/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/LICENCE create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/examples/pretty.js create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/readme.markdown create mode 100644 node_modules/gulp-imagemin/node_modules/map-stream/test/simple-map.asynct.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/LICENSE create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/examples/pow.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/index.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/readme.markdown create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/chmod.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/clobber.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/mkdirp.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/perm.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/perm_sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/race.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/rel.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/return.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/return_sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/root.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/umask.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/mkdirp/test/umask_sync.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/.npmignore create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/.travis.yml create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/LICENSE.md create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/benchmark/README.md create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/benchmark/bench.gnu create mode 100755 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/benchmark/bench.sh create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/benchmark/benchmark-native.c create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/benchmark/benchmark.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/misc/compare.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/misc/perf.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/rng-browser.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/rng.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/test/mocha.opts create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/test/test.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/node_modules/uuid/uuid.js create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/package.json create mode 100644 node_modules/gulp-imagemin/node_modules/temp-write/readme.md create mode 100644 node_modules/gulp-imagemin/package.json create mode 100644 node_modules/gulp-imagemin/readme.md diff --git a/.gitignore b/.gitignore index de0cb06f..b108edd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .DS_Store *.sublime* + +/public \ No newline at end of file diff --git a/assets/fonts/PT Free Font License_eng_1.2.txt b/assets/fonts/PT Free Font License_eng_1.2.txt new file mode 100644 index 00000000..b5023afb --- /dev/null +++ b/assets/fonts/PT Free Font License_eng_1.2.txt @@ -0,0 +1,44 @@ +Copyright (c) 2009, ParaType Ltd. All Rights Reserved. + +LICENSING AGREEMENT +for the fonts with Original Name: PT Sans, PT Serif +Version 1.2 - December 23, 2010 + +GRANT OF LICENSE +ParaType Ltd grants you the right to use, copy, modify the fonts and distribute +modified and unmodified copies of the fonts by any means, including placing +on Web servers for free downloading, embedding in documents and Web pages, +bundling with commercial and non commercial products, if it does not conflict +with the conditions listed below: + +- You may bundle the font with commercial software, but you may not sell the +fonts by themselves. They are free. + +- You may distribute the fonts in modified or unmodified version only together +with this Licensing Agreement and with above copyright notice. You have no +right to modify the text of Licensing Agreement. It can be placed in a separate +text file or inserted into the font file, but it must be easily viewed by users. + +- You may not distribute modified version of the font under the Original name +or à combination of Original name with any other words without explicit written +permission from ParaType. + +TERMINATION & TERRITORY +This license has no limits on time and territory, but it becomes null and void +if any of the above conditions are not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, +OR OTHER RIGHT. IN NO EVENT SHALL PARATYPE BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, +INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. + +ParaType Ltd +http://www.paratype.ru + diff --git a/assets/fonts/PT Free Font License_rus_1.2.txt b/assets/fonts/PT Free Font License_rus_1.2.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc7b8d38c56d424db3285dccbffcc13bed1a00ef GIT binary patch literal 5036 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
7S6Iha!3~G7$ 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

S{U&(3z*8V?p4U9@wvp4^l3dA`|vMsaC{V^&H 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%0A~=YH4Fw)L>F|*#?j$ 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTC55F_W.svg b/assets/fonts/PTC55F_W.svg new file mode 100644 index 00000000..ca796a0f --- /dev/null +++ b/assets/fonts/PTC55F_W.svg @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTC55F_W.ttf b/assets/fonts/PTC55F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..66802733b677a244695f666a881fe83fefca5430 GIT binary patch literal 375040 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 iKu)OwZ4`LJzsyo_j77*fD)Ywl)DqTH zw=C7Fe@|4NVSPr<3j50hW0z^km?4rUvR|ZK&SFR= z(#-N3izextOi&i?K;3;x!;(cXHzQ8I2!Ya8QyoKw1!}ocP z^X70A(A4S7AgBCxFPJd+496NQ)c(f)>@V+}mgNa0To2urVWWcU|x92j#&UJ^T7De^AlW(%2#5M*>-3~R#T@j|S5 zo7LPSbZqC)(%W-O^6Q!jKrQ^>ukPMxFSm*t`hEH!dRFrP|N6r zR6{=-;M=1RE!^Qz_el73*d%CT(jHWS-&zIrnkv7h@^4fhNtOyb*Z3Y3VISh14kq~b zA$L=FrwRf43;=*@1@oE|>CGVyN?4G(8~lk`k*zFxD!&YQR=j3ONe$lu&Eb4O?XvH-k?b ziOaWX`tQ;7KkPrnL?#ghx8@!Xog?O#w~f2uL3-Y)l|0KB;8#R&LFAc5uIS@nW}gv$ zd1lUVH(5LNGbq}O8eVIgUTc|ND;~EY`Owxkch^|`R`)NuKDDN!vZ`x^z3kNmix=^< z7WItpvA$sc0$b(*^Q;sXGww%3r)#QXBg6j7{!zc*Ac8^NW;Q_7RI1uty11oz zetdFH)s)$FbMGy(f6>^~*i@2AHzXI#;J#)m z+9q0P7w=<2ZR!&moD4}^48j}3xD}k&$Yk)EV%2z!YYW0G7kNjAYmoCgocA<9HbHn3 z*HucHJ?@2f{F=`legyOF+pIc&9zar=WjLgQLf#Q8p;vdww{jrJeVCj$<`tue1Qi#< zJ?E#LT8Yz$*hac$Fze%>BxD zdXa1B+-x!jZv6L&8a>Z-m=o!hhnTz+)7Sq+ z(9*Pi+8_-J4(#GhkH3>EC&v6%p-~uwc#_F`FsP5iBCsg9y1w8LarF^#b;b;A1J2{T zsZkmjRsV;x!Y?m@$RnXayjLIZ)kj3RkBD;ED}m#58j|kwzE}9iOZ*lK?_0FLrM*v6 z5{=vh$;`cijbyG5)$drpvg@rahq~<_73}_0{vIxL_3GF^*fX!5wMQj6j=jvTZ2d}K zroLSa9davcM!=VEb?JRM0Uz4a0o^vNljoHb#z#akeSArzU*x

p*}nPKv}tF3SU% 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 WFl|HC?*n`ahD|v*uue;d@_zvLrAf5_ literal 0 HcmV?d00001 diff --git a/assets/fonts/PTC55F_W.woff b/assets/fonts/PTC55F_W.woff new file mode 100644 index 0000000000000000000000000000000000000000..1c7d62e0160e1e6bc279f54a13cd496ff8839339 GIT binary patch literal 191308 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̞ zR-FVwT4DwJI{6R>$3Az92F7Z}Bnmm3@<+a!6K*q3`2aQGr2h#3oQ{Xco8b|{w52Ay zF`OwgR`JO^Cs)>DIfXQub~OZueIy?5maX?gT3r!VW3H-*vmZ3Y-7k$^KWs;i0``B{ zk9zcis%2GS8+BJZP-o}NMXNsHc%H4%``hn@Gy9QGdDaTQZdS6%3vWV6yO?yYY2v{} zf3+~L*r5dKTWErlEHC0m^jjHzocDVBF!RC*d&w^@D%A?Co#(DrlS5Jui#EhyGsOH7 zb@-_I$wMS$_%01t4ZmN&&lj+kf5En5D2lw;%J>nam^6f@QNH*Rd{__^?yF0XY@-ni zX01#;RGYJ^$WXUI6ttF?)<{uPLz`4eIlOhd9sbNmV2NW`0m6*E4F*yNeaR_vOg5A^^p2>%;a1xnFYa|55n&XQE2rr~Zhh-SJKXF8Mq0!uZ&hW&&E zQYeCi3C_^sJZpb<_gkLdx&=a|A@W2EjLt*0ew`WDK_&^ zeN!Rjr13ByeuLoB$mW7*HQM9GwXzTrE}Hx^Mk^mWKgtKg8<%hR_^vZNx6 zj!x@GJsdT^^0XkP5)TTrG>`fTeZNuRVXrRk&uK96FBC8EVchbG*gC2k_jTe-HSpTw z7iN%jxpbzAj>5e|V{YkO?U_GgBfBl_e2yJd#c1PCepfT2-LK$K7>WwTvpht|Y0~)v zExu#H6CH#`AHz0*76#&s*(!J<(8N2>I1T=nfqZQb4ep9y3bkiXok4pslaA>tEvo&* zez;%HaZn)iP4b%oe<7IoHusSAxu55kf-ac@h#?y2;H_)E$k|SB&i9N1A*%J^{N*is z;_^|Bo-Ger^>kGA!rRn)Osak1y<&*DqC|WQ`Am4GTKpSMpFG3yIpn?$>1v;Os-E^Y zHCHLTiT7Nijg5np3OdjYCNq)B8JcR2zgG9R^PKy4XX)zwG+rEbwe&%6Xh>}m%*s#7 zIB#h6{zs2Be$99$MbB90WG=tCtlmcKT&gk6wt?Rj3dClz%K4p228uK+iq_CiR=NmE zaF#@xaZQ=|ntn7tx|eXrd-`sIqAkPPzJjl%GsF^Xs;F=jzoeGPUFK)9yQM~8l`&-l zV?1!FreqvglVBPp{6*n}DG6>Y)+e2h<3Zo#EQl4qUMv01=xDiHqxI&+frVnW!S`}T z^v>InU{fS6*T=RZXinD_R}h(*OW-jf&f|xM)QPY)GR`okh)I&WV!#b;hQyZJ=oW)w z*tFSos?n$r*c8<8N~0eh>DJ>Hr&A3Sx;PI-mcq1{1&cToyb=P;vPfi>pV9xz1zn>z zpGAC%gzlZW$hVqHH*wCKBZ()|5F?^|S5?7dJlYN3c_D{6`^(Iekmhmb?8X!>kbU7} zGopP$H=VZE$N7*wHckVe&n}~Fm(Mb_KBi9WBq1tu0QxNQ znBWs*I!&Pk;j=saOHgqiiIwpIiRp|-%xBdyXB?K`gF~XFW@pUtcRrTL)q%I~Wn_=z z>|fpNWQeSRS>g$GNj}1`91|Qyf?EDo$jF4}0=>xUQ!iU zp=HEFUb$SNU)p47&Rd&Q$vr@~#qs^4asJm?qV#Crv!wxG%O8F}YkZ>No1bf}& z#;=6*kSG5r$~FaJyR-rnsMIpga8i_@DYnAfa5DKC?}*zN_hYGi_>*txc(hP8MWSES zFR{O>B4zUV9gc+w&s#UcLL0YJe3{(n7y)noh@l>@m2ZR1uNr9=t4wY*!-oZCW)GU< zA;Uue6iA{u?s12`Sdt^{7X7J6(=y0TY#og@A9pPn{7+wr^u0W;M7%dr zU)p7G=yjvI=Xui(b8Rl{zeEGyN^}qYYHEIqK2pOQ>#IIH`gg=Q$M<6)d)vr4Pm(!J zzApzrS1w7LT&5QZlR?f-mvI;D0zrmMi37>VxC??0bi)dYm@wCjhv72dM?g8E+8*CY zEc$uW;T_#{Imu8UZ)5JEa|{x{tm67U7gO@OEZ!!9iE~rJ>QOXO?3-zqY_cjDS3fd_ zI+*U%(w322GX|BtkN#zhr#5LZpqn%Ifs_phf8;U(?HSG=J;#Z5%jo-4=-!2k{0dz* zlh0hJq6in;cR=G>%myFtV%Q>cSGyzx$fuKeE45Z)Go69e|6{0eNNr+v5Dz|^UeZyG zVXX0-m&{dYf>_WyM6u5`{IF5xHHjt$VOC&4Q+@qwM*U8P%p4wSzRm)!64qQ7-i%sW zW9j(s!x09dn&2GqRiUX=i*0gU^*N_)VE_u%+^6_P#P44-;o)z?r|}Lj0#~=%RIp9j z^)jbC>j(r9x)A_9n4CArO|FZlRZ4kaeH5Z9MWg##b}}W?C*^Vi<~lJAT6Rz-pK`A# z(^<}5|Bcr#Pd^k?#RV=EP-|fJ8cFgZt&k*UK~g$neBI|(w6DbIjMHk}HWD0`4Y*s> z92dSx_|6m^!H$^MIMeBhbYR}7n$&1)v!HYYp#3@q3#2RIGg#3fnlsk{be}eyYGV`4 z$>zOHBMDo!MDLeZmyS3z*7ze<%58sef3NJ$CXD;j`lmID%qfk1G4>&;JhRrvGdauj z;BsPHNp}7zCG-$gkXUQ<)jUej9;syrat}h7@s1NhfT)l zXo`jNR4#rS-dIQqu_X1=7qwFQ6`gF6)?0%@DQ+H%pT+VkA`8PB9M~bMyI|unciPme zu^V?BaInitNB27hNKrX(Di|KW6xpBsBV~BO3KW={2~9en8>K%NSV;6IxEzbwVCjA0 z@8l-)z{=dKR)g&n*|GK{9MXpDZ}z#l<-4rP&%rDx0YuqrxKf_UeoYzq6m$QL%XY+ z48QI+=>IrQI_-Tm175sH!E=1Qy8_b!;<8EdQwv{lz^6z!zYwnrK#Px4MJ3P>#?mVu zMgf{i{o)H%%~d*EyU|JuXZzu1kVne&jY*d($INwMk#wdkHi@hwAx#pM;8@H+-^%G; zy3a5_N!<%frZU-f*2%{{7{@V!&LX`y7IfGxI|eTt0TV*}Xi9>L>1u9b_z*xG3kq%X z$af!^cAlO$>mB{ab5u;r>oM4smwISUTJ}Nvm(QQtgMX%_Ezk;2E8ARG=49*k)Z1&c@m^_Ugy4qPbwq`H*O*ZMnt-piY>s95l=f z(soCtUVG0Ya<~#jXgK7^6BG^7G1!)Vq5K~J-asM05S=yo*c_*!!IY(hsIsA=Pb-SP z>MKJpUF9^0zVWy?Ic(t zD0}mzL#CIvX2&-h^Sme1Mwrg;O_;V<2vTEFY7=0}b(3TEU}YrJEC&4y1xXHZ$@E0h z_#Q=yY$7q9NqyPL@X~l7(~az30xv&^;$)m=t4vSD#&lgbY-#fcrl*8gQKqFS(+sKV zky#ZbBsJ5dBQFc~`p$IVBOeH~E7MFqk4tITf5o({UVw`!({XIw5Eav|7|3)1iG$_T zm9X=iOb=Pplob{UL}5|Orkt0m&x@HdMn&EvRB8jeBVS}N0YZ=4;prA$v#CVp@brki5x#aarN zNQ8P}8dvHYD7Q?9DKBbMkNWm6FzDV8>ScfK*DblsxiURziqaIj1SOT@g*HGY8A2r) zD?KSEnA#rh)M=@)=0x z{)uVY-b)EI@~mp208?&o8`v=%5L6DPv)G4Klj$-5Ei=<#KG;g(Z&EOwtxRX}7$awF zWA1e$q4hyVI?apK^m!KV%Oz{HWevS`QB*3*obr?VBBdnSm^M$t5@?pN7S33LO?ah} z+no9?NC4?Kra6j^Z=a6J^tPQ;L`77WTQ5}S0WQWv0h#804VWI=yh}<*930O*q5-s( zz<=fqY!Qo8Q^uictL0b^MX?l+5lpu!B+pwhN1Jv4e;6^C_Ap+g5fE~iO2$OinaInL zKokj?E~bv`wk1pn=g;kVnL618f&S}!f)Qc57;)T0(mjvpD}%1^1PuBnl;?F<(+BpoP`x-uX4`;~7EEJVP=-J*I3TEzZ-iNRv8*gi38wRKA!&RZl?}*2g=q$y0#zZI zj#~R*+NSezOf-F7$~)7ow5%oBv?ggw#;cI&N{t{Zcp7U!aY1X5QPSSDWBJfq^gGkJ z=FWN8mRmoc5Ma^2GTl^LFIDFuE+$O7vE?r@Si391Sg%ZnbeT*jVMXVe4KJ59z$M~C;@{o80V5PQF!huxcicOZDl$2 z&}rUQB)Th??s}X$*#+UWi@9mwnyYeb#wMbd=G*{iC#A!(m!fQ#7fn&Ra+d~)=XxeV@sAKlrXjJW zN2;iYL}Mpv6eo2Yjzd%EDAKlodp=FomT;aC&o5F6=9w6mR;H`kas1ux{MnIdU_8xa zI_C=_Uzw)uy`kc1i@a{55DuY58G<|y4oI2K5mZo+6sD@k^pT{=3kf4)3$B*0Oy_n& zIUjYFd)-)RA7o_9@pNaJ-y+j(+p*;x$u7%UMft+Cwp?n-jJIZ2rnylsU&qzzioLD6 zN}1-1kVkoBZIS=&59hmNrVI2G0Y3?!Qg!*rb1xAFxQcdmDMs#m&$qUTA&&64mLIM_K z#v*mq);Cwcr_jhb5JH+_0ay)eX*!nhV(qNIrIDd%`wT;e`*Z({=@(42qYpZ2iqcoR zGz8N=n8xi4R8o*;%291+-6b0P)j>gjr}2d3N=J*8X(}ZT%eWG)P%tmDUX&m^OVVUz z`tqaS1wj}g_Ah*{SGchkm-i;gYx-UTjk0LEID|v!kg_2*!2v<#h$ux8!1k&VwOt5W zPPHsnIX}5C zQcLj&Rq-?|fMyA6;fy8NgjY|?t@}9Si}WF+*LtuBIoj1sKCc&LdfOtc;wo1-!xdHjxx?o-<&S(R8{8+GJ?#3OrwUR zQ6@QHFXp)%a`^YMwgvZnrX&1Ug)FkF%N|Tu75Ca;^dtRoUxR3ze;QuS%YZ3MS=^S# zt|hhg+|F%`3=Bl`()8*3R zHi%7dKmd-#Aect3Rz)?LHfNF+Wng+nHWB-A!8es~sUlgDyoiS+Es_L9T7X(QKbd2L)p?(CUWH6IY6L6O@JW&zuZ1%vU24)%VfoPex^LEB>HyQ4JC}wV z`r2<-1X%QKiuSikFEYR`Yhk)Bmjz50b6M4JM4<`i6LJ8|8c3Eyg9M@`({*(m>5qq| zF9)1|9$(MLu_n{de^;Km4xyr{mu~4|c%VmQ#&J} zW(I$nhnn$WIahTT_s5OtZ2HM}8o1~D>z2J=s*{d3l>#SWew! zLv^Z#q3y6pJuMDQx0hSD)XlYqj3ARWWFh+^Eb%8qq2*X1@mLU$5@C8dBb>m8fahvN zqKC^SMbgx#iT)TOmji0h%lLLVO_*{j)2_}iB22eA_Q&2b@1T~Ttuf%@oX?doeHyvN z_n3U6Tbf8zvIIE?f?rpim$B}6>ZOJk>reW2FA{|LHcwn)MJIPv+q0hw-; z>6gEZyD&5{V*eTb2TWVv*7v4N|3JkvU{Sy{mSsR0f-SWV&fOo%f~SRk+vJ zw#u~Bk_CN|H$Q7>2p1fU57;iFj&-X?5;2Uv2Jce3uI0O9n~o2m=<&0 zpoXlFcpR&`L2!kT$4kRJ58n}{tAJu<%z$vsNWnoM7gW7ETyPS>Ux>~QA)tAkAE%U@Qe z>tDD0^9H*m%ok;PYK3Vph%)e8@dclXsZlM8Q$^KxiH?&5U2#&kfP7P)cRxWT& z5jQx(8o62nagC{>8%eW#hJHj1X#-m+(?OM<)1tCdnpJ5Eml>KgEw0yFu1sHBev3?x z?Y-y}_<#IvtVM|IcokO9-VGTnl)1qmLQe)~AmcA7RH>vKI#U5`bAmqbFjR$egYSCzv(r%o>-%IN$wfo6ACfJar%% zS@UiFxLs!M>{0(ieH{n5nXWwzr@=Cp=Io#?FpYa$ueJC=+C@`N?bch}(u4`*2};hI z8T7S2VY~!sK8&2GcFlI+oBS zeKi%gs;b!JInAO*39&E77bI6YinI+(L%ki`Y1AZbsZ3i7C+*uTv)txxdtv(RZ!?*; za04sTiJvt07KCK_w+?6^{g{%7rjFadBaH18ZY)Z{v{{+%$n*=o-14QG@`QXzn3f&q zpvul^StWCplj#n_@YuK8OD?+{-A%kN-GCwurs=KQc4hi@XIj6HP|MGfK8bzZ41!#n z@ak##I4UvhkwMuNY3Hc+_qUblEet1ZGIm>URp${d#zV$~KM3L|%XaN$ZjQ*`lO%fo zJod1hrpu@1(o9o7V39^z+_|6om$%{EcCRdNK;}|H@@9syk?CX8*5?bDu1>H)1Xl=o zzIM#>gy*>*;CuN@q-(E7`s29+(K!EQ`Fy!9n6m5zjLl7$?z{7N9utOaY6*bOQV!p4 zjWB&#$kSu;SVUR2zRuJ0JfLV8nk&E>I%G31Z9698bz{0X{w<1x>E_q1`0?5_6Jfrs zOn18?5~lMAej)B56jP%{6t|_3n>^=P_CLf)y`ElAW22*Wi3&60t{%{fpd!(VFm1s! zpYi5=1JZND-R}MG^Uj#aBKBYTth(kKKJC46lc6qtN5wNW^)M&VfK@_ijWP%hXy{rn zU1tW7vTJSEN2ZQmS=xbVEJ{<6>DolRR8VJ^tg6X$on^vwmQ^n=uZ5O`FWtuUG)t>z zlHH-olJ-*ZD%|VqrFg`|c^Z~LGhf{d;u63?N*_9QK8{Kv{t{ngP?`zRO~g_3Ztgzb zd&|CU`;+OZ*FN^0>O8{5nw9Ayh!N>_-F0b>MF)wakMF0UonS!4++3S^9tJEDxAWS| zFb}WqBba_;9+Y-1nXa2zj54o|7`$8?B-7`nCDRZR`8Q(Xz`c`Z>EZ4>zP!=3H!wYb z@~K{$rF&Vvzuu0rvj=9U<~EJ+u6=)*E>qGY6XM(e=n`^qUS1jrOjj~p@sRdz-LxE# z2%Q(KG=93B7Z@`X{n~a@GToGEq}r#yqa>5(D8Fvy&o{&(`k)t0QI>93MnyoT!E?=* z)*5b3$;M2xs;b=N!L5a9F4o)m4at>`B5ea_d>0YH1Wfb%jp-}^(3TtB{or|E`s2Tr z9e;ZkvHuqQis`?QX{6M18ex@Yl-7t%Q~v@t7ITBcw0+gL5I2gN_>H9TrJDMJd?^W% zJJb1#dwIXwiNtrm3-IVj_s-F zA#wEi<4oJ>z;t_Smt`2SNP_KkT!y!g>C*M@9b^QV#|o0SONVcR=~LS`*K2#M>r2!2 z83IBaU0!C3VQv;=&9BEFZ!ciFQ>NROd1^pnf1R#V%3ONx zXb`t!$i;bmZ6&rtW-QXuZyk#$%Lb-1RMsv`@PG)#>s$6Zr*i7rRk|ByoH{qm0FN=Mr&jhYVRpJgXt!ZkRSA&?FTabJ}A>j@!)TgFlqRfG%nTTx4drBV_r0QZUzkJdHwqKUg|c- zTfZ^AEJwEHNN?TuE7NZ^uR^8=*${#I;b}E}68pLtge7P-k?zKxeHoTPnU14zWx9 zj^q31bnW_&9x`TqcdEG8cNC*6>T}n(w_AHcxzKilGJSpRndjj&D}N@X((6x6{w}my_&P!w=8hE5av|rQtT;=9D3OftCR1Ny_23w^m~N%ZWUZlcV&0 z-Lf2!2whJIim;B?>#?6Cf z&y5`+R9DlMs5n(rR~=V*t|uySkhJmR`f(-G9Bped&0ReN6JeTKQKoY+T_k);Gk|Hc z+kO9^)5`Si6-=jpV%iuo{r7Pgmad(SX$*&O#LdSJth}vE7ZD=W&?mzXM{WE;()cP& zgBV(;VR~n}cp=lL;w#f{?;oY?a*Xc-za>l`SElK$dsJD{-fMEe{p(SUpy_#9jnY^$ zU%u!t)FhQYkbN51kHc|HWB#gj9HA(Rwe!KN_8;GoG@@^hvihvgmT~L7>OAhIfrr3! zQHBNbr(4x_9(w!PCRzKtj2sXOC4P?3llHF-UQatblsiA+p&>x>h5RLQS&%b@Vo?+6$ z^wPZ{Fd$hPUY3_7MSa+DZUFRTxH#|codl-WGkJPU9*ZchU~0?!2Buk+zTHkRW+?ij zAC`1^Ri=@aT>t0aVEV70eRm|x@9CeIF6}V1d=axHwVfz#Rn=W0+?sj6q>Z1q&)d@J zDBm4#3%*|qcN+H@&+qCx(T}GW{Xmm!a)=lGdKc^f1i2S|81wX>F}+`Ed(KnU*5xI3CAM_?7ALG-mwu zW1NW`*J|g3SM5K4Oey=u^pFi-m>yK;wkOj=7W+j}@wW<#-SB$uuhrOPS^V?&8}HMP z75ry^I!*KI@pPo!z09ZS^T+ZsjNehRE7Oo%_WHOLd+o>W<+VdH{nGU#f@^H!m-mr* zp74C0kQ9%6&NmKkS5}Cp>DZn7^Z0T3{qyaDDa-!W(!U=UgwAPvU0#=LLdA0&c!9UG zF#Yk-OKg8Tlc&ezv52y46O#LvGtwt`{P)`#%7r<64&yO9zR7R$1JLUBzgDLEU$^>i z-~0Z=xcZSwcs-B1Ixa&$OiDYBT{1x^rbd)w?6$Kud0x)4Ati;-_m}T4$6iOfCX2fQ z>P6h^>;Sl^6$%!ld6<@E%11Zj?E7H)=l?zn(*sJG5VcQ7riXizO@`{fP{o7k`IOnY zdpn&`*7wli2UHHGyE5tl){u--9C!9Rw=2>b>-vHk08Dp$^M4q^u6!$+F4JeHaG4Rv zXg)r_SGvvdIc`j!PG`36Om967i_ZJA;Z?}=BpV`_I8Ou9YdxnMoLGWh6X{_d*-z7X zQl@PT^Vpc4*ttpY+fQYBdz3|{v2<%6Rp%BL;~_9zR{X8PVmH2B!1M%(?Qeg%&9L)f z0@LsP`8+RJBw{g~HHMI{A0zWT zd}r>@6WsmCXDtY1SLPV!=>(=P{h!Oq^xMbEboiC&h)n_+?^0Pv<$e{AFt!qcpSH`7*(I;wHiG zzs(u@#`Ktv`Dxzzo#|!bp*SeZnoO6w>HRv~>ZwP~{rg{EmJ#2b>hth1oX^XGMS_0rI!-?sGm2@rHjsR{z%CK*+uJbpZ|?(==~pmaARr|1+b8l`FnyWk;W95h zE?czaG=AI$5O$GdYbYN02J@qL|BvQ-G#`%8MWtHdkDtmh3q<+5sd_BoDUav!&+rH#ZHQcEk z^GR%xf|2R0Ld8+l)x7wAwA=muf3G|KmNMMHC*LXRgFMW~dy`Fu`hVtmI)mwpFnz(z zmjTQ29d0b)rkyZ7rqgU~pZtK-Q`TTz-^Q*5(|v4tDbttlW!vZ1vg*q+n!DJRW&8cd z&-%|yE7F(#LT^1yN1gYNmRAv`we_;+$1R{QOp{>7b#`T%uMNm=c;QSqqJ(`&II8_G zzb_g4_IP&6r~Eu?Kh2ZsJi*0y$OdIqn>4AwG#Gn9(E_Ib^0(JzJR>O77chOfEJrL7 zB%j9j<8}G@`{`|*e?!R*rpH?gnZYFd6-xh?aUR}3hFjOY4daZ|*e3SP=6uM5J%aGQSI{{HjxhACIn|9Sk5z;GOw`ThKU&QVy6&=M~2u`>N* zkk}5Hu}F`}&+9h)g5>_~hM)*z`2KdCPOzo-AJcr!&!5V4*EO&I7fj3Z?q9d&zkWk3 zVqE>9DeP?q(>0l{;iLO>flwp28O0f`s=7<`b`yn4+W6bsZ*S*8M^TE{zJhx3uRei_ zI%ZtLbXJBL-&?4gYCa0n{~s{QGRXjV+Kjykd>hwwFFbb!n8A)Av5_D_kOWC^2SpM9 zNl_xTuMufmrbt<|WLvu&OH`~quGK_~DLGGSVoH|eMEZS=?bu1SdJ6`f? zw29MamwigxG;Nxsc2mZw)0%qce+K|XN6GsvpEGwB+_`h_xo5lQTna&SshYM%PtM%4$+fvraCs3TFkYaD_l4c!j_;rVm=#-t;Th ztW_M<&r&&q@{g_3Ud=hVph!3)IEBju&k$TCc$?rF!TSW)2`qav&p59--*!r4dd$g2 z(_v@KDek3reexHk(FJZHMuk3t0fLPLy9pj7z-yGT%z$&FbGK94s}E9Dnj@Qe)bTaP z^A2e=-R)T6;MJ}d9Kue5!vv=YOnY^!gN^C`>7Z|}cd)&B37u-DtZuhDi;BB7yQ-P9 znpM?o*>u9T)F$rLqc-}^^R_2#&)K9=Jz%4s|Hei?m#IXrxLvRbTL|_M949dC)ns0S zl0|KntbWi!U)p6^ZV~sUM=U$&pg&EQ^tUYZ{)d4kfy#gm6H32fdDkM2rN=E7EY#0m zv(Ov=20w_>P1Nbi>fd$I!}|!OUvvG)MGp_Twz{a|B(B#3{cjij;sDT-E;g1v;X3D{ z%6z!>IIeykr5_N|oT}#LEmpId8q6saQ@E4YXt8T z$a~Z8`>*@OF(L#voreix1bqYp1RDu<6Ff*@*{g*nwIWrk%Hn19lQi0wg?g&Dp6acq zdh4m)daAdc2&Z09_R<4kD#Qr-2nGl?66_{;kUyYBC$-wFRvXjmRjo0rHS)rONqx@( z`o{QVdUyQ6xVV?UC{8bm(~IKtqBy-MPA`hni{hxKX;NFDYHeAqErvqZq!w4Td0A~9 zKYd_QA6f7KNM$6ZKR7~tI5-l=>0nIX^S}a>_Qdp^d-x+eWBO_1+Uc0~fT~SQ>irYc znhTTKgsOcdt6fmF|1YcS6BqD|9@Czl)O1z*=A@S4_nw>7o}bj7Q?-{TdB?v@?S7fs z{W7)tWoq}!)b5w5<7ub{sIZY>H^GAhM26p`U#r^dS*qZ9HaxjN5eC?>u#sRlfwXsl zB)m@rws(P9I75ZY1R_qZQsHgmL@7M~AbvAOzqy9rjK0X~gy+~WwflKi7o!GTr3-Hp zTqAg&z_j;8;qU19GCu9^V%iTUUlgYD=Tos4S&{HEtK+{fiqT8^>B1m^NWc3fJz0e3 zeo4<+awpF-3$d*_`j(n3L9QH~e4aJXc>_H;mksA?oJ(hMIycVZbhZF@`Pl+G8>J`b z^0U#{2r;-N!+-@W)svg-A#N&lPC3OWU7Ba z-YD;uss1xEkyMya`kMT{ERKRVS!5eJ!vfxvsW*3-mz#-!t}ugh0KG*heZl;cnHazY zGclXj%s(=VWBTXKcmp_*{+|k6wkRcvIF@--`I_>)LTvJ%mEX|0W>Yn5HvKQw|FqK0 z^VTP=&smAl{l-eaP^ztih8?`6x%k0#KhwWfj_IK^XfzH{Vuu}uR zi>H1-2=zL$`a0sWU@p!qs&QpC1?)ywZ4$nT_)Tz9E1uM2z# zA*)4Its|>-#Izb!>&t3=F|9+@Zp~`9# zcIiB-)?!+EQv2GZrm5ODCh>#kXlBLmo4?3ve-YDOnABdM)c!)%-k8+JRqa|<`#z?g z_M@!!qnQ5J*M5Xr{yL`pNY(x^t6fvIsVvO{?ftCwKEL?utoCaDW%kRysD){RABo^wMsYVD0>+%jn7?06nz=zow@?l{;>v<3_r^ z7We7=4m#dJ=l5jW=6I@#s+ba00!knmNJf*aBi_-Tht!tGUDs-(dB?Q zQXN&={T=OeJKovR9!SBT+zeSq%aN>YwcMRQql<_*8o%E14-4fwed;ccMG+P!nx z?B8_U^hf!xj|AjMRH0_~v54Y}M5zsaqn)TT*YtQNJyjj07vw5UB%|$0q_bT-_3?hu z@}2LrzxrxB;n!Z9_E}7_%`V#=7PCp}3_BD@m7<7}D4Siyve|^AEX!__*~~=IVUg($ zvzZjpW-^N+6Pv7xB$^e`WOkZlyIC?zCX+}t$|99bQLoo)amX(E&nt>1lO&oXtJN%4 z-}ur}qi(15lXX`!$s{r+TVzI9mW-zqT%yNh(P}(a7q(j*7K?+K=)Pn&+bm|riY?6K zvYSnenO)R8v4tARJc`-nl4Q{?GrRcG$BV^#-+i}zatyW^=$Hx?Lv8Y_Wn6QNzF7#^S7gj$WQ7dO7_!4h*Z}d-|X%67S~o()B?np zrl0z=Kb!u`P<3^vtfq$AcQ^Zx^>aH#5ssjJ^a5QV)j_{PD8)=unxInMnP*H_O>di| zQEI7MFp*d_kytg6ST&JYHBn1bX44dD7-6zOVg!8x)E%-%MnBnbX;K#?vIS5t*)foO zXt@$e65PEZ()~FC@uk;ZdyU!`6uQMS@$*8N5N21 z3bJlhNgMB0>Ea=jzJ`)erV?+|uS$3xC@j&f%P6&>In)qwQa?&27D++f>ZF^8fV#miIqq$;wn5+>kJV}O;=7L%Q^F!t3;;a@{ zH6QavVN);`QWb9j9c>I@2V*RsTLw56y}r)Y8)gmk7R2@NEL~XlA9f zUfL;1V?^#LMV!*(9s%Pq6eq=PfBZz8%)L03^%_F3VaOD{WZ^dJF2O>TTBuSBRcfJ` zq_2m8`4rvOJbXL|lU7DJFsW|}PzC;MX03m-|9-y&Bk+DQ;*JqKLhx0BG{JXa1dh^g zQbBPFFD%RI=gN%f7|8;YR!7=j9oGa~vmm(`jV2O<>k{nMN8NOx z6lfgC2DHsb$REO&RS+@*EdlZaMXE4efP94LW48!ZWSm!#ab6`%5ST_Y2dYn2pRXn* zcY8A<1Kl0-i^C0p zNKb2Tvs3iA);fIRZ(UWf1+8l~+Sd<@s`FNxD*cl?($?Q{+cwvRKa=C_{^~Nnjjb}r zYwPEDNwTcG{vT4i_=eyi=G#GxcM&_v2g@eV9BHg1bk@cPIOQdFZljSmP3dPF=@L7~S|l{$fkiQGVOHO|kgn__ls>lbk%eNO z&6{a*nDaBGpHBMoCowvSS#u`~>0}{J%w%Xx>aWmn5fS4oG^xcvg!$ zlQ|m9l!^^vwB%;`=3|OL;B(Kxi=KC-OE~xk5nCNJo+uPDIJ@|WW zuzzg(c>NsWR1XjhMTv&u!ZP7DN#OKTO!Sj}n=E3QAe)LICyR;ST7+V5=f-ri1ttAW z7_+C$7tQco6@h-h9*;~!sLql^gkLJ5NAJL79uFCHR%Eq`nBE*o;P&^L@yfY`UY~0a`+TZymDz{J z7OSZ>mOL+a66rbfL^+2}=H!X8fleCeL|^5cgF5HVfrQY9QR|O@%&Xv!(0y}P;ZWji zC^Res6yiVALe!`R{>z8as7r*>ndaA;>02VrCAhwhK2J}SG~?+xYHAUif&{xIPvZJG zSlvaSN1>mL6Ux-fUGj37=yrrOLSpWvf?a4J=q6Y}Fha0{K*mi!DQR^C34)~rLj+q1 zAoB!M=s3cHT8gNxuLU23576N)=9|rCmM}9(g*P;Y;z785yBTy5egPnw|gwo@k z7dq+dh8A!}J%NUwB$PfOos;N#7j)QRpcO{jz0}Scf=+_P1ZxR4|Nn2hpW0bRkRVt} zFhsD`X#0pa-|T%DkqI<=8_)#Weh_Uxh_)ZW$XM_JhwuTXIxpe_wt^+BqpwKP98Iq#PGrXF_#~x=vY)6tSyetZ*J|Y zQh~(k<&sc^(;o?!ySvI4MZB@O%bPkkENx(!ig}4x(cD$#vA#&KqowAr zN_|}|RgHDkFV`>Y>-0vJHI&3^1O7;}zhQl}=l*s_O=FX{wx~7M+EUjsdg9DcGpj~ zedf@SuH@k(`#YN2cYXTP9c}mR-q|GZ_DR=kg#YC2yPdaBjp-X<3B-WJMX(XSPBSa5e&?h1JU7{k@ch?rVtEp|B%h1dv9nUoF z+A-L1MMbM0?(1&16H>J zr~&*gq-rdyn{AwbB+<=FfNIgrX0H93x#LdaiXr2QI{n6rk1)mXaV9QlkJ1!M?{+`v z7Dv-zcg!u0rLVc)r!)Nns7!5c8au1W%?%dbCeg&3Q{=Ydnp-8+866bhixI(sX1Eg8 z)GD%5_4mLzcKKkjrkBaIqr3R)tg{o zOLq7o(J)hD%*~>GOo_xh0x@>B+~X@tgxXieJC?MU#>-1RW!)96eaYnF_K^6)=D9sB z6|p(4K397~xTUYRCEU_PC$To_>n344yDoxHuH}7gBdZ7BkWwsDFn&nel_zyo1}&(d z*{~gajGjv|(vit3REe3PPfh&O6^^a+oYj~Xqy$oveUW&i>FUr``kx*7^FLpE^(wu) z^ZHKVEnz2F|6kzmmdOG{C%NfuX-$4brjEZt7c!gVJ@Qdv@0u`~zAC&;GB*<=U2Z_& zn*0C}^hSc+1P>CNA-GH+kESmR&j{jJ-jjeaPG5DuP2-xI#|0mOG>Or(Ptv1pbCNk9 z0g-KVK8wnAbL+|?&4HRGUwK`Wl{LnKRk6lscSDKX>g*0#%0aXJ!iQ`nTV3E8WNx{0 z=JObO=^FU{fSLE56iW%x6g-N)s(xmh{*bL65_o@12`>tJX)KoK_)Z#YM&c-jpdUT+ zip!Px%W5D_?b@N_j}pkknKeo63LZMFu&D zuNek92($xeiwW8rkOFi7XaXGPoB|mML-Zg_z!CcnJ9UT+*4PC&L6*W@u@YiZXU!0RIo7$>l^O z|3&oS5FR!>bXLJcmkke{FsVz7vpzYC*}EGL!`{3L^`}pCthMZeK=(j{~Vc{b_rhvMH8WYQZHodH5 z(TZhVk)GbhHRTNr+xtehizOYqc5ZKLGTGPG1Qy-0esq0(Y<^{6QC0LVqi;9RT$V{s zs%2l{eH*N%zTFhWtPB#@3vz`)w^j!YfvI1Hd+$Ljb!$jY^G&?M>Ht5*`xPTRr>fQabKg z;t}`iCc2~l#6!RRu7}Oy`1w%@(@8i-e!A5izM-8dADhx`zMNc7x#$6h%WVjI7Y-hN zPfyZI;Pi`3YSmd1Mn{Bd;WWV|g0B;No8T=186$QF6?PHiA2N*T9L3{^f*gQ1v_T!72wdhPt?(&1ZfxzM@tui5FR>g$?TBq|!0Z%WR&wW2h*WQn(? zy<%a1UAEb}Hu{etNnzz3%bL5^_JrKdTOBI#b&nv3{o-qaO(kQNzlrOVH6h_Mq03`Hu`ZEil3vHclTCO!63-htiBK4 zYd=teQ2JT*Rh9ID`_*IWBPxCV57fe#&tf?uorsu;OyLe)M#??$d8jW;O<73@P&4FW z6YeS8o4p>r{98ilU5+CTqOT^$Tn8~XP^$g_X!9jP>6aYer<x23Lc+ZSpCx#h;4y-45Xg}Hr>Ss>;Ohk6CU}d$Jeu#V z9guk3#TzIFl^35ZJ`cy!KF@K_gonmk_P}ibWTt75-WE6zprP7Ua-an6H~n^qXFn#` zexN9!G^(IyPI%6NktFfk13(s3up@8?73?fIjH!1Kv+g2w8O@cPLrN(k_05+oIICzL z?JVtXUbX42p*z?e(;vqYL-VQ{SKQszwyYw!-fCO1Y{?Q6+c^BJSdkcL?_M{z!eJj2 zunsn#_-HxFs0v{Y`??{eY&3!&KtQztoq=o$bDamJJtz$VUBlGaZG#Gg(iwzyT}A0K zkSf@65ehVt^`>)8LY=+A^ah z$(Y;wIfB9)kn(XF)Q8F;I_TRA%F8f9<{olB3L|z0mW}R*(y|2Tehf=(F-@d><;RI< zrIqpk9rW|)c{7N$4ro8nIiMua$q=7ETuD2`ec))rA+*7&l+Lsvy~A?ILWd#eR=oQJ z-hCeEAl|(K?{2u^-Ez4f?>>ij%d=jaj)syU(Rguf&Pka!!ke;Ru_C_8Ef&{x*M&Q3eLrlzrLVTS|IXe` zkN?pc>uO7K;I4LO(CY{#RwoxOZVfrzworFVxxcR6kiqkbfLt{9EyA;WG!zroexNdj zIf6pk2V^lRV4wku;ZGFIT;U?Kd4#xMx{>uT5eqBdpgLb7_&&iT6umM1F{r_(fer(G zgy*fSl%Ch0Fzkfi@oih^#A0}`QzmJO>}0OgDdrm);8tqZNC!(QRV0zvXPB#P!Sr9U z?DVVRyg9bv(8qUSeQO!b4F}DQ2)wW2z5IuPD*DDS7D%oF_2m$$Z$MWe3d2A@1~OL# zK*8o%=9>9^^L4X?xJ)-!p3G!rn90g8la*m66Vgm3q*+kN01Z@exgXO7Gne_rd>ZH{ zKqobZkGD!qMQKU})YKf3X9?pX&6;i#pCF40j5F`U;V0#EQV!{pu$AKn2{jd`X?7T^ zTtT35pdCO$BF`Tw2T!v<4B(3bqmJ%0v~JyY(8Xp6w#M51kwq| zIY_SK&IypejAFR-_jjg z{!o9SxVpWnti9GBY)Y!Ft)6gWAk-XIOQM}@ySu8fv#M@ETUkl-+(`FOy&7pwR5vY; zSA^y)s_R=XR}Mr1jg=mEc~f~=QzSH4wXm+FHs~rUt1d2UtSS?@Jc-ks@o{+)V=HD> zyRJfFa2t9zte$6p&H!=a`WkNZ0dYa2LX>c!G6;l4GJVhQ5h}Cg$t*^Ycd!`3gioeF zC`_#2;T90h)&jk30gViC8UaZR0c`_X$%Qp|^dTTCc=TaIAnZdu3eY}OrU1!^Al$0# zhd9`3*$?s?My*^B1%cKBEk~`^Lai3mdMLzZEnAWGBqa?Wx3NN%OmyZ6=hDB{lsQH$8HJff-5MNOw7T5OFFI>U?Id_+doCQs&kdYMYOP41Vu@2;QB)th;<MAijV>w^-4GupNb{k2+ z>?U}S;0%FjEOSkIU%Dt*?HD51O0b{c1i?Apwt}w^y;e4P6OZAI-8eeiduY!0 z;3wUP?3*)wIiXot&8EfqB-bC|y+~$?8`5_GCY~+IU^qd=HZwSaaPkmY=PyJhPPOph@^EcAfndkDXe^zd(s) z+)7x9DWt3qD4ZY+zp}`^%n}-_#B^2R->1GapwRSk? z=V=yJ<@)P(|5h%Gn`Z9Xvi21acuf`i4x5FbSM95iwM!&Tw^(7+DEVRV=tV?J}VHc9`p z>FEs(jQVW)xAkm8-OqWSEu%iGy*|aBC%zpL8iZ@SO23Qv_A6Mi3%UHp@@Y!2Olf{K zrN~oyjUTQEttOV)Q**TDY>hOkRT$xN6-3t+MAsEW*A>EL0yt428V4#0c5x9+hN3*D zj?zgKGoxw}emzqWcY^up6SN{VWg|{qq#`;hC~)t~&fwu7egBGJ;rr83PZD<2bKsvD z_&C=E(HDkuW>o)P;ra+&Pu9&h-ROzpeAVPrZkRV$Oo942O`-V0`rAU4jdw1Yv$DOk zqPerVVrzZ|J>R~(tGT(os=2G8Xn8OcY?&8{E$VEZ)7y0XMxHc!z0TAsz9*~}M#bAW zb=1bvXKF9k(rCse(??@xW7NLIwJ~(&Vq_I@dj`}Wqfe*)u2oZB%ak569tp+Z#@IlX zbYcTB)vm0zLDfE$)mMLtdpj4asoS~s*BH|(V|rgB53}lv>1X?>(iM|>Y=yzL1s;3d znbkUDDKq1tCT==Zs;N?b(8?$E?!FZmht(_kP{|54HAuJm)YR~d%zP9=@-Sxh_aMI} zVE8`=nu)@WeKPPI?AQaLlQ3HzLg3CJpx2=jtss=y5jhkYkI<}~i%VTmgw+8x0PQ4{ zuCMQ^ryna=7nWP#YX&+8v<_%^0Uifh2{aezA*fN^K!<=D4W*E4fv-dAzJa#B4(sa> z&>O}1b#>nK38?OMKtn)J06hoy*5S~p(8Z9H`-oFO+atNpNq0w9MCe=bIn>-OXnHi7 zj8geYd`r9@l>$8pB;#|Ip#2jq`41Zc>Y9V5x1-fSBlw)gSznjlx9s>bdQ;u91RYq1 zB>VHKU|t7=QV?*lynQ$;s3l^k4#ssq7R-%b@k)}C*x2Q;)YL3XMtZh>;ntChdl&Y6 z`qHM#fvP~;+V<`Gu~oNz;l&+yKlQ+}w%hKTU*1$^QA}!M``oHvYsA~KW?OfCd!Vei zro3@kXGK+uueGH?W&b+;)4ty7zLDg>p<5g0e|lng-52hOyIrfiu6g%Ab?=_cA1~|P zF)=#-Gb3?lxHDSP7A^5NbXE5r+|(OTS9;XeWw+PYB+FZSDlnfcgdPxIBhKz*%MBj@ z;!e5ue>c45S5d+$o_-mpeL#co_;Hy&iq#lJnKHsncjqEa=`kR_Xm$-Hha`jY1tk|Z zni7fQF_E7+u-uq_!}P9+8?9KAC?#kh=q50Y;R$m#Q)+H7cazDN%O~O9akJnjs3S-a zkbP_6b?R3BB3*?mZa0>Df9x(8w#N? zK%>7Lf84wKIFQdV!!J+SF4|z$IM0!FGg4cnL|6wSh_Q&m-kARR%DY)*C#%{%{qlRa zl!;}}Jtw~QaSyY9Z`Y?us*YU$jkr{Nm1IS$(9gE=QLy`H6s}+`C=0a5j-JJo>VpUH z3QB^VyZJ~blX*#3Ac1{qszOHaL8@MX(=L^yLxqY^w=*F5zJ-OJD5Z}t&G&>#Cn|a( zR*HC9Ef&+S!oYeTXaJ~!5cK=>rj|V|;+SrZwQ%b}O+~27O4U@anCD~Z{niu6$~=!% z0$8Y-{Z8}^&GiEaVZNWV@eCX@b>%dmC(6&kL$ep!`2^5*#ITG29q8s^Yx}IntrN%t zvVhY(3PbXcbDX+5BbWKh>dNTOe$;#X#(MSr(D}LF=R9g1LWSG%wPGPf@y!^5(IP{1 zu?i_a{hL^lCcY8;0O95nV?~ifZDnt3dHb!~I*U8IyZsIK^)=nGvTgcdrM#-jRo&MX zigYclzBB1*FDh-R_Lenwg(7p^VlddzQf)DrN*a3`5(6D2Ofs9rlwxt$Eu1zXir-by zT3H_}Rn|zES#cq{kH-SWwlY`f&`5OJ&5!lLvUBor2YX30Zq+jzN)6x@4|ooYn2&`TAe1LD~V6e!~a zcZiL%3k@lJ7GI#gZJ8g+&*DP!F}94;YNWzZUWzr zO7(4oYHt)GBrNJ~lrZA*s;%9N4sA&EZaO%3;o6XY&gPce7uDA-x+5`Xd1*z7r)gyT z&bv>ot9RLl0-*&vRxjSRBvR}$`~)M{KNSCjc!-x6=RX*J0C2TyHLsc~leurIRxyHS^;px*9fJk?i_Cr>4T@V$RTc&% zvtK!(oP&L^4@9{S^R}K#c%V|C5(w^wdPB#C;c`+r4?TQ8esCCb++ST+jc_|Wy=~S{ zJcfI=FnK+V%*B+VnYlaSjdv#l8%~ZiH?04{=A!Q24*L&Wm6buo9I7mrS8bVBTGF#g zd`Xf-7QgdzpIZ9)t@A}u62<#yE`I#4jQ)$QxhLLo=cjVM*%9hwv-lF(><=5gYlq(w z-O7FRSHYw?yFLme+U%HvWUmn)w#YpC#zcJDxGdi^%aey*@pTwAB}r4dN#GCD&$##Z zD$qs~8%rq?XYUs21~Ur(M%a_nFSF?MyKMRNTJfc!cZU9HsL*zS+HMv8*jUZ8qV2Gl zt^yt9C2;C1Kt~B_)_k+cjIaaQ1;N}0q#~8xp{B}-j0IMnlavpFYkC=1JiIY9ySCumon=Dtbw-Fop-3@)3!BL| zsd=;Mect0<5sYddO}FC&69kVFJWGHn$iq7&DtHJY1RVs62yVm8y)eQ861Rn`_`+JM zwqOCIyR9oAIlDns7l2LyJp@hW0#Fy!nOZn^_W^AK+7DxJf0)mtZe+@iTQ8uJl^D-1 z{Qgm(aiDXkp~@+cejizYpz|mK3+91@GW-N^jj{U%hI%deDtnU!}V_a?Sb+IJ3h5+`{GKcBUN0W z%VT^_oipYXG|!ENY^Aq>t{5pxP#85i3-&c?OuH*UKeq8$wv?UjlEStLTt-E*Ouw^W z8PDQb1$|F8i^fzm6kJ3drI-X4CUSv91V++`5SbQr6jc#K#LDR}Z{E!AA?Tj|p7_%A zJFMyB#r!*#5L&^%LpS1T%(=`r!w0*YWGb9oWP;{BKf4h*+LsGyGs-ka;la&e z%VPOf1tEWckJ1PQuu^3%rrrF-LQ`bFQpz#q4PWIs~*7=n+DiGn?@` zYn+|fQDg}Q>qDoZ|Be}+?k#+o6q4<8&M%Vos#&x8CCt%rAS;kyuv;2LqIShNapkk6 zMs+*ClJVMW?43w?-vVj#A&?9UVF;!Bfj$rPMf=Sq_e|V`IUhIi43T9@VN>v|=R9Wg zPCHX_t#K6sU`No75wvwHKIbXWqbI^AO48FIDFGJww>g_PxBmCu|BfY@|Bu-G>HkU7 z<rwE%Hn4UUffz|EEKd=ME_=He{e zR6Gsh3qWtekGWGkEQ*GjjqFg7)NGN|Y!Pa<4Uy%#+37QcE$UFRnV{0B^e99Wm*ANB z0+3yy=Im4s=iQqaRyC{NkC^b42)C&~=?;{(p!5jP=hYcM=x{APbjfdVT-1-q+Wyy#lMWkpX06OsmI*3w;r9NplHGQYze>IrZJ6HX( zR*d}pz-IQHJ$FsN$&wrIo9-p5xwLu>yN9z`j4SE5C&bqTH`93IoMvRmVsJKspT3O} z!twPh*lGgH)#jPyYUA)Bbwb9k)F}yclo{PKp**e-BYOq2^k|OP@@z}uoj`3sSDcLR z?87Y(2UTlx@WdClaj?0mqKodQ-DEA5x*OcxZmRtw$k%7kqnnBfL?F|+%de_ zGT#FI1kib)1bFfZpz}aocsma$Ju`w-9tpqZvLxND4Xa?=>QbLiygocP8Qx8#rAn^!lVIMcOx zb<0CJyOmHMw_Bsa3%u7YUU)Y^K3DK98cJD|u7W*tOZ75JS90d6hjhPEB=M#q%1xuf zc}_E=om2AUqTwXNVx_rUF*Dq^!>hSf-jDcTxYBeJh-sZ|n+*$1=^=S*;m!d(I%3;_ zkVcyg<|vzGjuu5c)iRl*Vtc_JZM>(gW5-ak{kC1*a%owqy!n-~4wpGl8jx$2c1Nlc zi^ONGN^#rmi~2^of{cl5`nTe4(KP)ZA`|VEJ+1Yf6?Rfgdan18&H9GmBRjvFT{3dS z{m`5JmdO z+3@v5suk@0V%SdX4^AdY3U&sQJMLOvUs_U8(Q?P=J&C}a;K#{7ILDq<%)U~eJS6){ zd}f)w{0C>8G2gb(eDe#nY?HxPK|NZ|H)NPp`YVQAg-sgxiq85XtjH9tC?ad#UsOj2 zs1ZXdUrEli*AbCb;rT05dAY|!)Grw8g_A1VX4=A~(^Px^Ntd?_G9@&1%k#k!aR>9V) zSzan7;355o_yTuS`3$yDH{$E)>l}mNbF`Iag}sZ z$x|aLc_PGNthJ9wJ0t{oNf)r>PE_TZBnGm;E$kDV!f}ELg2xG-C3uzK9loQYJ_S9@ zL^>B4fF8OOA?P4jL~t8{8Jl{giliw$V5>Ctwa{uN^}!nYph#B#uLyT0+v#^@1Wg2U z304u@K_FxEy(3gOO>l|e>jd8>c#Gg~36wE#!sra)3`4an1=<00gr|dBE)qRto^(9t z_@09lv8AP;rqXi=XA6L{tON4F$Gk6;3qVbu2%W?FExb0FuT?)^{d%E0vh#f0=Q*LMj zVxQ9Ep$mBP5guKI*FRPLLiHQfyxyHcwQ!i=6v0I#G#D2nbTL8~BXluB7i&9PO>w@m zZ>)97K5vEThU^1SHcKULz4O+@1NSf5QyDJZ+`D)&Kd)K5Y2K}4p{mj?^CG=1rO!9C zMZ#^X=iR>DtFCqWdg`KWwbkt_x?`&op;Fg6XPL9Ck?Z})M;IV`P7(He!bZO=!trP1 zA{eXi#-2WW4RR0C^$L5`@QmH-P)Jp4!8bHZ8!xPf$ZE<=5{$v*g<%_sSBV3^*!&Bz zSKR#ZW8&svZj1az{4}-6BmAS`r-Y693fZq|Hw(ijc@+xsMxZM>?CJ-YMoc?Qhv>Ni;c@#uz0-0SbUkd{Zaqj(vyLKTgyW>V8{0UD?mKH2 zk9ME@ADc(ktzAQ=T5`dieHHsY!~Sl1#n!>$y99RqW3tx{!0*hwhK-MPtIPR?Drjt0 zWh(Qc^-b%0Rt*4#6|tvjqCTX}K^gS&)JgW2I- zCZ5fz;MNWzpF;%W1Q!Tsh78WQN4WRwcY2p)({@%yqnZ9E_G=u>%*VvBbPemI16*pR zyjvvmEU~V4ki?2s2-FIJS|Ly?1iWe;sL}#t#V1%ue;ldhW-wNXS$$9}OK+b3Kkd`+ z-S@Ab-p#Tf_lQRBx#jwY(l~q>Vx_Sz4DEO~cT@lk05LCjN2vUOoeE9aOsT2C)NPW+ zaB9wG{N_4y0{b*7hI<2!41nGLn{g@w!KG$DmJcKOc5X;48 z*tN$+u3o~o3$dMXDCJ5s7L}fWka|@y*5_?J=bIFgFOx!&mQ;@_^6S2W&*~8*xbCL` zff5LdF$2USNxQ)+ULcfyQ+iJ#b>tGRUZA;=e$(`xiAMWX^E=qT@)#6<IXKm(vqQ!GmPzX>LS%q*sulDH;@yC&g^~JK_&S>df0o`=p8F6Kml; z{t#BJ3?{x59*oDuXA95l)$hm6cDkAVocKj}HWVb6>5^DT-SqculQw$M7i?dK1$P8?UeMNvOHbQg#9@VP1b05d zFRajw?KZ{}JdN6&E}np)@?92+3=hxP&AgQ^I&p!>O(NQv*>5^wItR9#!E&C%#dk0h zOpY0!uf<`?`Fw34U#SC|1$0QB2zCjGu#$g1aK0?~mHYnfqkT_?%fEgf+suZ4+SBvX z>1U=VrsmC?!Wb$vhIeBN1m^pXNhzd@;^=hEzQlkZ;2QqQr{=U$1w~` z#UX@HW-u~a#C<4#9z*g)Ad{Vkj@!7K7%2++IM50pzJLpt1dj|l`+F8F^6Q<{HQ-z6 zjOjI#kwK^w=Ix_cYF-+G9=$U58M|aW_(&L!M zLlRfrcYx>apt(prnVT9#5oVs=_e_!Kd2;7Rn^`e?dirnr7qaN|y6InXo*Sk9YvKKO zypYwdU(V%i?M2wVk+uH&Q``shYf3zS-NDehUYozLUGFFmqOj zBe*Kbe8($9i}Q%r+m$VdoPSk$2d>YhaA!TGynst9mG!vv8(dP90Lpck<8io3?^lk& z<@H6y*q6wXO}}b+$3l<5+m~Ky8G>zu5dZZ3mSZS?336V}C0E0VItF*@*v(`^-XWf{ zVo4Mn9joAci7LsGJgrEn@>NCIp*hn-qC9;p#=idXZ-?1W>W7D?OKT0CEXbl_uHh*eIR`1-FLo3*%|5*goTz>IZSPX}Kgi;Vo`-o1Y*zBKsX z(}Tvk*yQ#5*^7L?g;o50VvL6%Bjgqd=~OL?&2mQ-5+E_{P61tFg<$0LkhGN!BW8sq z*^8^E?_0gCR%)xE?`pUn6n?|MYaqXuM9u~J45<4kXR?#Jzzlz0>#Sz>9oC5#YraZ>LCZRK--KM`P^ zk1|h5q+5`Brxe!K3sD1ng;S4VFka!&;e3aG-dyUPjy#*Q)xC80?ZL{;>&4fm|K-?{ zrJqN;gzGW(-Rlofe>d@VnPOP{FwMOBM(>{;so?lVL>rK->;3#1)X^*U2>&i-1(Wc_ z+?eI^nlWlwfz#%!_^*z;h(@Q=1!|4;TSF(Awl7P7Az z5;;iRXaE*vIEYmbp!b2E0oqMBGVWkF7z>h=84TvcvqAoCn8`vgAJD+ny_{tqHIYdY z<#*b#7hna33s2+ZWGf;?7UFUuFxtu*iKe;h3(5eTHb`8E?ef=S*s0HI<|j zpPHIC6ZWv39YjZQhHp0cND}CE(7}?XWhlpCY|Cap!bute-B?~*iHPX&@(alEw3nCR zU7SYQS1?S-jq!uM|NoLp+F%q2>9$X;?W|GSkbF0M7XCqSh*7e7GSJXQ# zie*u$&0g8uU0XZ9B^aGQ5DhnlycSV(l(klQT3cI+S*4}8thQ|aitd)Gj@p3Ce$fXwC#UQv>m+h0^(7qH28)tX`^QEZOa*B6zB-9%f%WW#nt z*CP=&ZKQ0ukz0nHlg_v=!($qAv%OHYL?Vwi=(d}z$TWj)y9uXRl-dw6|JX;x|J0&x5@kkyc%W50(zyky)3C7(eTGvy?Z|Qu2}Ku3hy@+C!Yz zT>lmOiC8X_i#;=Oo14J0HJ|}BBLANVO)HjtIv7FM)RFA%&z@Gim62tFck!Y5~?LMcH5LB106Smp(K`du=Fp=`P*jor4$oEXdO zaUXS`b<+)3HuJdaS=XyBX*82@;ZKH0*fc;ET!NpVjvzs>l)yYjEzF+`5o{&cPjG_Z z9KjO=8G_dcenjw7f)5Ftd$DKgSo$ZfDHnaO$>nv`xTL-5M_gZ}bJ)Md#vVbXGeial zoUzysBR!3nPokThxUdr%+%AMxS!^Y+47S^HKH~I4u1B#qEXYn@$5;D}imbCDM|mwf zP|G&dBHR3^1#7eUMBe={yZ5<{yCz&xjxteQA!KyM<(7}cVn2!8*|~7EC-}#Q;%mYs zWqq}OT3o*%*4XE(DJ`vEzIFcbKk>L$xzyL|mL;nLDwiijlVp0m#QpykBQFUNc4uL> zhk>{Ozsc~y=cF^7@ihOhCiziK=NWLR7f866HWSOEwla( zwcZ%Gqr0GBDv19SGTY&Zh1u*b*(O!Tj0 zq&V8wQr8{!23vgP)gJlc#SJ5((=}&NL$TGq$}ZbVo2u4KFJM>m^J9)!DwdHp(#(c= z!@}sLSSbh|YZz1-)B8}`6oxg97zGXJERb9pHbOd~VHQ(AMzZM9#zKH0->@OyOPo7d zZ=`fPx@-~~l|3!LD8Gq~%7~sFY)UUK=Lws{2P>)H%1K+EA#3Q9X_@&+x6B+gKV*Is z+@6O>9pc-Adx@);1nL7_0lIFzVK~Dse)5Z|b9&AEb|xy8d$ta50{suu05_1_2@1b8_7}sx_OHN-IRn%Nl+Eol zCXlc>gSpz554fViRI|p$SntnF0WXc3*LkCW`Q%=7undU{$>Nk=r zg6I4gfc=3J7=R>|tBUfvKVqQ_jgvS{5&K{E(45*}dt-&NVS~M5?fkZ-t$tSB)Ys@O zu52lvPLY~f)9j0nESi4v`gOiR=0A$BiFMG&n9SNEg5cruakuF~m^4?oaXBK;vySVn z!Zke0T8wAIf}nD%6MLhcaZCI`V|+r~?`!zHT!_U!1K-+%aFE9&8VSj;12|uP4`={E zetf^Hdw@C+1MA{W+6LGK7NAFGqFVKfP0VFMC$rkU!F{irDts7o^~*r_0!?Cf*dr)4qV%Tw=F#Ll{lWP=LA91#P;FXcuP~%Y zX4Bv&G%!y=C@?(@YVvjvHxJtjLFwtgZMilmWl(?0q$%Wm#mpl2c)hkK; zUQe)-;4r}{f{O$)pEJfY%jtZWU^~GR>Az;J^*vEfZ}0RsXXHdV*(d*GSSQx}t_f#=vWRkP^W!goU$^Gr1S2%r=%C8HzefyVKweV z@j1jU1&X6Qb`zJdZylBW=-hLL_u+UEL__iM;t6bQms>q0!2*dBz`E%H&q>dDkA(iM zo87&JKu9c^cZ<5Azt|cYUC_ETR>G>+uI-yM{RHnkk_3yV-zwM?bE&^PLbdR#nK;>j z-1fRe_+YZJ-1c)k#)}9PyUd*h(vS|g$+ic}W1Dbm6O`t*eB`W=2?(c7wq|zxmGgJP zXN~=TDrYn!zV#2^^#?mY=@zV$ZG~iA7ud!%9}wCw&-dkC4P!l)|G<*}LH^mTcyf1&5sq;_BO7$g~h%25qyx@LBCxbwz8zvKLbZ*@lTA$3(3 zWn=$Rmz?vQ`DqkfWQ5O*LSgTv%mD=nmQul6wiTjNfqdNN;QhZv$?dF!C7;om49);9 zC4rs8aGom^f?s_+_|=!+Tyc1Qv9)X{v3F1Hl6&TPtIEsW8-Cuq*d0hT z-m+n_=v)+SdhqnZU90LP#VY?mJl8w_S8DOj9k*}I+XP)?6O;(5P?5`P@@z~Ng)pB?OYs=Lj7h}_|kS|@$8@&=gk~A1)k~V8%JLj48;Ozt9Eye zcXBggme^oBiz;35xeC}?U|y@M&ciZhOQK==G2&{`CbLX!O^`10GR?ad_ATDlD(s%w zhP?pWur;7c2;236^}BgebJY!7m<9Ns{lOpVjK=gB_AJ;#j=akc25>HyeK)w)k8=s_NaucBmBuoUtJtEJ|B<-GM4D>}HWS=WaE!prtrjm? zj^$4N7q@EgSB3RWWZO~W(yOBzqT=4n>FA~C*P~S1)6o~BZ$`=7tWi@<1ro~~vfytn z(|lcNS&!({<@RChK;8{?rO9sm$>>piEzQA9T{sb58YW4zKYSv5jtY7l95TusJNj}O z<;+0~_7Kd)cj*cIK8nDUW%hNbwH9?HuwV22?qlvpkRFek^(8-vwqF$64x4MX=P(kpvWm(e33-M%F$ra zpt~Z%{VPN_$Hg;3K=?CGH*VtA2>)f+*9$rU(zz_EvAH>J1hQISR!(!CCb-IG|jV15@7zCAJHn+6-HtVK584Jy@>rsquGGZASo^Q^-z z-*Ar*5ti~Ly}$+T9x1uVcl*seVM1gGJ-gg9?3r2q;~tJ6&?%rt;YJxJ=!~&vo`Wh*wfyM1?-Sk6s1C{Gqy8Q9sg)Cv% z7Q*#ki}a9S5i-1gO^B^N!xvLc)N4#JaU+iJI&G|b^R;XvA`xykOCgnFmbF-rI4rAY z^09CFml)^Anp7|bCm`ca0385&&%#se;t+aqtS2|Y{q(o&=UCcYg$r?nef+KXbA)}Y zqH;1|goAbbDpK{p=3m$U_TFpv-p86h{ui;th%fxLw4A;#z`ktQjz#o+&%o|JlUp$! z)dztbMjkv5IMr>&39(#8N{vY=GIrQb$wXYQ%SKe5g-7LCv%1%K*vkXPkiL$hnnf0T zvCK`#KvsVPgV=^atSl`Epjp;aAti1Wow<2%i7A_Y*7T~0sAHe$I6NSaAe*|F&vF`u z0N=ys4R`?#ImY1yQ1KUI($9Kdh23-@V|BGSn#)*yE9*?ia_{^rJ5dabw_B>z=h z{S2;tt`MkVvGczd`dT42%?k7+&}+~WCs2ClhTy>fO>MBg-xoOCO%npqj(8^jCsJPk z;(z*}45$}q66i7{>lc7N3-lKDm%qcY3j_N!?yqpI5N1JTLY%)p(<1QQ)BHnwEhNeI-op~Lo)u|*w@J?v~|?I?pRnenVMwv#0%(b~yOOw9Y< zU)9|J>3DaR(tF)qsQT;rkN3a-z3+o-<_Nys#kWa(yW*Z3cUU@RJL(CbSC66-~%?GC*Sye|;)(KvY-)U8D~f^$p+{`~aY`?n_=cJI8_zO#MbZ>Jlc*)3O6 z)mXm#_`fbW{m{A9tIu(t)uB|N&yxOC#FZn1>37k1z6AAsAKirJy?qzg!zscUaMK?_ z5cvxHjNu!{lzV-g8N3B1_zI}^wV54^V%e*KXmT!bCGU!e86O#&^m0b9ATd_#u>ADc z{d2qw74t_)>hH_ZPk$fkUDWZHP{;jjX3(hXEIN3O<2i0&dt6NyU;-G$V^ftL?`wdg zjNuLdH`npsqm{u=e(aCksZ3uoUF~oU+ty$Co!**P6;hnWW-G zUjUM>AJDU`kZr|SM|K>r3!xe6EKrXC^STaeA{=$7p2jQxqLv^#A@JH|g>fbk-KYkk z5ZkD(gyM*|_b^t85JuG?nTrvLWqB=M7~SWwvUBJ@EoInY8exeaV1mU#iXv`NwTf^? zYX&$U0vDq+q_Fb7kV04@`RT7pZ%Xe=RF=$CUp!!AVwazO&HRS>JwQ5H$_1)_|81GP=HACg< zic^VkDltwa#;L?Ol^CZI<5XgtN{rKvTO`^wMTPf}EGO9{A!^4e9V9tH@-oS5`pN60 za;cN#A(BT)wvjwT@&d_ABwr@s9h>MX7Lcqad5q*~lIKWXBzcA8>-tru=_-0jR*-Ba z*-3JUNU88ZEnlVVJlJ%H3Dxj0}k-fDPytPcnwC4p{TmF+SJjT=_GlG+GoFn-P$k|8fU3PeD&3Ly>a#u$? z-gZw{t4yE#+efXtwXw0atNV$bzD!L`roa2iwm$jk2fXBk;vLt@F{Mm?oyMKN(b2H? z6#T3snzMCu(x$y~$4u^uV-m|uPDjj?NqD@Z{8H*TkZoZLL91b12y`9Ik20w1$KI zN%@ntA(zMH@GK8`UEV5RnEiHZW_zXoU9n3h$t9f>SqPG37Hnfh7;ph_Y^DcbrUziA z2VkZL00KNRyl&E$TO@Z#W;vOQ1MbcAcFj_TWQb%0drv&bVa2Tt!><)_Xw0DJPq=zI z{Du--;_q(r40sOe7{u?(oBrfa6q9m5s+Q`sY*QD$d;Af+`v!*Nb3ry;QzS79a)gFQI=ELHd_e~zDJJ>6t{R)A87@rM!XwwXAY&#}elg^nUeAzkAS3JtZ^jAEX{ume%Iw1U; z@ZkqA1R>(2PB-szE6cXP{{(*&Vr|R97~Vizms@4s3Y;-!Ray-bwyZLMT8LFXVF7Ms z3=H?nn7Nl8`|I|r)yraI>={G$w zW^7(Q-v8|9Z66y|92IM9Hs#(kimy_Bs!ELyccv@?n_N-?$_G+bW~?vO29B0l7_<%} z!oH1nj5If)@B4t*N7g@*EXRykm^bjWxH&)BoKf#K%M;U5v$HwYY}iNk2pE#paZCqh z@hr!njzGn18kHTa6+m4yQQ$cr(zdb%vj-N8EuY(9d&-9D zRLoF*MzT@=ZlnI)M*X`Dh(%V;P=(oyI#$P!v1&ZQCD(Ix%M@l4QPUxzFw zEf-(~T6rPEcEa{DvaL4=$U84~*>65(K8FL$_=QZBmvDdy2Vm*{B^%(ubgJW`bJFMU z@FpTMbq63)ivtD?h_CgjMDvQus`$W$t|d>!BK{47LrVjWuOBm)c|GZ2*?Z5U)V9YQ zwz3KNcR~vq+E#ajefAAD|4@5sux6dRF%VhkjhXC^J}UbXErIG*5A`K!X^YaRY^A}o zLw-?2S%78lDqOW!G26;QDYZQ1ve;|2JTP~D(w))VXg1!ey2OW1>>B2e$y%K$JSH|L z#b)+~7kUbRfmDe|K0 zb=O-c@}lo`-&=Evyb$|p>`fH;a`Lt08&sq_Dr3a+Gbt|y1`Ct&V(3dTGcUrUdNQ)V zguwn|YrWpC$Y7&yZTG{8sKc3fxO=VF(^E6pWNTF|5je$d?C-`uodfygcTSL$arkv$nyzAHx0 zDjMkA$a&AwynoWob^*=9c;fYB zBK2smle|Up0sCHZFfOPE<4N2}=BCK2-vBQ=^6I`}FihmO8x9y4ne1J%c7I6n6Ovyb zA%8SyHuwz8{kn{PZzS1Ha)9JGiD^Q86;6U>P(T*T)fqaGviDiT?}I))TP2)!G-O%x z>M=}q89}NW5!0_)r!mwl#Rij=@Atc8js7Lck4gRsS>mH=xt$mOQm+t`iVtY#4@rJX@-HOxAgpCU?EgCU!ukvD%gHn&ZXSn&`F|6tND@#*Xq+%9O?kBm zUW*FEl%F$w#q&_~0cMEkra8KobQ{2j?J0oIO< z?@JcxuSot2$v?BhY>T_2kbMaPX^lj>tD`HiZ~KgviuqSNPM$oujYM88PiPsLXBMwq z{F%=zUa4ao>vJrN)T>+IXGHcJyeE>D^rlfA7b0XC5fjm{M$o&^)XSZ4biydQtxH>_5prqp`h5TB#frNGe(^#l(HF6j)MmV43AC)Hswy3bPwLgJqUp6a3=6 zsEqqz9aM&;5*QWwW3AXw%bc^rv>{qM%hpuh3>(DKCDd8^iS;Yh=o{3sb_E8D^*-zsBa?MaFtQ3Aur$RjWobtJ z?WOQJf@3R2-=;d~kI|(aJiwr{pKL^FUz8f9KPLGW$@fW&qx9FQ))IaTbVa8{chyHN zrL@@@bpW2+!O9ab`i=!B=2DUkBu|mRdz^%y zzu{B^m2{}_WFvi??7q;Ab=___)S$|tc6SSRBtxr-YwDrvSWdEuWCvf9nndrj-*yZa zw!iY&Z@4glu(Al=mpW+`$ySox;=-CrF6_C+7aQTp!gUlc3s;mo-F=BJ*4^1XB*R>} z4{C)B71%2!h$~1^GVGz`bX&DDvm>lbc}1OlrYvdvA4RxfIbh1(GtpkZ z-Pzs{%f_7n`|1i`Fd7WgA9_=PsMlFu*%}W-Jx;5+DiG$_4P~QzOu4~4SJQfXjcSn_ z6S*@q)f0T^cg_6pF+p^a#7MH3@J&pE`TH!ax}#RWX^>h|O_8W$^PX-fYa8wJH<9GK(6(q=rCO2iv%S zk0|ASD&=1vh=qdDXfPD}Q8W~aLX^)3VzGcf7V~SL=u-?**X$n|GRl`ExJ;HPpPR=8 zUp~WOR%IM!6)F2jZ551ctr^4%90jOYce<6y1v8Va&Z$98u5n~Aw{tl4n5zV}#Wumm z)|OGn$<%`N1=#kmv`yvOr!-244n&Xb@^4uH8~3)BS!eqBIX zVF+p~)cGXV9Khz_huQ=cXr`ijn^!cWWdR885>yDVY)z!5%QK-&V}?$*8nGc4vM`IX zye9ve@`myr?sGft^EJa8hWGxB``n59eBJhz?E~EB>y>X+et`Qtb^m?ttU84I{A$&k zRqx|IHx>w<`DQnU3$d2C&rJocia<=i<1PFRu`d^Ji@^dlMi4jK*Sr!pTVA-?G}GVU z_Lf1VpuD)zE~sH(}eY>l~B9TAhtri=wqabApO@s(nqqAWD5z{@YH8e*fFTD zK)nlf5QV)A^#(7OIBdLIy>tQ3V#C*T8blPETThEE z$!D(DCea-tG0H!e^Jr~&w0Bvj!C+cyH(EU5xa?$nNgys9zfMH@UNAZbx}%bF?vJlj~|+<)gA}w7DH_Z@JTLWg9Im)yuc# zpOOXWkZZLSm+4H|P}v9?Cg;JOEfW|F4qmjJ5g=hVG05M-w-Kl_`1w^u;8+;*>UpEa z@g`O|u}D)sqmCdV_9o^MUo96aH@3WbK!@;QGm7lZAYDR0y@my>Gg>0=1QvcKw1por zm!3r+sBoT?W9BAKjK7Njn@KE?#-N75i*Ct_)4>B=#NGxKT`q0t1zf}d({aSA9Y7FQ zx}vv2DfocX!s!c;Qg@FZcx0BO_W6&0+W%B%=hOZ7K07(Ey{qe!gR=2&JC3L8UTFXD zC!Hr7>W;zB-6GvkB>4-HNowUMtfQx8O#DEn45AS+0H|aTk(VZo)GyH$Z;}6U@2m1U&yQEH3~*{iDn2JrL)Qfs(3PL;%FsZj{tO1xJyO$^-8J1U-G+(jx4J** z{*cDDTzB`fZrZnp_613s+R@X=r8_74W^zM)BYn!m^hn=W-=03hzR98dWY$R|C*7k7 zUVNHZsds|Hm64d?Y)Q3G47Yt5jI^_e{EtEnHT4O8I69TuG1SBRIO*zW{8s-N7uYK{ zHaRC3=y?;luPJW>6A3O1dV4qE3&l`Fn=pjZ$5&l%0(tXmRc|Ba{70C*9rvGHeN&KT z!Mg19v~An=v~AnAZQIkfZQHi}w{6?Lv(G;FKHP|`s)%}9Pb(@jzf7?tffztrhUa(?QStqDe$v#x)9gva_wI~o)XuyPPL-AloG4Z zG@K7Zuf4v+ti07os9$g6ZofpPzPM2HHC$^by?c9X$a&h@lYe>N&Uxb5JI{H-mNBg) zKdzObiuv-&7W=8R);_pX^APS@^KTIF6=(-hWw60jFq#ea;Ecy+tzxDKQ4x7!m0l*c zFEwtm`vB4E$LNVRPuD6u*YW0>lyMQYuY(z*zV0s9*8I!sQu%4}W&&&FmA8r)pV&dq zrs3PIjY-=weV+c7E)Qp!5Yss(+7)qqL6L-Pp!=P^N&ABv1pqkiGq-zxx@ymF`A7QS zmd?eM{1;`CQ=*H^un$ZG?dI(E65S-!;_gP_Fh8OR zz6mO6Ao@0lpcKmff}j)&j$g{YRJ~g61hf5{?u~xU`*R>9$ z%7Mq#`6WH-RlSrbmgljm1H9 zjjoKpn5IU>^Ya=QAR= z)(BzNbO;UYqlv&;Y2=0-V74x`Grp|QT8%4G&+{6iN$M0LP z;u!Qe&zxF4Bqw!iLjr>hGz++t91B~n{#YCeJmxR6(QrZ^)gRj_yV8M6n9+6n++ zPZv!*0`R(p25;x&w;gSZZs6*P(i6K^s>H))Xp^oINj>OlMRdjJVvO#byflo>g(8Hj z7&)PByO`))5Agjc_wmcva5I(tXtw`QDROqHS?IAy@g!H@&_ z;O63CS2LnA{yhD@3l@cg!DM;2%7LSTmBd%|{tc$yD_%}rNq<2%hz_L7$%*UC()O<1 z#eb-Do@{%0%?!ZqIJv}YU|D~!_ZnL|JultDUp2Fep_A;qTicrN(9bIdoh?W|rr<+!LOH8#=8!b7WT-IBf3{3Skx-_g zIbs+dv>N7sWDs8()ErCm5%qyRTRM8%jJQt)O24yokQ{hDK<9{%k`^_MG%z!Kc6ec% z;uVd<&*~q8eI%~}PxCm>mlJw?1|#^*`C>4|U@T=RJ~PHccBKUOE%DPbGqdG$Z&m|$ zeR}zM=&#+M7&+_W{hC;V%-z1*k(BX8K3I0oLs{H3anST{pR|+OFmAjzb0aC&snh@+ z3Vo{*abolgFw9SG_mWN5c*BP_F_oNt&HJCeVyCJTD)ZAvw=SOe{20zz{>WagY@a#=sU-BP z$}o3XT5v%cn#Lq%kuxg!Y3oGQily1q^sk&8m?L~AKR+$dubHu(+XfTuHPln9EYwaw zyU;nf8CA?EY_PY`Oj_^jOvk(D&*EBZEiW!C=x!|Nn7V1Eh7t822Xssc5un(8`gHS^ zxJ`YIhF(c_2VbvMb#W0$(8UWBi46b~2z2=AMc(V2fj@%Jz)ef2$QFT)Ry3$g2*Yh# zh~T{XJ6V6wN>WH#2yR*SnULBqfHQ=ez2ia3tXZcK2&Q3n)@q{`R2VQ^viqqpUU?{zgrc0oVb$bU)pgloO(uIZ(I!3@6SYW);Gou~@kNiIq0er|oNZ0C9~rdfRj4_n70Q_k71 zlxmu=J=kN<)rSXsfo~0d1tE4)6M(zc7`WQ@&T8oz89LgQ(gV;Sz`npZ)|NLhqSLEK z^my(^uqRXsmry!aUbh!>lQwXAjFVTWDI5LBCH|!NMAmE)lfRvH2FzVQGO*yl*bPCH z1!?l$2fy=tUIsx~LX5A@#;Kt~6Sb=_`w{#KOysTUs8_y;X-A!TO_QhI#EY&UJ;-uQ z=M#i&h_nIRo9$T{w1Jd|_w$-HtHU$?D(T4IECAh0Z5+NMqKT1m|BQ^jh?c|R82MGh zbG-V;|5esV9_iEE=+|Sn=ni|^C+TMFzt$N`WPq7UfS+_(&CGYri$dCf_+)89r=o+%Aw6 zUp{-oT-auhn<*rpFtCNU!MVqei<6CYyn2Y+#sjQP4Yl(@hDlyT(DW@N~Z<&t`S zSF)+|Ljada7@v3E1p7Oe3ra9Rf5XyEuAj3zWmcb;sv z+0@Fcz4Ub+Cv{~Fq7`e+>eS0D_*$a*r>NCc6!Ji0^%Sk?QJ^PdEAm?=`chVr8fRF5 zsHDk43V|yxG6awT3gu<}4c@bqSOU{x;y?8BilEZ_oa#Q<8?al1mX<*-{ZS2t)Tk0KPL!CR0MnJ=y%I7Qs+`CV0Ohyo3sOHRy2$Ps3pxRAPBr zh2HX6@7QqCN{qB|Ydn-MYJ}lG14JsGK$J9j9QgL$k=bgrDT}rA#z8LcE!ur}uR6LM z@AmbQ5^AXbRxMfC`!>*Sj@X!`K5D!N;H2LQHaIE@NE+KW~UGN5s^*Ha}r4qvKSQUTOW$--Yf>INv9B*FyASXgkDb z1?9P0;DJTL&=wub)N#H8#zFh(>9e-G-Mh*2Q(7JA$4y?CV$a!T^hO9pQrD?0AA`|Pq5K~l_%Tqw(NCsU z+=L>q?F-vr&(yoIZ3u`3B5{W(oM`#fW^{Yc`Z1pqO(pgf*fY0NcBYE8|AIjdPVdCum5=SwS2r8< zk|_$!N1M`q$v3hpzUk2b5!reS+70q}T z!xHs+i^2#*;S5RWxkKw+|J)mB7@rKgh$Mq4qEK1*fvd-kavE0UJV!E32Be5Gy=jl} zhm{SeS)!ssJwkmaK=T{H$EdX?$d9o@;=Ot5d2d z$7K8v!0%~STO9;Qr?MQcbdPsRk9|cl>*9|x{r1N&R5r`|FVT@Ndrm-SXT0esdJ~{f zPrlVxz!Hk8FNaWjQ9^rWm}VfKtJRH&8Wlb1JRw9W^dhl-3{~Q(qEufHYi*pGDm4`n zo$J}hvg;-uu9rL^+})B3oYQJB8@@FRYadapj7eGN!l|^tcKbR4Ai|Bhm-1?Va=KhC zdA}DO;H)OoM2ZI!tlgupqEb~!$r)G8sA;pDoB|bDKcJdYskIOvs?LCMw=RUI zwJ}%gOX=r@`vM*4L@M_+AavSWL@FntD7>pcpG;n2B-JPtmb!qV`k`2deS&8e4<~L0 z^<`w;&h5q*Btfq?Gsitn{@Dp%sOFAALkmB4y(1N4bKuv`N=f+Tx%R2TG}P8<|&-RcHn=CbV328)hdElo6@qgad74 z$K27~BwRG?a_$zv-aPacAK&n~VAV*WM+h0mBtUte% zK^obEr7?KJge-`6x4vsV*&Rj-6&3L2CgGcaA^|_{h=iQ3Th?q9x@yxz#>{b;^-g;r z*8X{VHUB$Mo9hYu%2RG$j_>^mpZL*eh;s)bve`-p`GEBmgHL)ZLdx1rmSwKQ)%d7f zrz_LbpH821X=$;!3tB!}r-#lHYr|ee>Rn8JCSmF@+{qFYmu){wo2RhmrFpQz)Aj4@ z$$wZ=?&z7Tly!2Gg;!OWhTEJsz~ycl$T$xC{Wmr6HE`Y4z0kl2e4d_A?ktXO?oqwlr_FH3$K|{3v--qXPqwV zCKsibR!Zwi?LUtu-+ZUFUv!s<>yjz4)JpPCH&LpGrH~8l41ctbfQpU_>b|Qc8ktUm zAq3!&HM1%?Wq4cPXG-U)r9%^6$678}Go>};_jSL1RqGdDv6m%oBq;upbry$V!{5f! zSsKToI&|hjN=y1n0E(=H6j;v0pgQL}f+Y*hv|nEZxH4|Q*0bV?S<<=NBX33cWfW(Q$%)x@!XrzB6ObRQ z%@FWs-ubLIQAfu0W$#?Iv?!t@M>iW#2^6q~On7$^(qowBtpZM>Ww8^99^o6<0C{vo{S*Aq@|E-$>9_v@3;yF^r`owfGy%`We%+CKEgDmJ(tjPoB* zGsux9RPGX51HJHD@ndLRs0<4IK=5;$=~>2~HsCH*%aa`QhHuaA>%oIBcN%TNk%6W6 z&jYLl%o^6zDM;aTwnv}hExB_e1zL@8ch^CP8N2NHn*1!dj~8!PKGcKP-qa$B)Nb%) zd4TYs%v2J~d>sn2+4NuED=%|9zi|g}&c_4Or`PK<>oxl|PCy~G$ve+te8T3)3z7XB zv)#qPJKpL^qrBQ>hzF9R_ffGo-#&L|t(0Oi8Y)R$;J*qNl53x0N41K?_d_e~5+E2T zg{nU7&<;=*MMyDmlahpE<&`=E2&$lFtY2`1a7o)pS;QJ`5;1~00a#(b4O*~*CXA9v ztT2w-7A1oqq|^Q;E2JVExMrlRVlpim4go~FgWC;Vpu@mHJf=y}Axg?s2*rr9$h|a4 zq?isq$p9~!+fqC+tu6JcFe@$|RZYqZm!SU&z8`ty#n8Di5bAyjM!L*lvZ$jPsexf> z+f+gAu;n}RhM=H8KB!!txUZ=RRxo8l!iI>}N#0@9)O4_xIgE=vc$bT3n*l(iDHmYA zIF?lYTvtmYLeqbX{@I*P>#`A`c^$#Krk_Z&9V>6PaACHgExJJkWA&4(gaOAm!+ZU0 z%wylg3!1>*NmMDd!bXFCqx*g*51AqvPf`}&yY%!Za@-Kr?`M*CI}7tOF(u0%dl z$!_joVTTZ(lbd2AWrcBKd4dZNUC_q7=X^{HT30!3SqJUIdoZYXwKuMJ_3#zjBU8~< z?AaY+M3g7;;22^V%}7EN8vZ-bh{GHO@0=Fnx70CwEI zy}cRXYQbAbZTy7{WT&S@tOJEeH^=LdTvL0pn{NSFJI>Et?M&Ws3=l18@wRA43dy@D zO~~#ILN%HFyPz)=_Z0rt2B#8OHc|B|eUX|vIvQPIY*Q0?-*LCswPvl)U1 zq}c=n8Mu)oF4!kuv@$UYgOGQ@@Bnm3U0dWJJp{|jn}MtYZl+Sw)OJtx&S9I%-IOIR zii%k;{dg0EJl=Q6t1l_Sc&MUriJzi6C6bpjVB^PToSL+#Qv_cJs38~E1bvKPU#Ipr`edispP`D=k@vix*WV z%=e6myWQkp7u75~vpsLQnz@6^8WB6uJrXc0b=HblgMv>zG;eGhTF)(9-B?+>Zr&M! zBn#F`Zw-&sk&w179RiaA^etesb%X}F+C6OdVkfg{HHLZ7GWJ9;bzUS64xv-S+C8nQ zKAuFB7zY^_G>#TZwGu;p5!X%LqQP<>m>E48@N=i;OIUQ$gZTU@ zR6M&w+A}fWVBKg`*3A-#Z#7B{1Ipb7aKE4RYtkZBOsOqCnd(&lQKPSvkBLFA&qO^O zg(18NWTsjqxlNIW4C9muktBZ(xFU3q4TWb2@+Ic&>iCLN1PxaBRJV1v2PU|gCvKUl+@y6-~ouWR3R zXc7IUj4hj0T3CwF+YbM}1VhVi;C#T}L+u>+V zIUjg6>hQmG;8}vEDhwAJh4Y((qC($U7Xc)4>5v@_q!K~3__Q#C| zHfje-or_mM#)ZYQdSGzT#GNT$dYs?Q@+?|)1Hv-z*j}~K1~Ye!oR0<7O&qt{e@dNJ zY;HQMyfF>zX@LgniEU`M3S((eM$!F6E!t@eS(nAjPV>r@^=z3OKiyXVF8VkLP zx4p0_gtyX);{_<$WHrF^o)|R1P zyUgjQ=Z^8%(W#x-l+@Fuh808J-m{oUBkyA#?|~=B6xnvhOy>Cg zu^iH)_A5zN#BCEci5O+d+zN}W(tG87V<%8i{&3BHx z?fBx@7M^GjS=p-cVE{V8O){nkdH!~c-kmXaX8AKs{mekk;Fe|8L%s|9@hFXt9~pAH zxkPMw#`8B+)Q@I9!!)0*D@o_ub{)icWaTLc_JdJ#rMPlWlWyJE@!fM+waGm4OkV zaeC8U*;3@c)`9s6&0PDTB?jRnV9?hT8Y2sd?$PnNhZ9)eexdI_;!zEq zb??wiM21WUc&Mq$^^bGlC?LFu)VnMPyn2k{9?EjAm%j;5)}7-muyh8AApz&+eQYjlnw z-_9fpba!5I393z0(Hiz?$z@MJ)Xz#5&KO0_n6A!mjoA{4CmLXb?V4Q@^ifrF( zd_5(M{Uq> zr7D>!h*a(_jYAo?8KqjL=ejf&>hiJwu@+?6N*ctXe)=>pPrJe0W5K7it0|10hxH$0 zVbG8&?wF6t%*+)DkPxPJ@%m9HB6b8pviXD~eimZ{2j%JSfoaGPMs*w=kvao}ClYn~ zH-hFP7AvH6O5CAmLYSKuVS*hWIfGScWVYnz>8R)S$}jbeT(=nBeDp%u$joj@<+dXI zvz&4VB;@k9rlGfxxPo+{EJd@gG87k-Wxxu%ODj2*pj0;d-h!Ai8ML^X%@pORz47Xt z+a#lj4LFr|Al52A{WJZc!Amw@t!*Vi$u%)$dOLY zJmN0?;2$Ypa2;Br1UhE9E2T-VCylWvpAV^Cxo0 zFsbd5QCEfUx@w+eUP&A+1Bu+ZR)-E>5@$~9ECJ;2sUZg&cne-+qrYrTcHx%kUtmrj zy1q3M?~CpQ_BwiqsXeDiv*I2>@)Gmhf{D)!WfL zB{(>>tm+ZVX<(Z_y*;V614v3*$G+}liOv0JtIcZN)plx&jUo|%vi1w*OY6DPFXiL9 zyEF-x+g<*^x491t7eW}a_K3|-cd{8l3~)dE*TpH zmUF?tJHtQyyAe*kRQ>}%{rkyz!sb)lWw{?CIN==c)BAXC^pIs?br1p1$5#r$u0ra*2T9;6VP$0n%67^q)R!cyXKI_w;S3 zX63+|fn`sd@`o>qhT2aw@kR5k$-Uuk+9aDncZhBv!Iy}siHd2?@ctZo6J`#lTj#ND zG!vsw%ke*#M09{IZ#us-8)LcXL;_4=6)|Smg@NG$-=H$EZw2RnV39J!-Z3W73=v7@ z%QXJEfG`d*jxmmhGzr3t9*!?2-pB2po(o?axET4@gyGWp_H3 ze=C5q(CyD+jQXFH2+ZgFo3&Ei;b%l|uD~rOd81X=^p<>TsOd5{gZij2$uCDOQuMVZ zx&{j!NQ z%PWg}z!CtkvH}25CilLRyD7n9QbnUaKaU*CwmMGbO22Z*12KCv*r4 z*GGp+m(qesR%MRO7!Xx!<;`~3bXJ~R9vZe($;^K>H8jPpd{UDJHC3ob!VGJIyjE~Y=77qd*enuqHGY2E`LfkgcZ2&t;>eUm}Xig zw(49C(F`u+@fYcdd;;4NceecOzN2`J)OebiR7j~3fm(a zV!}D<4QWQKvNFE(;|d9l=HG@u%_MZ2MI^7Em{*_lsI#^0yH5{xnJnYf?s^V6H&s-t zH5fiGs?(FX)G1b~zV>zcX88a{_UF-Qujvlh&gg3cFNrli2FZordshRuF#)`6s?DW; z!SH!82Zfzrgz+RcVKB0fY*^M+#sGWbl7B~1B>!d8w*OunlMmS~pk75oeYe(Nra@5p zCXfm^8`Z~AR>crru)UT(I+7%i`e(i%6ABqoVzSl@`(>c9e@IXWnaDR4sS??)Sjb0L zsMjLN3=G~L01Y^3)`z-mU|+V~XqDUct@WzTx{M#a`7+*0iTB&2$?UM_L-Q1+_BWva z(&m=nqmc$F;y^5M9i~rVG8R3~5}ThGZ1o%_blvM`a{J?sCSyRuy+Z1%XYMV37cSgE z89}#ss4$d$Z@fc%s>K7rnb~8Q+oTsps1$wSv88uOMLq8QJpb#o5NJ*eI4>5AA0O7A zcRcF4A;A<__gtnMkm*^@_M~WcUc3#E@}uJ>$eu?%l?ZAWW_o{JloJ!0313mw#f@0) z2opPcCGxoF?$zoxS$Yc9EPNv@9JW5i{4U%R+}?Qpx7>>TQXZG+A>&sD$NVu~PMvTN z8{=0DS$F-W(btD@0gcpqhB1`Q`3IL97K`h1I_qpSnqUpmVtLQ}Ixo{2y)5$_6;Doc z4vWJFyI%Y{V5dvL9jzrzHq)J{Zjy#$We(DZHL5zm^1BF{Gwv#ToNqbqITZWy4O)Lb zq`Ra37(FIw95U%a&OFh})mKy8Uu>uP$}O06GEUtV*yD34&Z9I>ISdux$T);4gk!cV zhhwI%mYq~btq@06;W@Rv*LzMSULaOz^J&WsB78ac((S$vyzLnAwS}KcCTc)Hou;HO zJbbCgCdYSjC@u_slrXhdmRnJpI5)H-0E?PnZ_D$>T`Ed4gp@zIy07Y|#R_bNI4Y{a z#?kylaRyrYfWX?0)iSECW8RIzX-RZLyFFqkqx{Q+jd^-k=g9-($3w1ejU1z|(jtx_ z&QU`))Dk?2f>bDko@Nxmeeg&+iE9l_BhAuCIx8IEKrJN0sx|mC?JkN7y!gVB)~TSV zq8C88-*ke+M8ZC632IaiP7j7@5c)C_)2@^gxq5e)@Yjg{MbdaX2Jwam&}&$jxe3SjT#2R#-lUeIxOIZ=q8yTOH4=7Fn~!!7~?&600#u3nrUI|w0Yx_0~{83jvHOBFbc_gZS;lj+s-w#S!Oa3yi*ed}9J#z+2!2jJ&+M;2J?AC(Kh-+q zO`pcb8~Y*$Lh-Xasd!UlI?WrY1I+*Wtg}E7bCuSqyP-K%<_EvHla;I6#^~z!Az#y8T>P z6Z-bk9>^^M5(am(xfB*%JuO(X?8ZoShP9^d2@+Lkqk<9Jt?)0fbaCA(tXxu_> zu5ZoH@VDA~xs}FJEDoCDFHgB6a_nqzk+`_O{Cb^c7#Hc}Ye8@00#UlO>H7>v6w}9h zvNobR$I9nwf&MSCriqH(7sI! zNZxuyp!60`z!FCb@;~~+&%o${pC2 z0{S{QUee;Y)a!Rv+bOPdKDdNzT-Ox(^wh@m!heQS(IwmuY%Tm@u7R-V!OXib=GfpC zMg-Q`#j(LHh#v}0$3uE!1Wj}eL$W+cUIF@sd8Dh|-$oamd|y)u-Sy`78+}6XcQ-y8 zK@Y!7RBx(s%3#z&v8}KgBFtTrGIKzt$1x32A9%Q$|x58|d;xO;z>k zhO5(fe{l3X9c+Bahn=1n8~HX+@~urA(4Kv#kB4lcWX+6=yp4-s#@lzgLe7$IFul;f z&==uDHMnz4q-~RJT635!h|@Y-4_q4Xt+M?iP|QePD_4L@8cRM)Zjq}jBnLd__lAf9 zU+v~{FlUU)4%R)|bnLp5m{Yf5OX)Pq zwP>{ha%n{!R4to6BRDLu?K3Z>$T?BOwO(=uS38LK4w3Sa zkj#?Ie?HhRd|-5rf&UsFCqYhBi~xYL7+k`dUYl9bPoYQ4!alD0s~1y7ino{V!V@g6 z-#yPP(7Zy8lZ?9rh#b{D5M0&lgW$EgkJ@_vUvwQ10CRPu_Z9!GoeY#M4VUZ<7-?T{ zhy_oJR`lQ2`X6AMwdqQa|JM2r0Jl!~eB}N5FARwtjojjK$T&zP+mn9p3#!Gc2@_i+ z`h&Z{>(mJAPagQahSe+A5gx+A0%k6tIk_}jD3UvYb9KCK3iD^6E{HNG?fpvh)-skH zky}mJ*6N5iuf2pj{lr^&>4RQ}6yW^$Jz(?)4~|G#4gKH!jV5N#+GGY^EGESxK{yq6 zvB>IEfyXW(r@+RLcmi+4ew)?#z_gFXi2q55_*JT5og*K%rlI`z<4zuk>+tKOIqhz< z&5!;VX@#LmIDaJXd0-gv0o~dt-pIZ@&WPczET{7%d?6%CcoYG`7d!yltRS^e(m^-y z;hHAvWn3o#Ffr9 zin!BJ3Mut0!*<6L8NR5Vc!NINI&R`k<*}p>$ z$b2bOP3)5h}UaWlf%&A%2cnXk9G@{h##$)+2Mt+CvxrS{mC3DzXx{g?7ON z;vj5TWho(M6dNmo)_!L3j}v@BXi9Z*SN#%2$SKbVB%*_kSJ+&cmbU}lW%Jqog)U~> zdH0K39}UFamdO$4!U%A|Epv}E9!XOB>)KR#3nprmc28$-kY9}g{z3EGv`wO_?{(8~ z(}dglPq@H{3~pj3CmEZIv@MqLCWSt9ow-|B4s5(jBS#mrH^hicRhosz1MWrD&GNq%+QXFzW}}d$~YkM56snRG5)D*f2_gT z3;8vu{(4upnyF_$0+@ov{eAZ#iZjwX`BG?9R$)z_>vr3#=KdSiVDlm0hk<+CVeZDyU?4*{orzNxUWMpQ;xw|Dl6hIazS5p&tOP&sg2 zyx`mCo1`!u>)5b+!Wq~s9ftg^T6+C}c*IRLvA4Rm0%b*mg9w`AdX-gh>GsrcVO)1k=j{{3XAJ#)^e4d(^OsmE@**mJ6*<)yN|s|#%%hXz_?^jhY% zWxvFJ6VVy>;JQ}=$-#7=8~z z6LyzS^pnjJ2#4z*-0V=FVR7=$O7A{OBpf={4D_HsVKmQVj zXLmfLZ(MNHl`#Yauhok%oJ=!ql6&Ng@^scI&#P%LMW)uOMkKrCvO@$Cfe1>c9E8Q1 zxMLt)K+dUrYl1qiyzQHy%^(!7vKl6&KZJq33lwBs4BqQs?vi7Z+Nt*`YemXGmv(p= zORC~46L_AS>8I~!i}_Tx8Pk$AB`$o9L5U%JON%F{-tzi|7q{40j;V6=%G}~-&9fA0 z3!tFz$QW2HAZbz@3y+cG+;hl|LrS_l5d*l$WdctoGG=jGb6Tka)5Un80(USHJefg{ z^}u~~Lpp+TiPu?0cQ(QfcYN9%E_4xqq%MCkIN1Irtt~wdlPx=I0BxPc z7FCU>>97=ftqE<>iNyQVWIai^Gl-o^V&Z{Ve{6p(AipUXdjmfr^+and<$DbZFzp$A z1ZVR>!a?#ICGtBP94LcfB5uWuag!oK2C|J^w6vT*+H8lgV9yX44(S~N13ZhqH}}q# z5v9ZGi<}60j}EE#lg2&`+qh$ZH~e#>ntGQ7mm{5W!FTBF9Y`B-Vv}Q0(jGZ!c&Upb zhw(bQ1)4I|smDp0D^dAL!1)grML=1D%l@qdY7M;k|6SkxdDx?$)rQwtVf1 zq`(Fpzu&EM$-m^W>yrmfg_nVl!|>~~(;2wa1XPUy7*l6araDR{BeRI=n{KyGAQM1G zLoMB?-VyDLgLp6kD=>dlKF)(RgcM9UZ0O&xtt19AfvV33ddAK1ps2 z3vi*nED z*ZW1ePGe)om!!(`QXbum(c6il11|OTHm_n=-nki%E~0hPt4di<&8_Z0e0+O%$RT5D zt8j+?W`#cjQ-uSiJO5d>@*ysrRGHF~s0H!DZ%U?Fi2+Yr27pj-oYpO3JB zF;+uh1g%q0?&bn}?l&U=Zk7xBBgho$KB+L2CSU4?qNCFz{jariR^aLs3l^A7!Zv=B z5J)-E!qBtGyUJURBT=>w-f9IWdeLLYW=AL2puk*=bxx;%v{rZ-bNoM?|MC2$$3~^G z%pz~GcYLO}Ya9*!tI0>AYS#ub0ltVP+zDK#$86aCb{$o&KtLJnjzG_`(^FyEb0yc1GRG zn~7kht1^(S_S>CyTNU>KPs*QBeoW2AD*b1jiB6uuC^4blL~?hAy8RK^z`3JV^nMQ7 zH7em(sN51)FWL;107|L;^BV87G7|El!QUR3h19Pc4ZUgx)yG=4iLsqHjo zn4}6V*VZJ_?CA(D`xX>iVMo{$!_TWwLr|B|u@0L+Obz9Px{e6sauIO}fGAio3Wz*0 z+*<{uG6v2K2s=%hyQm+|tuk+=548*tF8iUj;g6p)|AAQ$tdd30Xz91mF24(#$6N#eLT!l4JroU!* z+weUDXpXR{!65ockr^G%Pj+xZ2yJQ0s|VVrB3m&kGFd1N(qq2m*a{OTbrG&evc1vdnvr!!{yd8lJJxLYSXSC3=z@G{hK zETHy4y$l5oQS~r_p3*4nSyDY6{;rfx%_5Mb9kRCv*;oq=I?gZFLcQ@vKK)c*Vz4#b zKKjBV8;(7miDVblEZp&#d*6+%9BQl{9A9$yXlig(;@*w*6=AERW9g=jHP3Czv~PWG zW!I)98Ao}zV*N{|n(jvjTQ)6i`t-949__9%zC`t?dG=qGZ!;h37x?kiR3S4SzTCVZ zVAV2lYMfJcdeLK5G@MmAryNFJWn#D$gintC57OQQJc{#57p|(_yVd)uwI#K73ANA) z0wb}B)d*t{2ulVV2@H4!L|6>=1leYHW*~_HgYALIO&l+ou~gIPJ5HRzPsUChe4p!{ zte!*}lF20ZdVXi@B#g66EdKMJud2EQvXhzn==qMStGcSI>f6pa-#PD#Z*qN47Z9f> zt7Tc1Q13u_b@EhR$Z$VcvkGL8zZ{`?z0z3ZVP7dS(=c)a&$KL@Q2HYwSAoaoZ;7|n zTpNf)OZ=UY?m6-Y_dHsfubAfBTyt9GwUhJZEBVp*jOJAz%Kg&t2f1IMf$L5(tkM2P z`Kj`-mCWvLVaP6e#FB?>&l168i@R^+^7C{Q~ff^w3zDkiR41!tFFxHj$ly1v|_-*I->H z4dPKBb9X=;wKFUcJbd{~*#WwT9IPu=PjBJ1N=zVji+Qcwq&`d2;<{R~oUoiWHd5I^ zMgO8@MExG!4%Ax#gEKPbLtMyWnp)RU8K$z2%2DJUVT9K|oTc(PDqp1X8VstzRLEE1 zqjB5q8xNYUtN8+;Qsd3xMq=W)V!e?pV`l;8r3(-z;CHx4B7MMzxF;HYD-he+0kI#D zedi$dW3V^}Q305%sRQZQWE%EDT(sM1q5G<)H} zfp+G!y0bVs^WNH3-7{?RvdJ%+YZt6<0kc&sSl@s0Zoy);HX3VRH@9!@z`S_CqsM(H z-%zYldo~wKd6_;paICV(&00xza+KQG$A#~yn5@?r=Q{%HE2ho0sWZ}LvX^PlOYgRh zTF+QbgDJ`CgTewp0*s>UHdQYL$cjL`|C<3`c}hwFQUL>`1O~`(2uQoASoWlnfvx~( z9VaxJCd0#zUljBth|4raXH}wZib*k^#0r0T29U5mWT=;7k@h_UBSEUv37l_n)-szL zHT2YB$7x{v-OwFJ>7)Z12y*XWgtHszii6FD>2%^vtcK|1-Y|YkO-&$*2FNOwn`mb^ z19xx!1d^dg(#Y|8FP|Q+m^t9e$*d|zhGzM@`2CGvo4!qR z!3?Qe{)QM?W*{;R+U#YB%?7ilS93rz$@3m{6i0uAk7q z)YarNjih(GMqOuI0CmQ(-8eSpdc~E&u5P#vlAsm10^x-?JOil{zVRqc(FGaARdOw3 zqYkX~5EPw~D!n<}XHT!~N3e5%-NJ=%0`2^x&PJlO0R8VIUns z%djx>7K9a($$p4!ZeEYAl8UHH6-}YTwTJ`7bfB0H6w`rXI#A5(tU>`B#WFu@+%x20OOMbl6-8$4eGkM3Kc6(>Ev_vK>?oeT1LeZLow% z5%;wi`Das_m=Se0m6%?}s&!$G@GazV}G#yHHns`~sNiEPRR^JLmmKylpoKyJT z_M!m{yY&Wl4B|Y0gtD>~;(%YUyg^~#fmwS?fYk}?wZ>-t3WYX&GP)o zmz0-3IBzm}N?R*ynhPCV-OxX2;Q0mBcT9E(UN7jMrSMi?gA%I8YYa}Ogo?N{)BsU8S7K|#$tUn%~x4knTz?fO4(2K=8^;| zxfwaDyWkSOf?@p!|z@>tc&TIhw*X?KB_E)JNoD;i+gh(JCUeOPt4%pzbD{&D!4 zG_Q0DItD3JuUIqCF*aN23fIuM8S7kfa}TvAZ|$Upl_s06YrW8^ts!tnNZ1n93IA8* zbwd-ruE+#6)~A%A4;HB^J)?m!s(g*+$_l{=b>r7cI~|J{yza~qnSs&0J8v`(;cZye z*rhFKjPNQuGffI8l}k_qIoC27!E17&^3IfTpoVg5h%Mi3-D@31Dr-fuH$>R{~U>I3FS}GL{EmoYf6=Dkm zoAZ~PItS%h<3u~o*$%Oh1fyo@R+CQulRLJAOO)n*`Ps>r18oJfhHr07uDWk_U}kGe z_>J=08VgHW7FIa(3&Iv#tf)kJdBfkEtf8jWbLXy~U4%KM$5+-|-q2RegUJVqqG<7F zJ&cuCDcUJ)Dyk=oG$=G0ptp8wiVLeXf}dNB0|}p@S{W;#+r+CBKxq9)C{>FO$;R|% zF>;p4znOe(NWMfZ=P9%sYA2Q(qspta4N!@1@*TMI;E{m+>UGE6hzLa9eG{_neQseW ziO?h^gVwW0aIPQLc-TjTV$4uHdk|3q4s^{H_gMwgM;<#l^4Rb07G%-Xb^@e7g);)E zo7zLvc3pi}fbp1^!ks@{`|OqbaeDBSMR6)`2xM1yd9q(9f<2b4AwzwP+vDD$pATo+;Qcn z!tQWW)p^+N&|Z#`;iZy{a6$GP8k2=7F*B)CmW#-1-(k@y0!?lUk0p!<_ge(FI-L1V z8cRBz%bm&|^+D_!aNbYbsXuo<4eRX<=MV6OdgmPc+vwbZowJ?G@b5Y2OSF?ZWa^ap zB9^Up7~vH*{-soft<^@Swb>Ti=<(0Etb%qQTM{_SK)8< z<8J(m0kix*c5$B1NUGi6gRGxt{Aqkz=O4zWSN-3{r#t;y=6s2|;y=9z>via#pQ&jUMkLCurg2dil2qw}sfk<~e zPrk06&SS5Gst9Z;iAm1|b`q20;kT)6co|Yk4aI!SW{P0iWe^)eSvU7a)UzGUY9q5l z!m;3h__Pg<1^aRPd9Z_A1bf;AI2P8UR@O&_OB`Q3XV>W{flx2E_&b6vCR;R^Fu^Bi zGbMr@)uxtUi+tkl#_#NUYsRd15B}TCyBpvB*gI`4*Y{>5%m(pChUttT*Jr9 z0HBJ)cs>Kc)Gm^6j!Q|kSop+?lc`MckBXJSaVL!+L2)>Ul}3(|wE+^V!Z+SV2YbQr zl)TNTOU4NF-h^GO%CTBaQI3aK>J4Rp?& zh7}EWHJJ9KpKth5!_@||xNCjmO~ynyA4_^c=>aMys64@m1nFl(e;0Z^#2Vavq}@G0 zkV4WXoGZ!$|))rIc1I&(5-aK z`>7nGa*l7GcZO(Zh<1i(XGq@}rk!Eh8K#~5C{{cQbG=3(&OAfZS1$Qlo&ufkk-sui`3mGCf8oOt6=*1YqW9tJfUg!P;LM zj<7bY#~}#@iJ=Z@AC;q=O{G5W5WvG;BaU&u0`xdjm8soi8WCYl=OJPc=P;t)2XPPz zZ_pBz*iv4A=xXN4$S;mGq#3(*q*7zFG zwe%3H!Rh=3hR#nmDy&FFgvtrcpPFM}@`WL#ct|M!InSnau|3j~#X;w1smkVJ@w0aD zv$6e6&lZ)xETRoyRlWf&?@uCs1}$$B^obwBMw|m1M0y;HMEhX%ybny-?wHtU-!Utg}zrFZH_YjLMxd-i>R!nGKAE)J*lDS zUg(1B&;@!R&Y?%V4<18HG)$+dpTmw6#G}~z)#x{|_mlXp6q{a4Gyt$_@NjYzDIDrE zvOttFv&%S;HHNDY^|wS?kM~lAMzIxQ31TcF_9{e1_dsE@=}6>YC9zLxEp)yaS&)dOO4#-aLGBUiUm@j}G$V zu;i2Jmg=``$G^L*JHe-dIGI$xb34)z?U)=kxb8z3TRvP&VZ^8R#kL|~-2%Xlb@{{j zbZ%eqRt(}+opBMt@KY|{Z{3cI+i-C~x0C8~ZN+sX*-L6yQ?0mifAMxC&^b!-OK^V4 zcKUbIN?lva6lX^j)9_er{;We)Mmmj_$Pg+~_PiPH&Ch$29#^@qqPwXmS~qv{9ap2*UE!;kmn@7m+;+Q3DPMfwl7%~0)F`ID zev7GM$$g7@?q61EGH+29D(1;Oid@jLs;yyJTk+&}*&_eBq7<~PYMrsHwTQ=_LK=G> z9e_-No{;6lJOm_8Id6}%YK+|K{)%LFy-I`~8VqG{hIk999@SzkCbRD4fY z^7f7r<>enPTowz-w|%fkuJaW~ns1-=OED*#wsPAMIYu@_$;C0n?2?e{Bwdnt`GdW? zaZE|Oz?|cQ*lZ)E*v7NRm}?@1`MH9 zd_Y7<3%$>qQBNbN<}?(0pI?jB{jWY7RDIV?PuLPpRQJ;}zBjaWu`lOApL%N)YrvB? zeyu!?^%$vM7TGbL7&0%Rzs8}?Uc=TkY`qwRo`sL2T1bEl9)sZTqs{?zlj`=H|CAu zynS$-TG5Dx@p7#Y`+ZuZ5Y6O6s1X}n_}lUh;Je`WOl|iaL<}7Qf`Ea1^P1Tde>M&E ze={bBEcvCS?v|n6nc8w$Yxp0;3hBZMUMKUmD?=Nyi==b<=kOwFPoSc`QeO<6{H<9L z*m3Y_{|D8Hi7bwKSuois1;CC|;vk_s420WJMMmBTH$N|&Xk7((-372E@o^JAUZyQ% znxTrU9E#wZPn%09RP7 zZMt&t{CLG&9WquKI2wz|TJ}S1V*wx82F&0a%DH;B;+!p0&taG7A&C1ScHo>o{Tx_{ za?6KT7*Ea0Cx?bUczwtk$}e=c-n()}{mLEP-nwK{_=}a@$-A5~dShXG z=9+nPH+C9zR)IJ!t4Y+DSR3l%wV_(+dUkDyS9~@>U+;q86`#Y{(jcyRorh-3)o7qt zND^5yV_Jqx?g~;y%az%qEeff=dSh*R3P+0WF;#8yM=lBR$__8;4C|{wsjZ&<=(`*v zhm>-35aVmSUbKx3cAbAmJp|EL0APzh)Jgh>ZjCSahbch>p7!a&2zqkE1;qQ7r5R*X z-A0yuxh!HneHgLOc$v@$4SEnC2i48sH}cVg+pZ(!6L1x2AQB{Fh(yPjX7|MebfQ|$ zUSNb1WwMa`JdNMn`c=sl)_kO=^+^G(-OP<1WUss6W433~pS7p#ui8zF9FR|AWoEvg zRIiw{g34V~c2aqe%41ZXr1An4`$+nQ*q38(#Q3!FBGwvmLm?47oCZDV6NuJcVnhc3 zvR^&N2>$39#~~h|o{@^hYk-9@TjxiidYuagjZTrC-sd>#I6L)X$8eqV5T^i$bSQc% zdNE30eK7V|>`A;m4qn>_c#W!fJ1!rMWBIR9uC5Y6t~pw<=F96S`zv{-^W#HpYhtmo zZL@n0Zfu>q<>AF0>x&EW?`W)FyKshO@_);x_wJJAh-Y;$QnUWly<1MLulBq8@_hNT z2NsCF_AAp9RQD07O5?|NgsAo}iv-^Bp!K>4RO2A>RJUU_0?Pd%2j}!A)oX|oIIMF~ z3YI>>d=a(rBod!Kf|YZhr*JbkZknD{*_@~OwHbbbo!fpBFU6q}N#Cu=!keB{F3?Dx z?o^g58x?x5vrJ1(8%(Cb)Jf9?6XFQ1XUSYiw_AIxeTcE+wWYz-G21!B`M09GYJrEx zT<73A>u@b`t#{FtW_y--`T=Nl%5%{JR5|YxUOGP8yUg3~MaA(NV7fzDqO7N1P90ay z<4)R4i%sir10wY>bH?C;EXLE4I@{W79$e%p-8KAHJ_1`DgJ+OT8>okUZX4de^ zhGVBYhF8uwA@bnzNko;`q>z-5cZyZvJQ3$MC{$JsXXBhW>S{9dISjg87<7@jufEF* z_}DtEEx=kbY9CxLpMdyNh(jDz53v||m81}Dfz`7XqLK`r)HCL^8S8T9#YpLX)%Lm_9-YVW<4erJ&B*ktX76JR%@NZy0nN5Y}a*h*?iaC@*dBGTbli_N!c%Z*T0%c*UY zdCE1WU(%}7406e(W=z@5T5?o&vbe<>lo*YjDSa>}#4=;CB$Kvaq*qvHs+KvdxiO1+ zyPubukvA=PH`RTpEvsGUpmv~jZbjo*4+x|Fn(a08rJW5Tjsxcj7y)si2u@}f)Mcel!7Ti5&^x;r- z$D%tLJ9{F|=>pO(UsyXWp0zLV%eton|8PgN{(AKRomFOl8k_g?wFg&aBWnWTDKH z!;EZ&BO5GTWyRo6BWH!T6}&qanEfzSX=y_fSb|#YGd!0y-dXt0dHPPUL#sD!IgN7{ z%BvDtw8DB>XlIN)9Nth>y0Uri@XWRavmbf1VO6EsY95Hx#d~`^r5!cf_C#t*gR>V$ zlX1nZD3yI9rWhw@W>CsT&6>|sWyjuy2u-TM@;f0KmY!Kyhgq) z(NZwRXV6l1Yv$*OhKlY@rpLUmcr%!Xnly&RJxE3=DiXgNfuu;B;goa5i-LCVK+6Ep*09qOyF?x^dN%7cL4OIdbHid2@IE<)2Q@ zmq%u7-LkPPhx4(B#?7T%UsiNB1zF;g!rvT~%p&&xvS#ShyD5Otc?e<|#BqQf&_uP- zs^?rtF{>aGrdv<1lR?`{@3#lK&~p%PBP{lxYMCLgt zk!K-}K!m+frur@r6b#hw;b`B5tyi!$iV%UO!tO$43ee6JqIqqx)|t^zc^uA|@N{Ti zSb-S8zyKp-k%?4Yq%(rV{fugMNLt8K9;Y3+IogpP#qWq{?=8eojrkcv1GQX$U;J3$ zT!1sB&QWWvw9#yxlv|?U_v(^c0H>CyPJ|O}a^$o3zc{1o%+Q4e8|Pl!a=vNaXLo&e z{>K0Ne}A5+|K?AA^6$QX{>Q3@e|zVh-w2%O|Bzp&aeIcmjeBBI1+=Xqcz%nhgL#o| zm4sLgk->p8*xC)jix)`_MJdulQG!KU)Cn(ec`Ay;f|Hsru`8&E#%`=)Bn_LG1OMGO z<$I`#uS^74rh1i4aHL#=83d&+v^0-WqKK3>Cwd?Q9vyab^GJWr z^F_~Vq|>5*(x|P*6b67UW2niBO#1nXFI8NvpyOq}@ftZNxTI1FNNrRWQ&}fGv6Url zC5uZ;BJC)3GI1fnKt6~mRz%cSx;oGiSQ21YZoX6^)l!*FWtl+v5~p;uwPc6%Y8~3( zmUs$$;qluewWYy%T@A~k`STySd$YTsGPbC_WbR#a=iDBT6|S6dYQdVfd-B3GpqB=n zJ(UZ({1s(|Hdo&K*0R}kF`svtCvSaqjW*8HyQ48z?#jkX+`wRa8j93mgRdf~eH`KN z2#$xKv0oPP5J`kTyovejFd`qi^~eYF&5;k^gC|}Kq8NpF|E^)jUD2Y!NsIT(Bhz)T zTcRPC>gLn|b&m3%B#26)#ywcCfFUjA)5Vl5b5m*W{&l5F9^ts{s~dD|p-YI-xeNjDbv=F?-!JC6+AQh{bMk52 z$6+mte~&&Vf7+vghO51(vhRCzFI)>mK-3`K#txX+`HosVwVl(=71-J89GFuR5Km&h zufx_=iQScK+lX&HiCKRR+~su;S8ZY;$(~8Cv=7+tx108;PeV_Y}H{aPn>-g zbMspe`Rw0?*bDJ!p1416CIwTIDsrWFz5s^kO#3*>>hOMw?@a8SDiyCk3;j-e(0HQICwQhN7rJWmD(8J8o~iUMZ&t^xT<$(E=8WVXe!)|}Y< zg_G1PjCTG6z0Z)`DBdUX6b|FHt;Va&1jUj;2;)zP5zSW%=*XZ(Sxkoe*P(QH*~tHf z#lVnM?F%J)+fzx6!{G^|kza(F!;U!fo&qnN( z#jR0S<15q&p0|I=e$|fS_StrhwtzO$kY(abRe9UJbij$ZJ$IB*_n}+g2fN^;^#Tmu zL!1+9o8lxqg%R{A1_@(F9}PiXIgykTQFvh(3(B8R=2`P*9FPA+jmxoa^V3yzpWeJt zuHCuj>tA29WAeL-`~NIk@l$^B;=RY{y}P8R1t&Phmp8RQdoAQ%$__FZ2M)t+a0!CB z!zCv)aS}*}a+wi)E?8$d-(wSk=DXd0po>~X7qybcWR264kIRa_Qmlxju}UL}l3Lcw zlfM}lknIBlKmDoV{_c1AQ4GE&=*Me}XA97?*`!lO{88$(=@N$WE(9OxVMx@-a%`K+ za4vA%(Itr0_}F9x@RFF_uIRx>V!3^{V|sgYN*I!SOBj-zo}3(zzce6Bp$~q=*t)Zn zPQL#;_2-fQl|T3Be7B^Z;dvg&;>?+$@5lA@D^6l#xJY)Uat_aKJ#$B3vjNM!*Fawb zPL+1|jDL7Dxgs7Kj6uwrsu^*Kwlewk^gvpE9XBsuS%tit8!d{9Y)z{)z&?O>dX|4< z9@a+bHhHhOU($SllUmRC&H#L-(GsFJPB#}fnC0-o-_%+Cu)jHjHT% zw;}`Eu!M7V!%6iOL<5{bT)=ADV&?!o!fet%cXh$D+_k#PP~|x;Pk-VmAR)%%8vwyT zgK}_|v`9R3F!ectX{gyGX{*}k%n!hK<1pv5?*_SB$3o{2b8n4B5dX3tCguHb*X%^z z>~II%Ky%qkU^mBb5+gtEv&$Md4$Y9biX|8hg83X)&;tm5am4a*z5CengG+70rFPEJ zu4mD4sd7SIBGW{?uyetr2fQ%whrA_L@4s*4q5Ym>-^PM+_sGZMbJlmb>UE6Judoe3H8xtZZ~&nc)|}U_wsnO%ZP265~qSDojPs4g!iOp zqFKx$AO%1n?EJko7R7x_EQ&mREDHZA_s;WAE*|(`VBL`;q`%EaI~Vg55N>})_ZJn& zY^n=>ttL#yNeE_7Hy6Wdq|!(}8>`M3za2ERzsf zCLyVxk*PV@l#Dbw6r@8zIuv9KYCb1M->IQ8i^@_e8~B`{&d-Jsx=jyCdBPU0Eo)gE z7#IkynqN1+KBBlEE^V#|Mm;nEUCS#8G%V}5sEyU^%Wz2-#8_?Mn*b6qby~gz|3kM1 zb3(&(>a_I|=E%bsEtmuJU2Tj;Yj94ey}-zSm&CXOkkgolHX)nK=Pq?CQz91Jw*+a( ze=q=L!@yPg)7yr8#n5AJJY-tS{;bbu=hMUbtq9Ei)6Pp!I1QMGsIU>y6(j zwOmgn@)~}^PywQ`;6HiMh-BcHhAu6-VGkl1(D=__(HSwury+Y}fZ>QpU1sjpwQc;V7eW3+Tuc+Q=z(T^Xk zTUGt=4_8@RX4JHsEIk%etZsJMruB+Rer1*Bi~pVS0@qiOR4U)0u^>YaD!5dD^h8t_ z*Pb48BAFTLI5Z*Zs|l4e29bdnHR?(Ne?cjUY(=FG$4_HTxf_%EXpnNT6IqPUICRlDxJ)J z{1Fw_Qbr?Ts;*&a=j@(fGFsXZ>FjL^?R}K0Y(Rc;U|^NCx$&l2Q#@iEQBZI4Z$-Vy zvy6VG*Vkm~~QEy-p$p02qg< z7o{tb!tjS0UhZIOle9}xSh+CEH$}b7_ezUtY+6TUn94pXN2#2p@;NHDk@V;6U$no5 zuoyugc0+K7rRPLeMDB{1_Rs}BjFkBWDs+M8BVUSKjhJ*+F|68`WS7r)U304egJFX> zVBml;RcP3s3#XBOAaWw|M1-ko_B)QjoyB+>H(i6zjPimwgKEGzdoX-5d;v^h2O}pV z7w8gdAHoJ(SOd<+!B}(h0urZxVZC!za&fdIF)*)d@V4R;2iiB6G28WY6 z>Arx>d7$E??4Fp%;4Tz!C|eQhG#rMV6OI6Q>wH9uOhX>P%~#x}M>(Y|o-l$`5cqZs zK`J+2Gi8s&BJ^9^BL|U+a|%~|lJk4%(iRR`VQ)eO&3D8G)2brs0^+HHE zP>QW4Y>h!=NB|izh^o)1vV;9u7vMq6heKc%#6FEgg6yZGirBPfrg)hOphnk2%!QbM zcmv`~5X-dm=@E8M0R(lKNyO6^Qd48CY%@f6cEn6`AaenGCX-#ItA zs3GLEfADMB{uPUcVOaB(bw-?s`{Ne@H^hQ#%uZ5Rt{sfDS}g2eP2W$Xhzir@T>{!1y02-NedJspUN zJ#YNlQHW}Y0}v13*J^^Zf?(PS&4PDkL+C#I0G5_hb)}u9iuOBKAzmio$LeZJIH3<4 z#WLmxW?;BYHh@wR{=_{4&pzvlubtPlq%pE^WhfG_2w7dlGph<)>PoBw_b3~Nh8BFL zqAuLlzxbDf{iYSNx3szJ^}4QxNU%IvbX|#PoXyXJFGIdxcWF$%<^r zkyNR($thrgWcC;Sj>epFIc4BYa(EoaZ|Ly(y8#5pcq)uR8OP$xCZK?K*^xJ7kHg_4 zVeb??$^z12q8T+N@F-(R^_7b0UFL@Ctb9VgjgC^f{%_Yl(Q%X}oTEFJa~_Z9QXy^T^abJ9&DY{i7;bVxWY}0IGz_RTB5s*3KYNagRBWF#!Z%UL_&uG*NBZ4M`{nl4wn3T8jU#G00 zNJ#k*q>QClH|Q@hyfzka9Me@TbX5yoRl5%x9g0$^mXPgjr5n`l!%n{&qmoM~U?FWY z6cayrAKk(OR8CNNLPzY_LBD;7$|))r#eHz%%MuduO)j3B7g2NUSNXkMJ9WCHRl}f_ z7v=harYyHk&e!Z)&BtKc&%8y|@(D3xlwlQHXBtt*AWq|B23xxg^iXiGa~w8|0a7_& z4#Lf?p3wxI8-<@Q`bsnt1sw(UXRx2XwrAWboD9gG6D<~ABCO;TgH}sjU28PI1U0gR z`)2=8?(o1Y*MURC2%NO)5@-+=iBcS{NT$3M@e1VhX}~!nh_W6_ zfM+(lB5tFqi&Ckk(xF%5tv(9g8Ka#s+8Lvrv8>}FM7u+@J4Cxfxr>wmu)KXm86`przOXR^nuUlI?`SXDRIXKX3 zHnp@y68Ubkb*0TxFk^1{mW@`^PkyGjzw;e!Em4`Ne1&uc!Ilsxh2B{zh!qXJvy`T^ z57Rp}qhmU4QwMV;1v8$bV19&V$zO{jC=iNezECX748_t=CsS3Pb|`kNP<|I;3HAcb zk@lX0YWH0%wbw*uMQD=#yXfnPAbwuJIw8Ku z>w6#5^t~?{yl0nncb$fFBGy`8r+HgoKVEH-q$;iLc1!irYATzl>}E_K^-MiR^!l8b zq8qDtUEC$Ta1$nE9QIQe;2{f!gCLB(JoLH-dSkh{hD zoGp3ldR7+yQT_=0$CRuLJm>3*d_gQveDEt(ML03X6aQK{p=21Bc7|x#Mf7w(f;o5z z;tIkRH$mLM$5MzSNae`CX{6e%CCHMNq>=5>6(G()NVaNKQ9&FZG)7yg-Of=bkZheoWeC|AJh_PeQL|<) z&FS)%b-rG;(t_yGvC5 zz(jN&;;4~2Ih)B+AV4{#cA{S&;1xdMkLrLpf-AN|9KjXaZ8}gOUzYh?E-QoyNaiF{}>9sAuL+s5kQEkrW{K6`qrda;$7r ziq)cHuH5L*$!zaf5~AQrJ^Phc2aMsD}(sqEWv>M)knhOva%hum0L ziY1Ch;#DayVQf(?HFoZihq^a+#bx>E!3FnpmB>%KS9h1RHxwzdZGBf!Yh969wjTKu ze8i7_vUb_l!8_ObYq}d3tXdza?t<}n<3De_uY5~+Rf=kL<5Q?^z(^@Fp}UPF|4|4@ z+tRo~EsF0ZVoF99Fj8S}MT+&_oVTDSL|PHU?ZwtPh+zxJj4Ub3s}_^)p<#>*#A&l* zB%2fajGUHfmOm(;M2N;k_?w5J9h^m^&VKVTMCv?X(<2!#*fsvzER39b0^%&AJZRuj zR3A};ok~4`Z!+k^QT`@oyie2DEeW|L7;Wj2bNOv;^4gZk@Bisn3YEZ`NOePdRn?48 zVWiSuToZCCUz=?FlU@J0pszXTcCE>?*3W@HWWVtr%DtSg_I0BUbj*hCKjuA8Y4=l{ zVL9)a-{c>(p~fp`IqC684jgi7^C zwqv#9Py{c=L@%aGnfhMpYJRulc&WW48A#O5EDe==y)M5aTpMvIvB_^8ln?$%{j&BF zn`M>RoR}eUwm)t%o3@bwQ?AU&W(sfuACMDu6vZrTq5-hT0Ez;GkwHWlgK<;`T7Z}%P*C*b1RyjrR$~fT3DlDWd?Q`yX3)m7g3-^6$l-C1>AISXg8(Yd zKMVJ6oY#NjQWuq8D)h4=BqQ~1{01U3yg1>Ch|CxZPe8^dkkVQ>1q4#07#}m;0td-R zkY{g2g3LldUYrI3lBxX?axPtF^-ZXd`-T=Y4^RHw(o$E~Vp;3nu%>s|c@t3NQ?ai; zV%kx@v$4kr}J; zjg?Y!!wQBMt7T^(UMXc_9BOBQD6ZH8B!37{N9!V2Q$^vEH z&Ilw>b1q|^8N(LHPz5aLB?tyi(()@!*s=fvUrFyFDyzc4|ic&Gz zeFeq%irQGkfXf#e=}4n*ESVWgCO^^=^b1SSPd{Qprn2hso3wGxoq;jv_l?&J5-n1F z)q;A?YcJ4Uyb{7i8_Vl)<`a!sL~IM%_pnvZKRy5fP;Ir(fM&NDU@@mKRG(}_>S!a+ zI>>EStyrwsW<7va;{!PL0f(+gZHHJ7ed|P{tdpN2nK^2!*6NyUl4uq_*k7VFV>qbp zuiMhpvc0ckQTwuvI}2tNS@R3?twV1wE3GSUUszVy;;}^YqgH>pf4=fXhb_>wZsCf1 z3bt17w^?ObA?s28-VX1a7PcnMlfP1AMKNvE#|Dn4m-3~0`Ej8x<|9@SFX$3PG9UUS z=aZ{SEFW*I2~X675qYyF_NaM|m;iMU?_c%C93pFzGtgt~vMemAWR!Befx5~P9IwOD z=vaMH?XAaLSwC8j!3Y4}F9OPYw87Aur$pXQF*O79A)tFad36Nqwu+TUnLP2&8?b6Q zFrEyEg1bDuuq&ftHw|WGGDs7V)2J4f)gTx4K;dzk+dz3(kQpmT0(6RQy9Q~N#x%gD z4TKHiI7Ha40~l%5akaq7830Xu{*?SrraN59I}o&$cu$ec{ibONV54*RDi+G1qA zXB$d5A#+0!iSC#+I;uC!3pfh<+V||PEMM5Uw0M41sH~{SJ0KU$4TcxpF?W$S+FsY3 z=vLedtLqOxwqSeJ^7dYj&t!90za^hqRIs9H-PXDDe(4JY7fD&Z2@^1OxAWtgFl%({ zj1oE+Epl|@a9c4TEvJKY=VH-X4AzM$ssS6Z+K??zFrpl*%V5|9anEN13npJ1QeHmw zFB<=Zo_l|u?q@~zetgDVXmQPGkJIKMPxFhi_KV2akoy7)-XBohr`{5I_cAFGlH#Y| zc1!z(=idgK5LFkq;dznOM^~{5s4J6X)mC^!z>#x8J?x#Hj*#23$e04Wv8uR5dU=v# zhq4Jha#>j1TcWMSU#9pcU;FvbhqiAADaXGopL|`OwOsDha$cULTXsv^jQivpGv9h+ zjttz7e23F5Oi#HpIp@yCEEBmmmSA^EqK$5>txSIQ{U7{bpsx>@1($lh|NWkyO9lof zu)`|lV&OwYy!s^#K#1O-L5kF!W#(i6O_8)9D3N4Px2tC~wRl7g%dDt|8MCC2%?p3> z!&!ha1DJuV$I}F!oo0rZ0M*N(SG2M%0RebDbqKw79mmK(MDjE&J&`QWQ5jYU_A9RU zWdZjr5bKOfSd6p#APyjcq~E(8e)vQ1HQwdh=~D(<68>CnndulgzcM6WntaW(Vs8Dq zMYTu&EKzEAmzONNy`W)ES)i&k-=e&{;rC{LWY*nFk3YhEoOiBo>aOxyY|O{W{_MEY zKy9QOCX=trJtp>#FAJy}lg?+MG13nxSCd_Jxkf@iCs29t1 z)hB!&xs~Idu5x5lj+9e5GFMJE=rO(3wcm9N_)9id6!=T~@{Z;qN-i&gP@JuKdguz* zMij>AHm(va;wgLn)DySi#QSj03DkwtS3q@<-r+msJLNNpO8F3)R33Cw19I=LikG&| zSUs=efg^?0PG?j2j^*oC*39=Q?o}_@efhHo7ac!pmRHHH=EkV$LFyC5 zCPl;r_$3R1bL%Qud_Y@ch67eiP6A`1I$Vr!o6I2>Z0&GY3aDdUjyfZ?Vha$;YneJTG~e z9EN|=Oh0L+pET1?n)xRgx`%&KXMCAL7Nc>)pc&CvVg#ejm@`T0 zgX&cTV~kiIfcKMRB%?ZE=GQ?SjA*7m&CP0i0n*0`&LQZV{ZgS~Ug(S5Z`+u|qLxcF)CLqR;AYjeIoN&T2b+ zZpRAG72>v`5*6`nt3F)$~sO8P&hu+t7#UtjCu&o6%6!h z0mL%AF;_-C$wR*I+1juImtJQbw(hf11AiSa>}`PQh-~`QbJmw&67*ny8}sv$KnjTax)>0^HN_eAXT<=3Dc(_hs2Bh+sQ9NK zI*SpI3I>Sp7XJ)L-_I1M=^sK%BO!$`1^~l99N7nN*pY~w!$~{JFpAXhvUq^EXa{+0 z;ajovsCvA@@=B(>o;b!3fQ+SjJ)3Bo^sH2!+$r-gg1N+!Q5_zOW~uozf)EO7Iqu9O zYfoI9$&GYn(Eso1HK2j=33uOCh-1R%2gAU0v&HEeZZOR7j3 z{6ooU_=l1@|4^CWAF?7`sX^>*NHWlEg>QTo*oe9@ad&e?)hBNy(`cX%4T6xU;TGV= zKa!PbzE>KO5KI`9j!=1=%4eyhsJu$Wrn434Bt;FrvDyq|(}a2h0aD&3AfwP0+4JiE zO7a5TTq!B7q%uI|ek$e>^#yuA^WD-;`t%@`$EZ9>MRkd?G#ACn& zsZXk^u)R<*2GYli_-D3Bap?e+<5bQgo%$AXB5Re#P?S1Wb*>7gSG9I#HJw>aXI9gh z)glM#EPnE6mIx_TUD$zNV;Z6JMH*31TslbQB$W&Nld0p0^9e<83h@`J=nGZ!g(~_& zm56QGPCs#w%1J60_~%roxRLv$+0p}4PEdJ*3LRNCn|^L!_8&(yM7^N8QT{J+4b?1K z-{kEIH!qF-SLlXXR<*~?pZ~ncH4#_Iv6 z)Wk9PrO8_nm5jI?*%udGC)F!&!m7(a`6K5W1l2sGxl`1e`;GD;#O6m!f)DtSHCsayrP_clp z`!3qpN##K*xnHsZAYi;UJ93u6-MSXZ9&Lfe0t%}N3smho?VefQ zEDa1&Jjr)x{suAy%FvMQCbRTtn+NEfU6k28}+?;+`*}mk5lWt~_ zceq83+mP>JleMKZ{Ju@c-w9-LKxx!|C{Y{W>IgEn>=aGv-)9aDHU56j?~@&G+_%`* zBhQ=ss;)A9yS(P#0gtcY2vm}e6qL`3cm?3|aO_&Q7MkNXb6Q?00u?gI&2EAVb2ozO zS35V01Z`-Nr(g?!J2F*ko{hCkUj9)02zOGiDsNJnI)%Yt)vNF!J&kIez*Zf^ z4t%unX(@{>4D;b@nE2m<7>3vj@hJ2!PR&jMf|q*WAPcz;aCP}rcY4S`VgL^qXC{* zWQ{3XwaKh*f8EAR&a7@{yXslPV|X0majsYcXNfD76S7ho+S0+L^L_O%&mPbbmo9zt z2;i3tPN_G6*)IRhAJLz<&1=2tF;xBxh{FLb4NxtB=!b}y0)id4VTNox8`|2N%oxnxAHb1H06{u<{@Eej0~@ ze1_T|oSqEe!+IxzWvTBoIi%GkT*n$$k<(?>IxXF#SA1uQSG?Z<>%JkD5qe8WqZ8-p zi9Z;{jGjz-YnDheocML;&`{^f{D0Z~)23OIhkjkSQt!{^(Ss)L($$kM$@4~aJfA~~ zhwA#1LME!deHRRpuOkVEq8%Dug2_xatP~c;K^I>ui{68vdCpb4w-r&^Mi8 zr>N=ALe#$FeB}Z$3 z^NK2l-=B|pYA;|yaq}LYw|Sb*nYH_JXKnRS?EjR&B*Q7wtq~fT-)2*AYP2X~;DaU+ z1J4My7=Tr~BcPd`?0{0;;&TwM0AsmLLrpUJtbquQNAEXc3q_BW69WF}{LtuV$NRhA zZ|#%=AD_J5HgsP3_`G?m(w=O8r9RwX)KwMpCY_S$pdDAzC0l1;J6Cmjz)2>HB3Acpl%U?_PSVgf_| zO8;kr zoQT_-V_>UZ#iEHq-2}Sr)6lB!N6g1cWk9)Kq4o_;SG9;!8Q1j-e*u-Vfx*T z2**vph`ofy_a?+;8@CN!S9Y>yZmiWZ7~d_c$PA6mG_JxU>vUK}-KtmgH#TnJzNXB{75Lz7Pr4ar-uqWr;A@@ys<`Hoy~;EkFbysrG0g86AmJ?XmS)S5~k&O^eg zNkf>I0FJR*BX@F(ilTwUIidPAOLFkP33>@#92Mox1-`_8ql)C)f1!b2t^zKX;J*7U z)lZFF&d(zwe!%dH=B!7L>JVzy>ms0mLmPJG67KHFjc z*mz?wFm)RyX{$E^`)8|>>A4@P)BqjEOxaP3~RP%q?D*0--HMUkFXIAiw3Aemh0;3YBW=k(h^MG z8fuh7K7-muBBjfklfqIkZ3;_zt9!ru7%U>>vZRMS`#eWICfe}t^B?uoZVM20wgnCZ zjt6q`Sd7!s+dKz6$8pAvz@fk?#7?>b%sMk&ois;s(jk?=zzykc`Aa2BXExl?Rr$cf z#WfB`L%|)(VsiLRIcQ=R;^1H4mh6VLupH0Msb>8@usayGm)G4h} z1gB6@8?xWp_Qu#Ls#wQ!*JOyHloNosWv+Ge$qrAn)JZ0 zdiqe051oQCyvaB2q>dBqY{EsN$+3DSsiJ>l)%4R*-rblS@1`#u#d6By-2#Ggc}};& zaJ=4@rBCM2tosapxF@h$$jM^ ze6ktTWxyl70C5On7LZ9#KrDm!^lfkuKorcwfd%;T0<3~9ys(hYUc3_S+?5>du->)} zp=42e_0(HE$b4tGRSWL255jER>UwdjJER)v5S3F@E>bZIDC=73K`M_?c~ac}V|@Pr zQoVpBt;dpJP-{Nbe6g9D=srBbIfxF3NAU#h5KAD=;W3Uw#PBR<@fgPzo}OZbe>5cj^sz1*L0RuE!^1ZDt48(SB7d9Z)(47 zu&b;nIj_v(vetHmOG4e970YAu?p*WeT{CC&9lX85U(r@k+|f|rEpM-i&#KQ?K32YX z+oHK!SJW%!;G7kGGgcm0U01Vgd-vRJch2?8a=_E;kAytst(%UmS$F*InUhbKEnCzX z^tLU#tF3lYaKlLHx6#YyomO7+m3gaHA(NF2);WCPiu5D5_C(MYNa(Q7DUEc#q{JBJKRZd$&RQ_H&b;y=F|hvi=ym1 zi~6*f+$7e$8rQNn2f-Ln9N&1j<+zgx3A+Xbv z!qRRCV2M+82Cx9hi?eD`19$#f#sHyzW91X6(eg6@cbFr-c6N@)nO>X)%~~R_#}Z4A zr4MlH$1UeE&d-MJ8pC+bK8jl8Y992RhBB$X27t%hNRZ64JCqtJjfF+B<@wNN%H_burqwxG^sg zZ0HO&-7&BI_NGXFO>3dA$Q5pk+MQ-4ys)-xL9B9JRrm1Xia$HNp<_m@zAWf2s4h%2 zLWU{zxnk3)C(fo;&&}>*TNI z+*{ml%+IhB;*&x{Ed9+4Cl|`btNHoA!)h`OD85tN5imA zsMn0RQC72p;uy`vE)MWxZn!L|&=k|tz|l!eAQ~SyI_ewrqw`(Ug6UXz^~lOud7%mQ zJ$S-`0!}9=9i?)X%IBzjk;-dunGL2w!HS@=hX%u&7sJgATo@5S=Gjof)G_HCPy~<3 z=ivW$z@|H7KV`oNHp+u;puJI(oUISc8c9w1K=63*e2|V*A{=EKf;g&l!gqC>V0}MD z4?|ZL93ISbmOf}dX}`ccm+qtPvrru1g?XG52elnnKN>h20OexvEHI;LjcacOB}=rV zTJXN}`d*gEt}2l;5GzZI?nrvO!n5yPUN?9119KLvEso3_nz3$SP1VA?+Gj4!FA0T| zXP$So_W#+P_nul`<8iHxmMqx5a?!S)M8G5Ppl_@KM!OW(P~Nz0FtE~?q_>S;S58wI zQLQdX)BE4FUb8AAW2Ol;gB7APCWc4gbQ22`395e4VEo)*qBMrRhqws|VhkcvmfL=& zV6GYMCr<4r{zu?2iRRWFhlQT0h~Md&}r`ucsJMUKzv56^OGWVT(7W;N9LmM`HaGjSv8B^{d<_T~~N5nl_Br_c_Yeet61#XLW&v7lsjyX~I zcClgHX%ctZi|O~8xLtelR^aR@w<}*4ep|j{`KCKgr{&kvx6k)&kgu#-HF^4*N8m#t z)m*t3J`|vn~?^(4k+8ca*K;gsBBzdBpT76GJ`d zX={#*Ap1E9vCPQ%X(usmw_Q&^XMf554fH>!+o7G3H^ClnvipP6!y*_7`m)KZttDD` zOZ}V$iac|bsVOwEuUbTWgD_d0n&HYW4l#T{F-axNEoNmT{kP_SFn`Nz8W9<>iRS@Y+>zq%Fs*JJ-OTfdD-YWgkP>Bp!h^cvBk_&5FK`}E5Xn2_~oT%hMpmv zt-n`;{sz+LagVy@xf_<9AHwHa$YgVG;>;% zjbALaIHyBD&Z%Nz5drC45(Zf&36db1g3~9`8#%GzHuA2=>6d0Jb&zTm_OZmR_}=6!|QYEbZYs5ZpY^Vqga^CdBYXfUICb$1@U z1}VrBS3kO>UGJO%bd)rV&ywAcqVg)0ZzEuJB)wQ!rwoJ2xKe3Tz^Mxd^CD%fGNhRH zq#jW|1tvF6>rhQ1Y9;6!56~~!ZP2w-J@!6KHD*RBqzN;qg{tbY)>^Q5ou?BK-#a}I zBADV6o~JyF)%Akpk-kjj4JtnXoW@8R@fJHgrakI1jZ~IHmc`}$0nR-3g>nO!r;OQp zs+MY2aC>QFzMlhzo-gqKv-j@dQC;V`_}+W&niK@AAIvl`0wCMK>I)+o+lS zg=cbhwkSB531owy@iBOL$jo47lLJ57_gEzShxh*Cx!t|)+rAX5c;;Stv%K!j&dxU{ zFHXMo!$a4)x~@^(MW;TZbc2^lNeCOc5pgN#C@y0R-YYI6qk<1m6W>H>7o~&3=^cS7 zxp-L?ZVgWs)O#_ALl8h{#1Ert9>T;ls<~H8e`}&1yWfP)PH$^P;I>mZn*fs`_mcCk zopeXp#J#}Car1~prBZ0a!Z>B-P5Kaxhg&J_rF4X;rPN;h481&t@)iqi7k!pm_|1IY z!hpyKo5r`AhyEJNX2h9&7{mSVL!5%JiRYFvKK%j52}DQ0R!__5ddVSmQ0k|&p3)9V za9nf18-g-f#%9toHg}h?!~K4E*Prm8r)|%8i9hU5`)Q1t@25O`%m1pMa>lxnr(oIq zTZlS*Jc!Nh7zB2}MOEC404{yCMk6UVG)4w^9O48-J@mIk}zzU0$ul(Y`DoECILF)!(=Cd*8W# zYfb&m?U!r%YL_o`H=SOw;xEdDF#CmJf3N$!zxx-Z?7zvkY~FI{kXTVcy<1pQ(Fz52oiPz* zj(&9tD+m}n)wsT(D+Gw+ZP24c$WdI2J1TN8VJXXMy$jHzlSWXq_O`3)n!O}wiq$n z4gOmWo6Q41G9;qeTm>9XrjyFs1R^v|c}2pWQYIU5=Zgj_b}zer{UCJNs@Lk$9AS+H zM))b2PE>azzCVNQSs8(^T&klqm%sM&fL-- zRi69ri~EBnIfnfZpet5S>#`se@8KrS*KxbOInQ_8UonmMwIzzJUh_ zCdMKY5Vt{ED=()u7?B-<3lO%(%NWdEx(!jyLtHKpEItY0w0JeRG+MYyY+piS#HxY* zv9}VsXGpg=TB!uB*T)~JvemEQliOj7;w78it+iy~{uE*v$&W=c#pZdBWRM=D^a!QL z;gUF52{tdZZ?tWT zzecXJH{H@6+x)=Fnt8s>o4xaDSH9=V+|u#ufB2Yr|NSO^DK+pVa=OH4*)KS(6ce@W zsK)&9Ic3P5|6NqFqKNihQ zZ|MeVoCa!~25OuJYMchqYQt2BX-b`xmQ&h5$s~fT^ckph*k_I3=YH7z=*`YZ zm9^6uRjqRv-T{-14v#6n`7p-a&6OkFO)KZdesVbIpL{`iZt}0)mHws`?eA*%m-Vaz zSiyEWdFoe&kn)PuD9x20;gYB?1(Oz54R2@=LiGN*!TOPUYADsFj&oSOb~4IbEqyVsc111iX*v@93HtsV0#8mr zY=zx-sE+mhxJPcic?aV03b$fU}y<{xoewAZhNbuY``B&4jfohUOPKdS>^wFz}Myy4sv zg06Lh9ZM(Rz2u$12| zF$kPvtft(NTH&&vliY6VsR*!}Ei-Z-EfZ68M2nTC;vV64v^Id!=XRP7KySmq^#{;g z_G2UWK~Cj1zq+3H zFnGug)BeIkfF3grr+~*wr>S>y=1@6qxfd(XZ4jHo*WWysind1!*!d|yyH9J6MHreY zVRA~faS)JlU(NQeg`2u#vSHOmSqYY|DD_$WiHg$Szc;mNK}s=99#__ENw4%*E4>Sr zuC_FUV~O57yB004OuJm^u)D%%|IlbzX7wU>+PCoomA>x{E?P9Gja#dD+?pkI$S-lR zrd=4f;5z(5(*G=h8SojlnBDhA+&nv>32d zo6D>L3Q#kF=qgn@srQ6Nh;FB(l`+_~> zafnWA79W9l0%AEvqw^5+Al4zW@p$rFQXiK#*B3@QU}FvEHkfzfzUwVJaNpy&<#~v+ zrTWd=aiczn78s2mf;bJa6k;vzy0sn+f9|v)PYV_MFAjRu8#-Lw{yj%5|G81`Um|4# zz6!$^pD8>4ssHr2*URHxgVe0Fa}n3M;b8>NXavUt^>&YX5F^psZj5E_7)-k{cg9Uk za906XGB3QSFG;3rs#J$D5anSA@^hrt&l_TYC~cR*O`+`=tcb-FFuBD`cm zV<*WyUy{eaLnWt5gcG%I0;G?_H210dVYeGWhP`SgPe5n%=N8uUJSbVH$y%t%TByldsL5JjE){W64K?f%+JK#x z8mwv1eA%R+8@_A}lnKG|Tf;2Bx*>F%bswe+8`{zi7VtMKf!Kkq$N`9B1vm##JLdL> zj$<@?90S=|MBVPM!mwEtu7U{+$43%pFp)ouHrNJn1|r3clfAgq{U8P2VBIa&3#NyL@D$@;*c9ZDI(0cjLxNUtgfYcu_4ocF)4XNb0wLXpc6MF2X2EYr$Sx z2>0_^uu+SlY*Na4Kn?wWFK}#J&fKIv3@i3NGpX47+aQ7aMlr)sgD>00!B_*))<<$+C4IhN~IK*cF zeHgJf*yka9vIIMO#=-k{J7aX>9%|I=6Qq7O+jTODf&Dt)NY!XHiRcdXqLE&t1TZos ztT47}iWOSC8wKjyrD$>S{-E-R^0-2?@_M@tZG1*&(aW`!Ek(cr$Hy`SwFQ_RM}vw`kmNV+JDBAN&0lse z=~&$wjLjX)+Po#{dA07ok3LWg*8EAzIcwRLUT@#lg;7}^lD$nU*jIA4qOh;z9XyhS zv4T4Vy2~DP8K%2r;>!^n4dN&}jbip7Q=wP|uhAa$vc{33v+DsRuQackETu)2siV|V zK-Uw|d14N7(ulXixgU1xb*$av^VAwE1F+Ok-Jo9{N*0!EGXge>8!er;0>Eu%vE`y! ze4KIy6^&|l2#01JT+S^%$C+NM5JCW@?M_9HJOV=j9C0eK6vBcjdL()#O7*^zIhoY$ zICF!7X|nPhU{ekNF5^V>JXT{5(n2gTr@(>79`C^7E7T)ZW1IZBVAGOWb2n~mSGPPf z$5-w!DVYVerP0>@26trHKy~}lI=B2o#rdxHXRjxy!W>PVi(}rNjq@rDD@?c1D(JUU zA632y{&%^9-yjH{>^IPqTtOXQaTlN!58^0`qfth>wOX zGUxKf;7@ZBbIS7&aW6=OME{DxwfCgwg6E>g!13Vng!)yiyY|4X+{nSPBGjzAL?G|D z^9VQNC^Jm=z|xN*|~61RI^S_*(e}Dju!aAH5m# z&N?db9{KWhOgq7EJuDUGuZIx>Cp|5Egvx~f_ptECcti95W`%%t0^3gp$#=p-AH(n_ z*a5C+);IRA2M)WBqYeCdbp$iLJ5-1w;~+u3X|qe2ZMwfVjYBYus6MY-fSNJosCpSw zCU8@{B4Dgacfh7Gy|oZn(V{%O^p+B@Jyug@6yX({gTup$vPO1RW~*idSzs)0R)Vla zN|yuzsSmbDJnRZYOlOgXF3T&T@fq>?poRiH40rcE;NRE-pLaJy{$V1gm8DeT22#!; zEOo913S;mL4S9j5p)l=Y43;I0e^NuZ&{#%jfv=}_4|O1HzcZx(`82?*j1jcKc0?sm`n$jw3gIRQ@fhY{58+#+hXuLwn!Tk^ z*;=Dl;#yUYQaiu1Sjl2I5iw7D5R)c-qwv0Z1WhsY>AI*VyzKbFl9MGDO6WZh@5GT$ z{MN?*+*@D1@vZ-hkx=fNMM7~u*F&K;&?_&}W1+Z53me%2wvqkpI#gLUl)*-(J~_=$ z#^$lh1+F?6%G4*PS<7gMr)9hsS>CuL4C-YO*{4}ZfX;RUM zrtDI=6rt2WX6cf)?%@<}AUPq(qZZBY)s8@=x#!MleY!h%w*&s9m_ra{C$1-R! zjOvyMiM4D6wh0WB9L;bQrn+|^4l!sgj6ydUCJJD5Z1PbJ9=~wuRY%a0-PD!YD&c3U zs^Xg9=9U7@x^Oe=1FNl)ngKzxopAxn$3nNZuN~TG@z+(gEb(ppkgs#o|FDNw-F@Lu zG+XT{Fa7)Xe)aGV#8_iEL~SvwAzJ(3f4Uol(LFF4^oW3Xuy?9*m?745j;B%Pcv25( zmdH`+RXz{I{K1+>l|DRv$!=`;v*`EhP3{k@cq^gQ{KEjF*~@>n`_9Q%<@QbYPR^$R^YN9d z4s!abNhL=nGVDxr5%5=mB}XOQ79{fK~5hZ0eH*qq0j7zjIZITGH&u*HsYH zr?HXbO#1N)pr4F?VyiiEk;BanO=?8Yh0Kd z1hDkEdbvYZM#rC$!ES&sutLp=n${f*bM@8^tAa2#s?uE2)rQ(^#PaNEh%-7}FD8Ic z9^5hdHi&&!;N++tGwZ~v=U7P%an_=94m0Y=ap=3w3;f!%{JWd0(IwYpWKoUm^rF|| z0<&Y*(byl<*==h_K9fv;dSoMpe!2dh)!+T@>YbB+tvG+yzv8Dn325A@-&US8n3XGZ z)T?9Bm;@HhL1gqG&w56k)?$-srl;xk6LfYqbGu2B@_UADN|H7h;C6dur6hT|SznG^ z0WO<6BFI?j+*woqCjXLo;Fbs;xJF6x^SOgVBSX}X<3rgYMWcNy+L<~#Ej>v`g5h7^K|a(#TnJLn9iRfk;^XbSxnVD zfWZ2d8FgSKj4vd{*5&zKr+y|$hGEw89FxR-e`&aj`Dwo_Vyj`N=CS~m7L`TIbnfk! zb?$BD)mwF@yvwZ^(OPw?JF1ZOsb49Flvil}tCM%~Ih8xOO1m53#1W=OD0n%a$R zq6-3^7rDX85ui#|x-U7{psM;4mBP(}mG)Xq&e%rk^pw23b_C-hs`ZjxnT|>5o5*eQ z?eg)Aw9rYL6+dlO{Ipr|OP{Bdqx1qLa{*K30W1hvJM#b*yT_RihKBp`w(!#MP?&10 z1+&@Oh=#+iw!++U2I4W081;cxc00sIh~*4jtlo#a9)@@Xw?3@v4aZx3w zBz?=hOTryd)Nv2Bhlmo9qEbR$B6uCJo5fyL-3<*;99p3mj+oMlNp%NxUMp4dSPQ1R zOXa3(z^kKOW(`eur&2d}$>otyfIN>yCq!h$ebnBt;d_+Q=PBhVy}*$bYPrFw1?JNF zHzG5GUrg}iPK&MGic!J>vCpJaHJEfphTJy$KDZDCF*=@wI1UlQAjdYw$Hhp;)K*&y zH`!{QLD0a;Nw(;PaP>KeM_hWmS>Zkf`UXKuhPtW}oMc|A&??f|1SPhxDIHttN)xO0G?I{>at;~aSwuv6m ziRZP`^V(5(B*qrwp|aFL&jd$fz5E-YpRJ{yHimp=HPtL@WoZ$E?@noA7)vx0tw9-B zwi^($W#L+l<-}H7gs+E_?jw%Jp@(mPRkH%33t|G|4(R6Xbd>wH<9j&iU3^hm8y1c% zut3ss{RMRVwGbu%>^y~|BM|pPJPOf*AF7MUJM4&fJ$)_n7g${km1)f&;z=#>TgAeQ z>6aWX-iP|cmofKPVq&Z|zpzZ|q8auUO2d>sMCtb^eS*?wD1DWZbyWR+t!A65l^&t= zIHhMOeVdX=ANzBbKmg&f?O2kX#>(0Zkqqi8{G$+C5t44H(2!MYqz5P+qjZ)ML%g2h zpibPQ6`~yC{=$up=(Yg$F$gQ}wi9AU4HU>V=YaDH#d7XM?fF_|xLsgrHps2rvITCX zF4^BcoiMaLYWQDuOXo!I-Ms0=?BXf;mDlU)+SYg1%o_M$cVKQ?lPl<`&&=*Gt7)$4 zomc&r4JGU9{~>CyMOylr+SbgAnoCNpLl&pq!h6QxRHgjiX`Ngv-_GqV1cvHCY_l`i zX1gGEL!6@Tu;B(v21upVE3l|#s=8rabK#5K5Vla2Xl#P%rA&M*%fKvj0FCJY+Sxpa zRlxTs!n!dU-z(hSszSx~=FO|Uv_)0-VzZjWKDO7p)(gKVFCr7E1Gaj(nME@*A#0+7 zg~IBJYVFI1_T?+IFPa~s2qPY=5`d{y)JCePjZ{$^sgk}&snAXYnGdgt@3H7KOd>o| zO~LedEPgi5R-O|$=OYl0p;091$H0yCS**?^fKgvc^)^>--7xq^-RmdhKl*y}?1okI zsvB2spFev|Z7AA*+MjB#?(dEMxZScU@r$%2+PZvJ$NH|SGWT+)TVKbWG%TSp=T;tX zUzScu+DN7LV6PL?)y%97D2$`<35zM`>AF!Kt443r*TMtdP1q=1@D|p>;u$Lo&v;Qf zNjKpbh%t9Yz3K+Ots5q9Y;iEr#Q_^%p^uB=S!&@~J8yeSs?o28>6}ibN(|AEsOfls zWGlvD=11jqb+h(tyk8ezU7Jzk81Amta{qKu_l{A@Q0k^+9L}Ary#Pk?-L=$+PSL4j zSv^mJyA$i|)gn)K=y{@<;2=VRGssgTulVq|kQc^VhYVYHB;x;3At~ zfOW7_QQILg)~>akS(KM9&dXM@uJB6Q8li^P6*aM%Obyl6<(exsS8;H#=48zUI-u4_ zkLNYUFXbQevyX^p%Wr8tF_r-X;qX`ko?Vy8b=M8l(dIv2M^B%Fr*qy-Q|~Hw@^~Tm z&0k)x^?Ox99mXSB+6d3!LO-u_p-ZD_Nh;@a2Tt8jLs+=?%EG;0+@y~Z!3@lh zdzkADmderbp5S0`gxcR&ZLwU%^VGugcDB7G&DO7XY4*+0@oW$mQ<>D_O{=Jst5C`$ z#%5jjo~sLa`R+kUa`L?@GGkTOKl8`>Gvzj_mP+lsad$<$B3nUgU;Lx(_O$EZN56pI zbws@DJ^KA=CsIAFt zd8_4yN9G7aD^K+jwz zF*dhYFYBm%Jj3LMtD)=X9Ju@~7wUDM-fWu&(#8{hXU-Z6_sU`)w;h3^r zU~iTnjuUg=^O*bGn%Y*C{PHLpDqyo!T@d#|43+Tk$jHtdFuVb={KswQZ1CIU<&&FH zr>#()E-f2^@)WL{^s~vv(ShGEeb=On3RBLw*Ir|9fujt7#dB}ke~k?-;Kp-H?L#>J zFuwno{Zk-9`cwN4>~y8D16lLAHyyvmg5Qj#n3Hcl9&o0d?M?$@Rk$qI)a5P#CK{Pg z-SE!MR2608PANgD6_LZEGzBro4*<*&IpWHzWg-YM$oOWux6T8GV}`Tf&)i=?7(Zb=j~GpC z{d0%Sr=hUki^Wh}VW2hT%# zv{fIab!;P2Lv$b0oMc9s7Ex#jFvz}UMOAFIzLBbmXYPGZk7j+WI=*t1*B?vxEs3UO zl}Ed}t`);t|0Xk-9v(5Qm7RgO#IdbSN)7ejnEZ_3$SX(OibmHr3In6S&|p}>39L6t zu^GTzegAbamB2WUy`9 zQA(eul%wxhKr0+)# zP9q0Hlmj^}TZ;PWKoNYZwTR3Xu&~0D1G}Q~JlQWlQtETw`hm#o#r4^tU}a=mU)PrY zx;3k6=2Vx}_1-ZjIw%3`58tJ?ZL zP+}~pX`CIJwJ7bgI7%(6%yyf3R%^H}>NOhVLAI0sM*e{kkkazQVsnECf(%TbZ@Z>o zkUWXj>VoKYvDg140}XViFkWXMrXWrh91eDCVvkzxvI#}Bnzp$_GgiIjh%Criy+LfL zPh&Kw5I@o?v|Q-H^F^-O8N*Eh9=R^$5QNvcfx1m_62Dr94R;;ruR$nN2XhO%kLNDd zU9QszWgLtUgRmGYZSJtQw22S{8}$+!^%B4|*r=D-sF&EFN%z)C`k*v1Rw2~x71Z!6 zsNq*o!>^!*UqKDO0`UkT_oaA|X%S?AD`4P4n;NeVbOicg?!1F%zw!Mg;NH@HRfp)y z@l>Eau#8Sgpc$06G;0ujqM^vsfrhx5pp9g1UE05FZC9{zb^HE(9X+#~x8C0KftpaL zzrMT68?P^4`Sbc@s;Q>W9lCAloUXDGS5K;^x5BsB9jo*9T$_tt5;(()93)KHm2eC z;Hr?i8A;vYQpgNJ_b&<`H^!9zco3hRc}vKq5e@Puq*KS*Wu(pzZZP*Y}{ zu-B%-i{S?82s8&=VPC01ej>Q>1GI3kS7d9I%`Z;A*AGX?wU*LkX#KJ8e3bnko8@}^2=5HR2Z1n^^ zS^%?`x}}%8rI)%TF3v5hxV=IdmdmEs(oCmG`5oO^?nb9c#W~G$?mE{=fywi0!*S{Z zekCsA@8LVR3zGvo_zytH0#x7a({b31`SFku5!AdVpzYjvxhZLC!)o3loLlSyM}nas z#>*W^N1KCPhT!|nY#-qI=)j&rhACmZ+>`XQdFcARo&x9%mQLd#Z@ss}OXvB-5^xNw zOm}&q6LD?1t~VFX;BeTBeef3{UIe0!k{@>{6-p!g_W}O|uL(<@87#*gmI_NFxJ8*S z@I|2R7}?R*$Yd6u0brxS?R7Jr1nuhd$^KCZYf$M3T6G&5^f-hCjtL!DEk6t1lvfQu z0(jKp`1TxjA+H*L1gNDKO|R45M}1gFVadH{e%(x8Frt1NP|n67I1Yw+g0vG&+8ugsT?cI zagV-IeHJSASG_;-D%54vHgJisGmZvw1Q#7R>a_gEt#}@9e!`=8KXTXW9q0Te-?`4e z-SO-D_sK6zc0#__DSvn8J(HcvOQOB~s{#Jd0r@im^9Vk=7qRU+i6YNxG4aEyqs*cK z{Y!bZM0}w2wM?U}(NZSD3cyayESabcE7y`OulmHvKHd?|b?H3di0Y3|iPa1d3n#(-fFmn4H#~oTM z7G2|e(MKmAMyGnzH;v8(Bi}dBhLUm{!txn`W-nByXCS@-@g^4f--I{^@hn=${RmS! zVm*T}rDw5Y-B+S}_AuSbqo~QP5Jw>PLA=bur$tMt`%w_*cyi9wI9jl!?WZ5*n4;CQ zKV@k}MRUc=uMIUsEP=b$U2gt#IQog~cem{F+A8)d&hKv7vR$r!?;qvciy zC;w*0J#tFtX8R#y`+Z#aCj--^8~8<+3m(Xa@bO6zK*Tx{U@58H@aowGaTy$a{1b+(83K$=LB$9W3CHvJ-GtBeNeZpc4v6uM)-sx6=hzvGuzqNFs`&JF3n~4QP9Xw5S5R_iO8QuY)4jA;{Kg2sI zIw9tZ9&7(O>;ufEMgKwOC(^(Ta!1{dVUzM<=spAjf~Mf2vFCoAmvpz`Jb)(9c}(~P zI0WT)!6BeTu7gAv>2+U^ityPV9%3EfN0fV+Ut*--6ZN2BtCEzOSdaK;66`y|D)zQ_ z3QKsGS00^VL#tHsbp9&VA?~G>w60A@3FqGSP5G3f%?&&ccD{dB+@F2=@iUUHm7jv5(*<+YNFy8X_#NjeoqV6$#Cv^+9>pwr=n=V7*70AC?Cf`cAfMaSo23UyB}lLgP7(%j-#*P=nrx9IF5EQ z$Qr~BiK+1}*{D&qm#__1_jic4)4n@M-}gf8T_=95%fMngo2GhqXJKHT0ocm{skR$p zscTq&x?N(8>m`G7P4&BLm_ZG9Z{y>!whTOp5oFp#?J?wLJDzBch`m>j6~N9hQ;zS8 z9F05{!9oEmI5Wgvh%*o=h$Gk#SRnR6JSJ!o*dO$8sZR1F=(-AyV@D%1?qez3>?nj4 z_jw==4RHKioK}9q1m>rvt?!v{;t8OE_czF`^6TEAY-Uc-xY^gTVOe&?!j9-y5{X#@ z9aS|wcg(fd)+HTfCGqOGqi3b3eo6Bp<<>G^)!e?+yWm}{YEzdh2g<>m591>l-!Lx-e)Ro2KWXgSNCk$`1ZpfWdP zFzgD0!6Esz$wqm_kaoVo@E@J8JoMi0Y3Da8?b6o_F51bkj=dOY00xx2fNMtYpx!I( zrUZ!AQv$A8M6a1O>LEjhDGS9I4i9rR3x%v?a2r5hGXag&=$L(ivcQ2kP*h+?8fYv3 zT6H*{^hc|mkziB_$CP`570E<(bCu6nXRi&LqMT3ppQW!UFHk;L-|@+tP00d<*{lAfE(sxjExDkm`URbf3zgT?i&!gBo=^5D#N^4b5O*@SOsMkpWopX5Or(NR8+YqiE< z*#D(EgA7iLBgj4uE2(FKFZ0l49=gm!mwD(il#hB9JFl6AR8VfC4eDhwvp8;OlBw&z z_=}m1;j`B@*+00hafGjLEDGAMJjm_0Mj#dIHefUuXbIwl26OWw;R3r!gSqO_%JF6e za+9*Sq3sI*NEn|gIX<8&f0N$uA9at<{_frqexE))SN>=0+odgBA|9Gkv4I2iE~?5S zv`=P@DhYcN|HRE`O8K2&m$R8%ntLDvR>M|XqFfV!3&39vq*`12mUb+v0%evOT6S4# z8b2}HvC%pE6DKoH_k6cw_9x_b9oawp!>nVCqjB=U%dg0X8yz$An~+X$ex;1?h=Jw@ z#VPT+SQ2!>r4uOCG6sN?7!ZwQ9fqJ-t`)J)N18pP20|>ns!B%E!|5vY87PGW0LK zn?F4C@+%+XkM!Qd(o^!MWbgn~iI_e305?d25@l^9*HIPKQ5CvP1g06Z&MNLUHqdTqodaX&`yDGg6VYe_Y4YtGk6J3Lt1Bb5 zwUO)oOT5NiKJ_c(H}zGPopA0DwXwX%IBzPTlN zOWQ3t=hnJg=iZ9TSEpBZuBHX~(47c4yPIta0VSohBmd=wq@is_{=vD_hWrN|b&k2n zzovMcmj6I?s=6Kd56}j>9r-V>OV+g^|DneE#*P{J4>s2|&qe+Ni&Bf)k^l0=$;EBR zf1oeb*N*&$R@SfVK>kCw)Zfy9{D*F>zqJGT53a6TJ(u!-eOGVy3HmKSzR17hH`DL< z%@B}N%fn6Gi9~lM9M0f>Q+QoNeci0a`npEB<^6wZe&3(|z4N^nI+SQ*Pul0LTiDdJ zu+EGBZ7ogn=FgfnIru(5%zvNnKN3FJy1QyHKfx~nlE*i@V$m3v?0i$L(spyrXv71s6%X-w>^M}c1zvZye+M*ADk~6 z-fTTuU;A(y&vW!%QGTy4>hoN@fIx6kd$mz!E};#N`Xy-go`>jBgyDnUiv3ieAr>I! z`U_5Jq!OcSDbe2TotwWKqqt@u2JnJcXS|!bA3GlS+R)%5TTp0$= zbF9Aha4Xx$7Eb+2KCZkFz)4-4Bs$(mpZXb%~`%>{(INvE3Y=Zw`P{k z5%h%od-5{LA$?550s@#=28V#`7SzVV$<`nMx|u=(OXn+4!&$_aHXS=dDk-4MPkcqY30$(Sg2~GTb^RtNi@|!yzE_w_)XyQyY!&#qZW>Tu zfcOD~Y8F5ioE2U;S+A)9CMV|H1wOugnAMBhm#Po2sC~Z>Pe{o zu0s76ano#4;A%y~JPL6HTjs||jGqmCIrPntp#Zb>3jAhzE9sY^%B_`qD-8^C#7qvj z<^;qG@UuA_I<12Y=DrxBNoP3MTd}r+TE*>^+bZ_~L8gyxlc13e`VF82fS`&&usEiz zT)x|%Xs&4PJ~eqcw0z0z`gpY67m40d*W3U7Xxp5Ya8z;jr#^eO79Aa#2oQ!@C^)lRqBrj1*U2>a}bJM z{BEb;OPPov0B!qTJ)#!-3s0VrR@9h|yOX;Zyc|?U(aPSI#QMoGA;?WHLNKqe$r04T zcs+U5;xTE~5Br4r2D5BC*a%l@XRs?b|E>ny;%*g%Dq9K%tf#`yhF=L&?|LfoY~+;) zS4kg~{Tl+)e|n{Ta~7w~v9 z$=+xpd{5ZiTlZm)!60|H_4GNdORNswzecFde~xx-C6Y&0icG0Yl6n%}sRJ6jg`gvs z-It711FS6Pt~vn0Y^f(9EHV=vd=Deqw;-Ofh|6tx)nQ~{elwfspj1}JAzp9`yAam~ z4O`Tu4?&;(4#Y(bx@s7xrPJN--@$jX)u2I_oRlvBy2Qu`$hHYojoG6kggNq555}Uu zmil$5{l3To8ozIp^5XuR^v}eUAgzdHPqo*$l=c?+a~oE@@tgJyU$z*6gNeDfS~qT- zB{xj|^8?vgcgD?v%Vz3VN-wQl=g2Sc?Q65Zb;)A1fH(v(Mq(_>Y~WeMe2qaIs)gUM zJ~m|CP_iQH-rB6dvrsFGF{G!H=!5dTjI+_s@Eo*WaPG6_lFgx44XFA(nRvtel%5 z4$gwtGvIQ^X45ibHWn?j3(Jm8&^1g!9E5lqTSJ$J)@)SICet-lG0j4S&eE~NW>LM< z*X5q5M#mx?G-856k{4IOR=iajkO}P-E*-ssO60&9?>(Xtl*JzcV>ip6psWr#BQ1 zty{HyyQ3^LB3r_h>o?3s<_U>gLpZU{f^k0eSxNvaX8i8lQ7TX|R8BS#3PJynnfO zUS)Nq&wh)=X)|^ABo=#@bNh>vn5(=fRY(nTlh}=y)2#e<`BXVfYrwtVRW7`J!$7?d zT;Ed=jNx>sgnzu`H(i6vj~^Z*Abcs;;Aj9^U%`>CRq$-Tlrmqt**?3#M&LI21&H%l z)kN-U)!TsZyj*pqO5sg}fKqk)qU^OEfvFypX6jx{`e1g>txIfA2umksw({#w+>aAOIB_VkHGy%YtQa@m zAp14Gsn(X(8W|?g77jFQQsM*YP1!kjt!&D!y1QlV`1r`cz<}(Cw73T2JuUI@tS)(- zJZ!Ugv$ypuSTiTkzx1JpmiEhc8kNa^c2;*brdnc7Ve8TAN--;~|L^nv*Pp4c^iN%r z&nPcTl~TR@UIE2sJm$@KyS;{Cz{`kLl%2PKV%DeQ1LMm|^w9SEK zV*Ik@ish=sFq(VYG6hs;7q*Uq56HrF3P|9nD7a?(iX zq><1m^;23;X$PhKlq}SHXrQID{E~;pW{=cLsh84PO1cA|MMSJq-@|@;VVM-6Og2!O zM`;D6J19+O6|oMh&lvf(LCR(wrMZ;)D6ONkozeq(_RA?3NlI;$mQos`w3X6c&K+m0 zj51b687rfVl~KmZC}U-mu`*=r3z#R)Kpe#!`_p>4fMaDzwQEeP7^Ahp+%ShpS1aWO zvV5j|Sxt9GbIn>`O(v3EFnC9GFf`vcx5DEnFDseb5-qLhTDZNjartCpcb#|M{N-O< z_wmLmzg_-qb=2ZdL|%(bLwo_jHzo+3DQ%CM zg~)4kX`>9&NVh6=!zoPlihoZd;-Z8^!GTcycdzhnsWT$r`%;tf+Rb8?nC(aZz&_Zn z_eD9xhY&4cp<;)_0s5RdpL@{!2vE`g+&lpZE+V=41dWQ0Reo7dTj8-TmXzKP#onKMf9!8bl)CQL_vCydAoZNZn9a0{;k(Qaj-z z^&md(DENvUfLM$2d>vkaTM%$R1ck#9#~COb?k^x1uZPcNxIA6nSq{}^MY5u;0tfMA zye$s>Wuh)IH(_9{Yk8`?ea2a#czwJBXN42#L?@jkSNW?F8kCnDXh{Lq?ssWEmA{i) zC%-r8=`uPtb;yGqCi?gB_g7nXuE}p6nOv&8G`Z-`VfmZybt-l5qjwY-MM-&$;Y-SM zl7&XnzvWV_@In&K>(S3WrTk8*JErEP1E9vRyDIeGgR=5>8;@~kL3V4%!a zA~fp7BoP%B)OljYU8S+o3_SjKVb?n#SYx2H9ya)V?dK;E+>72J^dAf1M=8oD=&Y%BD zDvRLMFO`(?4wb}g`S*(vQ5@wo2yu!;F7J8+fNOCV5H}&lv?wV4POwyPj1)E|akRMn zxGN9~WDqTZjgfj0VhV9qR{~cNL3a{g3_!#Xan%iB5^+){;4@#UE39%Ws2nS9@Nchx zEf_6Nja9Ipb_K&z&N{BT4FxpwK2p*Ed;nTnYYQwD` zz^zZ?u16sDk&v4V7C2uNu{5-)F{XP?aRAZ+MgFdNPXD^JVlbO;`RMv=)2+J~-Mc%v za?dT9jL#Y9nw?(W7AuW4*Unp&@yfqx>1`-e6mw}f5LR)ppOw`~!C{aFuQj zM$>(FcZ8a1{5^LcU?0)B$|F3koGSQ;j&~ad44VuF;U}7N8Da)yPws-@B0NQR6+vlL zx9%DWZ5QjkM%9a&&*&cJx5m-1`i2=65q878nd>`i-tC%ysPJ>Oy_<49vWZ^^5VTLg@zHLpI1J=4dh@i&~e ziieAJu`{0o&pox})6OqAmC;{6%B7`4_;mxQtFHcE*R4xV{wdW}gPfA5WboeAX?B=#w5bf@ngSW$IYE#i=>ou+4zB{OtKXJ#u)jj>N{Nn%E`9b+_-s_b253$cghxDZ3UL`73NiEVs`ER&PtV0&6Ig+Cdh9fb!S-p&i^i@jEqarQCLbAkUMF@+5~mtMS;kSsC4xc=n3o? z%f7R2CkIDwb?=2o^T*sG62;52ekD^!%{MScp3{A44jnZXrg;Fxj@wKjQ$0fEPoV4{ zL1m$njF*&zOVS9i1MRH(aiBk2?Lm8;-7uY(>`l;9-g`9V6-_ADP#%aF+E@M^m)HL zFcWSspy^4V@QNA|JX7#Ss!5jrJT=;rTs$XQ*}5!!%e^((4|gXQW+TzozJ}zY_Qvn~ zlNDvoNL?g-N5YwCY?<7JFS_S64OLbS$)R}*!r9)2S^X`M1=;z{beyK+3SU*D-BnQ+ z@+B(D>Su*#Rr!A4u1p1Hb+*;DE#SWR{i&?1DzDHU^j%@wlo<8E*uar;A}UT;M>w+J zqEj>(+G?Hh71ozCHZb~#L>v3uADrj4+hHo|V&2)k(`?AD_Z)3jphq_mvU z21+{t-zo?k-1HPTJ;hB=ann<9O`u?R!nUAnM)c=9%LnS0g=r@cN=N$#68(|#@a#x^ z<(%94UH0WACD~48@#^L7l9eTnOvlueR4u)#Smh}tDcvaz$!3yIOSO1K;Reioa{#kX zB%kYv3?d@`Nk)Cecq{eLm1}6{`y7uAE*fuLF;~Wg@s>ezCxlAUP~sAp)oem^x=O@a zU6mDd`b!S_(r9pK`W2eVEc`*WI+$MCF8-A|nYz48{PXaon9jU;CZ)w(NPCkB4Z0h{ zJB|06&ELyPA6i4Y6{a_KF`PR|Cp?B*+FL9w{u)j-?KQ0}?KKVWb>H6e`%kA|dvEF5 zr5}5`;dS{hA9`rbx;3Bt4AqxQGSZUQC}k*hQyLKb zoV$!dy{@no-L1{^b~>~(qqvxQb3?YRHjw|=9)^YH(>5LWg(+l31e960H3&NH1599N zc4!8B&`alYK0__Mv}uk20goccSJWK>S_V_@VLXB;JOPZCowfrg z4IqFBmK@=YK;7IX=xJ<4WN>q} zLzb-;_@7xG#gM>dlY7MeIPhTB+jrOzr=lLAVo8`%iFQ8({mJi6?yQ#|tD787%TyYZ z@7Di#qW|xoE|vz$qlVTK7Ud-xxLneYM6{Pet6`TCQ!D7(a{q(v77WVzutvvtHhTFuU~( zzk-Ia-=a4J>`>GpY<`Xk^DU#AAF!Q3MKR#@PPXS7ye(c!J8iGw3)CXlHT>vD4OhSa z!TV!M{GR*bN{Kuo@18uZe)(HN>nKTj4AxJXzx~4hC0~W>dcKN0bYa6q_V52gY6{oQ zs3{O0r!!N4(tA2Fg^u@x*eNM0{apCBcyu4vtnTE38WEa5_VpF$ksgkjWRG8eUVXbr zUd;Q|8A`b8$+)RkFtUM(wI?Arz@OFfP+8F!pF12mjn&HQSQ@lN^Z=X`#4?CS5o~im z#OoZ$!{OO#f_@smKZ1)5(=Wy)xx*EwD-;pBlMsyOynHBCIPT1^lea1Ly$jug_R86b zaC16p*|^ajU9%v&w5fd64<44Q8@kgzPkdIzRA&ny>sw{N&f`#lN^E$tOt7;U4IsI<9aGTjxq#rh z$*~KO!7eEM21w*CI4I`ZD%k-vrXJPJ3tIfTa(5SGBbEmo=6o zn&-zVJLfbw4cp_@sYsxrG3Itwq@!#HSv*xGn`ltMeovIa&*je=wn`;}vl&hX=o%Pk z-_ZQ%M%j;!b}{;XMdBfk2ExO_WsTPOOjb4pXAfHK@5yyr2dv5-hQ+`aqq&3Dla%d+ zPAU^Cm5G(g#7ggMr82QnnOK=pm=NzMPRP#oiMeLD_kx2-ZZEQaCr z-j;yBCIjZb*1za~WaC1gf9VFp*3F?zO?5UbY;E(VOwxCz{@h?z{&ZR^Fl2NrJ1xG5 zey^4^6#DCeh4l9FGwJ(=HMFlgqx)BCs0){Qx|mSM%xoy`p>6cdoWjk+xwtuNM)Wsr zo4GV>bORfehK*j@Mz3w7(qOa@SOdm0wr<;i&9FzHqPT1*N!v+`n!8{k$OClFFd+i1 zMvH+XSnbVER#&G|)zwKuv^*X!55{6Vm&{kbD%TrsXHJ!0YHxv@KWP@KKL_hg%O*I7 z>LwdU5-dc{43skiwOs?XT?SaVVz>%7PFBMVW4HwX9s)rOSU+cHFN6g~k=9b$Lg{`= zhbf(=^aV;^r(_-GlZ+EAbar)i&F@@FtKVQK6fnq% z*^TMiY*W%zp78knT3`8z{DfhZ6p$~@tbZysUQ^}{x=sS)W=g}j8C5Sr>~hI_#xt&N z*MN(vau>e3?2<)qzztkf|1PS37nQP$O4)__&%3y8>7)!5cQ>W$tH3O@GZVtyik+;$ z{>%tsn8C(l_KdyTZrGE%Y`DSL8Pd{=$Ss1`yCyAm_-vI~j6X>rmX zL#9HNsZeDqR9S*%?gS+>GT$!2CBiA)PH7vZeUy$;G7pb$FMFWuSeXH5frO`@(t1ie zDD9_ooRS$k8NklT)Bt2^05UZInHqph4M2Os&1{gz#S;Eq!cT)t!UlDIyff^tPu6-$D@#L_EkS=B9hcR541svS?zERUT7sSu zXNl9p<7QS4Ns_@V&$(`l(AQ7`e-v1WOF4cxp~VlMDZ~$7=*1uj;p*i;WR4&HjncvK z!@XLJ^P7bj=R5*d-SK#Q8V?5IlO?`?y>|b{it))npif$4bPQ>*gn1!VX6Nef?(}+X0m5tF2$Qacwexp@ch)Hwo?n{0HL!m_SV-dZ< z7N8At2&bS{y$43WBc*3bg(nEyJ(A8g=qYg?V&01<7+P9e*zH4)bgwByzt>nsHvi%m zTD1FSj(s0dR`1-oe6NUhe^(2Cw^Dgykj*eJ$d4t#x7EaaTQRLXZNNjij56;As!<+C zPYU!MLHde;zDT-t1K$>nuxbzZtgbDYBL0Jg(Tkjh6LdjlW;-(<(`hc zW0hcqiqOt0BF%-pewe?kpf4-v%L@9kqDZ?HkwTQ}DRsR6xzlL3rlIUy$Gx>;mCqkb z_{=x(Z#6Om67%wAU>jS)E;1sRtXNs zkpc}7i9I=&JqGN~Q}`ka(W5a+?a?`jJXH+P-%&>LWyml|^X7zp!82V&G#!ewm(p5Ftkns@O@&eirG855DHXW6N~JWVPD;xu zZJ@;0gz20#rA|uADQ)0uywk|KrV#|{)pFJnsIO}2^%R%_y{i_c7dDhD&fkwW*Lnk` zKb?krbkz~{H1@ZjpN0p#Rl@_uIP*tTUk%c=u&GFU)IQMggYf zcLk{9E5<4m4P!xII8~un_tp#o8{(vb>xS)(Z!_LG+c?ssa1+k zd08>b&q#t-VwL=|Qcj=0A_+X}Dy0wj<22a_JnAa>C(P~h)HE)lC4!4cGAl3NAxTAU zq4Nc9q0t3;KHW?8df$KCvmG6v|iJ|H~ThP*Qnu5kIAKvve=7Szr!wus%Kqj?#N}6J)k9VfiU`fx~d@7$puJt_gyCP;I zDeWBi4f3*7l3vizyvLd*#;V<8U3oR$1)fldx4YoZ4iSU6fbX(hF!)03rjKLu^Qvn; zSeoYd%vXlTN9OOIe`r1&DB$CoPrxLckoQn0a8rMZQ_526p)^RzvDwST6zDhSl$cK`d^{j z9Fh*qEb%;wdUif{X!fbuRHEIp>9P6QZ_sgWZ1(fBmC><={PbdN%ICV92Ab&9fhKu$ zJl2$H>TWXNwN6S+(gjKvDP5*?g_3Dlz1W0&lF;%d%71CG{MWw;R<0#irN7eA)Lqpy z)HUT%3Cr@TvNqS_=IK9bg!}M_YRd9Q*SH4usJm zNoo+x5lKKCF)n^?Ah`)0EUP2oiw>sud-2R|+B2#49@NJaw4dqEd0Bss^6Gm19kOkh z1lw+Shiw{GKi%)3KK@*3p=Wou47316umx?i<&BmCR(;_a0+U~PbwEe%x!8KS75Q(K zXXg25;u%s(@BwhII7q$Xu+9q*OJ?xmaYp~ok0sq>EAqMgiZ@o!mzfpF%!&az&be2_ z@$b-zQ!9Afsn3kH=Ev&YV|~;?`Ud*YLHe-Q>XSw1=%Y5%M{TB$+Dsp{nLc3D#`-dS z-F>wGdcKc4i2hFKA9yG9k2`*f66w7vxL|pF(z-_O!m^9YFbtw|hz`NMg?j@v(ks;H zuTpxO(iA1*@8}sbI>q~U1s65#@e4~XF1fsfR*BFBpfYJ zn=$WNRCWb!7rTE-&)CYq7BG$p$)_UCY((d_-EEl{nFs%d>_@?z}E_G zKtHW`&u!wK68iJsNX6@4)~{Dym0m4e55OsrDPY4MQvMh^Z4I|H2oJ9}G~S6}^)kdR zJ-!b>f;1p%ybYtwXixj2UGUFhZ0v*Z*>b^aFW|l;8?Rvl8qi~70`UD)*ZD*!UpPM& z&Wu%}wkt9>avv558So)WAENjW6ySC?LDn9neeQIq*c7$vc1p`A-A-v6V?MA2)*`i0 zT1sh%(pF0RLyFdo?Ua^Lx}DNCN(FPSh1Tg7TBloRoer`Diw-VprA5D$7X4OQX;`Hl ze2rXFYA7JeHZPDFQ&z*O`^ALG>5KTnOMofsbOb{|yDRK-8ssNnW>7ZY{n>{$CjcnB z#$fY%!|RTH=c59ak8x!`qReGp*E-=551Ye9KpPIg_4g!vIyItWCOmo`-oIY4u>xV? z_({(N&qa@cQ5)q6^$6UOz6xVmiwr1PgjE{>qoPH#fwBRg+-z{w5%8G&q{wYN!;|qw z_5*zIG8+}JE1k?!2{x+fxUweceoBWaou&j_SyMUOY}P|f2jYeGQqF1$niRo8Cfv=B zQ98?~GlZ;JdXUm1lpbdvsoXNx?Jk9?VkT^?UJZ}lh#D*3(YMfj+jVfU0!mO)sBbkX zCk@+ZJV+^X1&U`7k%?&kSJ4wTL9p{@w|2A#9yNuIp-Ajg<3?yYBYr*!@dgAU)zuh| zp2yMiI64F`pWT*27MjT3!M749sp-N!C`S+7&}4zz?f4f>mvD~uK65LmSLjtARfOHl z!~slBVW*>!q7$ssj{{TiRo{<%$|(EA`KTlMqyv;rP@;9`vj|ptyLJkkSFTzp<7-di z__E-`yPhCxfcfy$UEt8lfE}xr!#rv^%p>fk*Pjj^pl*kQ;9R%`9!K0I(13w13zP0% zzvitoUS6IoZ!0&9s@veZ6J#$Q420W(HtH?2w6x1J6fW&G7P+RZT{ji+pz$4>saf8- zpl_8g2<3~}n4LV=^@6D-oo+F$ajsiEu%$$KZnA0RfPCe>#^GUI5p(61fyox-xo2t< zi5gG)g0?QS+jUdT3gQ_;(k%HQ;q3-S`Ampf(-pXz9@Mz)Fi0p8lQ?XGq4XfUFc0D= z1E);*W5N~FL#LTMT9oUUb3&D1HuiZ$Sa^to_-BRq_gR_o*sRQ~?pf40X@sA}I4xt? zcDN8UdJ5usz_!%p)k96%vPYFN+_dU4H)?JI^dWFV(+Y6YIz6-D$a=#$52VlI5E+D~ zz765h#Hc!eqrp0`qk$%>j_bb;4%Vpu+Cu$*kz)%A;RgpG9)WM@GTZI8Z7{)~K?}GK z)%|F>?!LuM;3>v!9$#+TVB1M2aue`g-vkV30tOzTH2rrfXR$Z^&putxQ)-|6>t#nx zo?xu3EEe>b`s~9CW1X2Qv*Mh5b>n)uV>;q>?dB*_AC~;S^5s0$DTwvP;ybPib2apVl=m@W*5GAr)K(E z1Z&)FVvWmd5p^2x(98OImewLi3(t4WDROBs{|45RG~Y45)CY7%qXii?vj9(~jpEqy zBA*?24QL&yl!|p^^IK8}pWi^cX!uP}LAXFjmch{}61h_iPd3ojxgF-AIke8C42<;@ z)|t@w_j6e_3cc21UGskdF5PZN+)>zn?V(Gk%oVfr^P(Mq_009G7hOj}@IwjSD#@bz z3&49w9fRBOE*%nDgLxJnM(Y2r>{?@^xUTTMGqaCb*6a1I*Nb=8>-8GjYn!kR#F&&4 zyVSf>%%dfRcw>^bCMcm`Q#Bxd&{h_OB4H{a5~pfFk@|qBHLToKBa#?ZY6WT~kW#gz zvIKuB(Wg;Uq9T=S&v)+3?5>@nR&a)4X722LoO|cqbH8&wU3e7QiqS>o0m1B!!TuHK z7^dQV)J?Zaamj$EK(lg}tZ9-LKboB#l-uO=$+dr{%&qRp}!{ za}^LXL9YtQqx-a_XWcphbKWz%njDPIFz&K|3r(@rd2rFi+> z{<1aQLdw%A(zjNcyQ(~0q`L1^v3q01m}YVRp0ikhN9K@>TlGZ@pR&O9alu|A zso>?M&Q@1N^mC@z!OnmdYQd9Q7Em1^M??73fno=K@YOU`t){7JwfF(a&q#jBTfzWy zbyM$))0nQPbQaUcMA7nOXj+;PZ;@Of`8Av zFxIq1dLq~%OP)=_DGUy>qwfJj&8um~^y~o*PFrmcX;}d&)-l`}v^K9WdwY_7 z3-*e%I81VaWP-#{%)C9_%AcD3;l%eurN>S@UAMTou6KRw#+cvV z{9JE#;}eO#Y-&aO!pAm!Y5DSjl;7~`$RlK6_Hu?3ASkyx~2<)YP} zuUX)#?|iDWcV|z1B#`vhnf}0*O&gy2Bzs}K-P^|<8zJixY=qj+m5tD4KO=hVXBNv7 z;-}j4x<_jw-Q8A+GU5BH=zbmDPxJkGD3dCukKkQ$i}pON1o&MN?|hTer0tlc!p-(% zn{-q;C@^(`m3|eaucP#7D}9>Nci7Rh1mG&6n^V=H#*j9T_|$pN3v#`9PouS_@XgD! zJ#n)0OwY!FeLjhJ}1*B^Jg*Umq>B1A+wRLTY$3OMr$6ru;k`}&5)QEnoh5p|lz#+!) zSrLh&6|qgb-K{H|qYa(4iAH}zI38^pu1mCL;vLD5k?}T0T?uPnRJ$j8^mzL1bed{GC;}4OoMMzOI#=UfaFiyDs=HlI@ti9Xp+6SI6~v! z1v;7g^aBz%Zno3O+*I(Yc8@+P$#~z?&EIFBJIGOtgTy-)J3F!&B;$D2}1V~hj)vpl6g&GAhy zmPgeC80?Pn44VsIGjbL}EJTlltVb$Cni`60!A7Z-U~9m!QJDd1cqHy^>ZWzjOOZT}8VK)jb0!1GgagF2_$z9F`_Z0yI4`xH8^}_Bef;3)`#tYJTfu#Xyys-O< zn3w7>ZjL@Gbqimb9)f!y@5bc7IC8b%OfHQ@0^PD+p z>Wb>QvVlo;JTrwYp52}U2q7vwK~D;tK&N4bN_o0GjEU4qarAKvLq)Vbk42MoC}efG zegZs)OVhfgL^}P3J`W!U@SHVJEtoe@?N`IEi(SG@2WC5_p8=L}%zK92-U_$OyXL=C zQT9^y50jiAnLtrS@()O(3#M6bwwpS(DD7Jp1V%b~M2$E-IDGTvef|GF`298dwqR~w zFvmKm3;DXZ!Dw1+R{Iq=T<2UvGep{z+%gg#6Q6&w2 zUlr*zuuiwDW&v{QV)Xt^xQ^!Xb+iziDu`bRny@pg(lK0Z!PU=-?R1r?n`U^R!>rpw z1D%HkIuFVXYa$Tz?0*JNG!BWFpT=03#aKCs!wnzxhI2UV_rYG~EBZ91=B0toH}10r zIv=&2kDA9v&Euoy@lo^m6b#scLo1NGZyqK(|33QG`%pfgiG@b~7S8Vj0O_R*;R<8d zM1@^T-&1D2QgydZp3$y>Ta4>2OmzpACS~VFwY@6X$_?+Es|%Q4CjTQ9<1&DFg_d`I zeil%&qk(Y*n79E9-Xso;#yg7pSsc!TQY{tWmQ-~02-pqJe%Fk`1yTFXG1Q#;B&*D| zdA1iS%R=lWY1c(edCinX2Ry9;1A;~eMm87!11r2agYQTU0xQ92`wgJ>MTt%?K$E3F zb-6{%UdymEgz_zgK@7ZZ#!VE2z76L>TqX`q=fitTfYN&5r-8{&1CyTyCO-{Ke(GR; z8x0zz(>9VG62v2YhGY-lmNm`lPxrEN_QHS`(V~NY85|tkJG}bkbRzXkwqse`)T$nS z2(BJEy}4=Y#`^I3nutH%o4<{VAgCw^NJk(bOU`GQIdkUB%$e`ZoHO~Ji3+mz=9#wQBpIo*uws(uil2xf5{W8zw2G* z8%pVxr2Q7FTe`>IiudWxRo%1WZYkbtUG4cO#U*nPoG`iXp5$IB-I_3jOeyA_^o<6O zd!>8T&W7r$3iqC%i}1U_~&ym`YF7ZZ(s9uI(h932!+G_I|Ni_zXQ-TWe7j zS|ey#=%Kw=V8>%8zS9BoiNx!Yawg(EqNo>x*M?Yzr+UO_HMVg}OUe)p$crxDNhZ=} z&%*Niv2)8_3Lq#E$e|&!Y zWO#UY*wfF0MKF!k;HQ40JK?))*^`dPRYwhdiX({J3Zuf3zJiKCxO%|_6tQLdk-%Eosg zXb)fQ6BV|w3C+}?F83`4uM1VgOeT(S)GEBFd!)hx8kZ7|QFPxukClVIX0BjCjyh7p z^=@jUzu~Uf)Y}st-yQ1s{d}LeD$GZ{k;vBEFRQRnX%szIo za7-QMaFo;;m8T@07ru+!CfC|fp^`Xy&pceuQ$Vh5szTjlG~9d}a?Cfs-Kav^WMa-d z#K}W8zr(vi&JrD94i~z4%C$a9H9X~Ik^=Zn%uJ8tYZY$&BMnEDryMG_DSLXl*2=!( zDR&4p4Q*G50WC{uHcB13d9>-~p(b~AshdIulY3p;7FCii-sH?Kx;^B{3J&k8kjx)7 zNNr4ewZnJH^R#(B?}Gh*z9wcdMl)s{aq1lUnKz!N*Ft?ey~2}@{qm!jF8RwV{ds&8=T$E-XxSf zalUTWm{2<9>~B_UT=Kx#-mJm6^u4pU8RN!NXBV@k52dTlkfGPdN}`-?h3r!<7dNyk zqBcjEy}6fARN`_YWnjAOw##+1fe#6VFK#CkSMxX@b*;^-5b+(o@G+F+#}+nfBYf8h ztFqL@RMFSie_6I`-)zNutC@;YW!$wbd__N_mxC%vzU%TjXY<>2S@6$ zK0*<~MJ&aUJP0jAideG_YWchrxf(WT<5MAGqceEHr$ofIY0%xLI?Y;YP}ipj`1#|( z>pqofHjaa)K4odP=s|y<8VhT_L2aKxi>rx)_CBvHY)l4?d`c~B`v$#z5X08WgXevU zhp(0ox*S8fma8ooRJARY1uj@tbuE>%E@%Zdib6hYD>`X7` za}GjWlOJd!gd=VgjA^Oc6$}Xx9EP7Q(KE=%jH*iM5yS53G<~nINrM3^J3}Rhx$R&;nL#$XTp3FYR``0g& z`5Uppk5#;yepQrToLz+|50I?i9>g!E@Px1s=)`)_i4~$0GH2dp$RX1?Gjm6(*D~Pp zdoxwLfK?5U$SP5Bc21#ix^;}nNPSwm%P0iHk{@0rJ(lx0_osZ1=+niysgeq#cbN07 z+P&|-k}IrzoF9R%^pkszUh&U|GlF9D@xc6I%yIHY;K~k0FQ?V{a-dWh5y_j;uT?jr zx26J-TJLR)f3H=8YrTCGce$Q<({Z*!V4Je!>`(hF5+1kR^D@1c@A=l-pt4i9Pj&Wq zwmJH~8tT61<5bBh;e+V2syeNzKXt}=M3;CzPLo^|zK%YtrZcGewlhvtJ*HNUDf--E z&cob~BQ69Bo(k!uoLjl~^3T0$RlV9dcBJW}Qp_v7g72#BlKNFwvHG`n=MW-~k6blo zYe;>_w`0jb#JuSe-g1x|qOfx!(|q=^%3*m~=~Gt(-nPaXhn5_9yn}01TfDjcG)ZyA zak8r!9tVMdEgrkqg18yC(08XKzv6*L+aRa@)$eSd-xDU6T*Q3%2d6=D zSN)Nuk$3$IcPfb9!QSZ+nO4$)7Od>%)#%|1ks#4L43FL^^S`}K;o#GT$cH?q6r|1x zx;Pc64u0S{C(8J=^10x)Pq9x$0aPntUp_rqvRpX4P23&Q19_zpkvo)=l@Y_26 zh0TKd?_GUwyfxYO>Ph`@CQSBc&eM`l-$^~uJh-a+-0(`1HfLS1D`5ksgIxh=+#Vkl zuof-tLwIf={~`sy)BLh>prC!$1#egLf$@&Gi$kRui&wgRWUo~j^WSk-kl5dF{~@p9 z#xNg%=|c_w;$sE<{RcEWS+n1y;1)UaN6)D0NT=4gMk ze=N&bhkMDM-|F^2THbcn@*u~jfx=R}u7YNJPVhn=^}Ck;e8zSgON97NZFk`q4;KOf@6~vL zEt3cV;aH)o?`mgp>CknudNx@DgG;TcsewQstTY=`jY%iP#|i~YqGQOKJ-!*l;f!sN z45G4@*aEdFgEbH);uQ-iA!35l7pMnjo{xyJY7AHL9qrIO1z)0ScV8%I?FZ?39yQ!i za#qjM$j0Ql>|9NV`+dm40F|X;%$VOK1pXxEtrV5WM&()0MToINI=N^Dn5+ywXXG`q zi8HARK@6ceU<^ZO9BD;UPK1Mns7HMWLg*qW12f>!n|rLkydU;@#DU&C19~d9N;_~( zzQzZz6}JT(UU~(Kg{Z9Gpx5EIQk^Ng380f=PjqH&@%$R1pg1aWY%7wdX^?K99!Axx zHDO)X>t4}y2rJ%XW3*` zhm@m~=7pzc)Gab1@Gb#Kay|9|w=JLaU290XbUmsDy(V+Uywora(dhcJZ$Nogwi38v z_}K6x%n5CjYJ->&`VrSK^AUs^$O4ml7lgArY-VgG9uhNz-bNNK zrzSd+hJs3%$k0+uTt-)eFW>l7KzE`u?7b#>R-0ViNeh$!ZrUP(x{-!3jcz|{6uqBp z(_JvQ!a3vCjl!eocd4ASbmuPmZEDO6{YD$zfX-<~+t$%7+|j#P_N{V&npRWw9PksY z?F5v<_&&m3DqknKQPT=%S>sApo=Ncvs?kPjC(arLL_wR}Yvxr@wlFxPP62kpZLp|^ zY}{?O0J3&deIvHASf==~aOxOB4>oymO@Vq~1&J|qrYkm)JSAzjWr5%A+(vbxQy)^5 z7vM#{0|-B3GO@?7o4!ZXh8}{|Kgqk@u?W^pfEQD5Ms~+W058loO^_Do>|{!o-y~JD zAl7r70BfhYBtP;e@9x(o2ssy4)8R#Q!!kn`I><4m7$BWr@F#30=bgpSp2Q~ZN|KEm z_)qZfErZ325-HU4-9699&|Hi)D*KHpt6Hk(J4r3EtpoCNA!A!PZ&7uEIf`Nkw2R$b zbdgdGTfKzoYw5h#;%a)xxC|bj2Oly+yAC*WW`#}M>d6v)6hpY871Q(3R*VgeYtrJx zLlv)`6njavmgmOXsSJjUCBCs@))*$M%p@)6t=8U5#~Ni3NH+>ZN_LlrVJJ5A zfk~OOt7-v>c`099pf*^wAVi>Sf^-phhD-*W@D3Qzmf<@X<yHl_~lpriU*RM5Hq{k=P3$VTj$D zw?oEo>&D$oLCZiSe7)EP9x`^3JfFcCDk;VWxA^E83poPb&RQq6)|+viocaj4V1zuQ zBkcJucVrng(-Jb)%T~Y+cX(GOTE_`307z?ATV|}Pv2;Iyto0UkN7%}dCA&ZfT&^M7a=oVO%OA|e=n5sa1Mx?VWHfRuu4JNk@6$i-!aBE^QXJcQep`xqq zfQL%JA@I`+G2LB_hI@gC*kT8ZMk_Q@w0O#oV*W--C70M3p& zemZQHuZ|0dheWL(f~41+uzKt`tGd1ml2mijirsM~Vl2?PL?^ZGS&w34$J<|a3%XUe zg5wbbshPcLnY~`2HP`Q(9@jz7Znk*r*4yTFSFTqEFO4`O)A{I}6JBG;B(k(MzqqfT zop7AIAEB*0%RBs34G$rs9AK|&>S(c$M5@AY>6B(*%y5Ly8jH}vGW)SX))}Uw_izzp z;1UIA|Bva0FJpSMDa5RqvDcT^PH(mahEFGuzJEp`K;2_kjW#8_CT#sD2#BwS50+Uj z0wWS@1dx)wDoZ^#qp14bArhRz>~SKCwg?b=Kq^O%O+XP5k&zvcqGd>=LAq6tzDMou zVpt%ReSkjD%%sEQeF2{BIID+$ztc*GY&k!?EkM(*GYi5OK$n}*HnS|ZulJ8W4lf8* zhaKIyYNFMYTBnkh5$_dl&?|7oL$mlyY8K8bNbYUHP zeFIJlEP-i|_>s&MuL##(k@Xs?TQSHQWdm!jX&bReIbsR}dpIat)RwsyL$KW2Cbs|; z2``>nsOw=Oi$=qnYb1Me$(n7@Ths&O17vrdz&AbVUbnKxxi(wW(u4A!>C8AvDoTWC zLrO4i%)dO^lTwo<%g>n!Zxl`)+tI`}aOiL`Om%I!@I;RoQG>Tr{YJQ^fYJh~3DUIr z32Zms8nc+8!(`jEISRH5zo9ohrl-$AcH_P7+_w#C1hEC|kMuayz2>Ne>;RLjVvtHxWbY#Hc zbeB896&eki_0VP*XR%nc`mM`b;g{~*z6N>&y$`uht(XAW&?hX(kFzv*%5UA-3U|J9 z2N0`S8Iqg0?G`Hs(-^Fu=+|5b+kNyACrgePr^(_ool`F~L@S2321rM)`i+(e92KcS zX#xli!B-IV*bf{5wYhRdlD09d`QuzgM|E%|CnE4sBXsVP$!mZX%#yd}25d4c$lHqB zL?Zx|x=Swx_jaNhuOhF}xe=|EvZ2Sazp2_WAU>CcKLCjo%>r~IR(d@(ah%LfyH133 zmUnmE=BFEXXD!&)GQoE!h=6ElMP?g*JK|hH&wMAH zB~K++I)+K(=INC#*R8#N456Pma|Cg+;H?wB(%1dJ{NM{O zobX^g_)IMqIM0Y~ZW+UE->XC3NtU2%2vd2F+|1bA1?Ln{8H{-;W-n$BT3Rzyp}7}8 z-u9%2>v*QESI@sgTV!jBd3cW=o1A;bFuHCxpAZKL1FodeJDWMdEGu+xRBUel|0>`E zU!)6y2mQ=(S4<17x( zJOpfjE~-t?yVN6Oo^|_xT0-9`O-e8((`qX;8XfTyH9nLUsc%cpu?NtTaHW|gkE?>D-Vg;Ax2bD1n&bSx+oTJR>E4~TGmD_eQqcZN(r zcF=x?gi$5Pa%5Y{r9lr=f`*U$phRYf$e!batmEktnOUNd@Y$N(kmiKC9#GKh2G?(f%Ku;E_$+grTw^Dw^TjU$4y?A{$rEB=N+fdSm zYsUU>%3HZ>bkmnbR!&z;H$p6Tpm+^#ezw9hf3aF|i+;GIn<-q?XXJe0o$G>@y}PND-R}2Ns>N8ScomoxW0seNKK%d)>dy z-FHvDh58_OG~uzNIuG5capIOh47Y>2!J2{Jp2NI^fv&Ki!YYWAJuMyr8X_iTa1tDX zMHi?(425ij2#ALaXIs!_oKM)Hx^5%aBBmc(9hG7V#6EO?O0~0=A4D!RTd`eAWfN|c z1OdN=CErimqv6!1O3+&XR-A5=x+FN8N!T^yG!i|_91vGy0PDCTInwt`Rsgf-^QjGL zhT5B9JJR<>Rap^5js!~0VBP|U1X)N!q%O*Sg-kbD?MQHqI-HgnSK5AQJdSgW`54%Q{SDyG}pxZiQn-Lc=0_ z!G)PBV5X@Jm|?XeVOpGLuAZuAP9Qw#59@9aXKjm6&lH zh^a5$j^$sh@WI;MY4S5RRLN!R`WMo}vu-_O8#;CAjK)c^D9i08LC>195>KW!E@J9U zNQ*v4>Sx`EX-B$l=3q_$$4T7lCsNOERUofsu-0L!E=o9LK}yO6j&>eRKho>hsy}g1 zF)I7b>bP5QdZvPd;q8Y}KGhTc()G?INdElD?2{!Qf;GP#Qu*G#02mh@T)=||Rpx zDYCtlzMV_3YfK9N%dic30^4|*KqpXL78Mw?JKf7UJ0C4(fNa~cXPC-B{56K@gM58q zsoPEJo`En(_*3Kw&?&JZSoIL}2C9yrzU%Jx3j&Ke{V_!`MPk1D4OQZSp|S%Wgr?V) zcbXVVudUr8?3U&rc{l@D5_@dRgkvu7jvp14H8-4aPnhvoTQCSy0j7Y0fnh{%?>L~z z_D*H6Qhj4ZFk4eO+y~h{nFdGdr>{HhVvwd}T=$9mOt}bXOI9}7r&7-VR+2S20{=o5 z-7jBg<$yei)SoDy`NR*jJ)kF{FR(l$S_OR}*}c;=Im`b_hW7dyH-(vpz6!ruObOLl z1!2xNkJn%S-U!9jy!SmkgDj<&&yf34OfYeNvks)s3KImb#3f81|cHjM+dReoy+DjB@CFNBn+}>)pTewZ8Mb((oFj#Ng(6GhBU8%S~XjtACuI_^rHh8Xg!%4nsr+xs>w7HTW&PCdemh^^IKR9Px5KdPboM2 z1mxQf2s>mJ`HTmvAq*(UEAc0npvNw`44}e^)2zY7-aKXXxtO( z9zC*l0wLniBA@A?d{K#&-Sw|Cj=90V1wz#!pdX9Ari=z+ib_!S*O6^+p@~nZa(ZNo zgx_Z~+He24g~(1uo1tk>I)<{T$Mt^g_U|KT{gg5Nlp%&($leLxX@Za}qY26Pj=8}a zm8SGxIBiSrW?iQlceB$B}2e`4OIm&l8#Oiid6s2x6NvMEP zqI?>aUn@%Rj{mws@#s_ynr#p0NWk>ts_=n$GX8ki#|$3FFDuk_KT^70mssd{wOT5AF-CR^L#Bw z&+f&FbIba7o-gOzwBPpbwv67#m4oX)FJhGk1!SbVZe8B7+tkE=fBlsb*hu>4MQdfy z?}2KuyrpF4t+Q-iw{!JN#B4sz4O5M=7mT@a#$P&mSLP96#nblhB=N-x<8Mm$-=H9T z_M1CpQu#F;+OYf(322={-UW5;aplx5+Cv^V2eyg_u*-$CVpu%VIk?sxwPJcDj_Vt~ z^~>|Wa!XTW557rj0=U2}hXc;RCAgY267W5h_D02Kfb{5K!EL93USKV@oT1uxM=Ypd zh+cQP{id@z)hF72weCic+mBCMMD}hwuA4n`H0{wo%=~%BBlGJ2y|#J%*_WpxPm@o4 zRIESwE~JdJ(NOxdRtaaJ*a~VbYUX-rreTT%_)5b}uftZjvGRI}z?*EQMQka3YCwi2aUaqaq8|38WUTk-t#6S?S^UcrsZ_K4~z8ANj@^imT6>v zVs|`3dA){zMEl)t$dNf(S0jB1c8hTk>iY%;+b3)zd+j8A-aDk`Ojj7D1i5RCQp|Y7 zHB#vXx4MoGDrd5QZpqd%U5GiuZhL#;R$->*jkXH}Tl_=Wwz1N#TU)8cfI3jn=6KSM z>c24(hah(?w-y96s;W;2r*Bi(Wu-P(T1-g#_N*w^D=NP?1zbmfQ!_u{TCQ|qM?5_`J;wqBtGV*CFT}iUn%RM+u1qFUj+5{CQGQy!tUObU_YX*@Ic+r$ z5k7imDsi)0k0^HVLP1(-*M<)CJG-D+c_v5J$t!K-*Bx`@sqc(M0GyD?5~B^-lXI4G zZv%c>*8Nx`d8U2#cu;-3m?grS>^LO9-%A?C~k8sQP)nI=rC?p>y4-+oUyBW;m2kNrMB60;quebb(bGxgdANbse|BXG>!sJhj)c> zu>=FFP*?`vKwLO3|1sL1rrrfdlW^*=baWSv;-3!c!hMC*tWNZs6!LnXpj2t#_SVcR z-nGZ2@|0Vz8eR@zIFWsGB>Sc)0^Jh`1Q0oNNCA`|&mZMowUKCIS(j^eIKz(6gfb-aj+xSjYUcPcB^tcydcO6_^Pv zR|5Z7=}n7;+h=8J(69y~rC=?c&V#}s#{+35;4ZNqZO7AmXbcld1TZ38+BS+WDj7ecgXqW`VrA?BsM>K8*|Ebq4=dphwT~UzoU{ zRGf9gLFavYbWW0pk)m3TgU_Xog=fhF7d-D~Eg41uSfvP+FW67y9nDe6V**O$iZ@0a z-m$ea$p4Vf|IQ5Dg{&or-MbF^ufgt3WaX>x!=27&DQ*8CG#3hZd;UKRCgG7X+KmtP zWVy=yB}CL6;wV;WA3yx>6A7ym=I~T$A3OZ-6N#x)=fJ77PaOWYiM;%|ZZpRYl|!Td zMv*&pdpIIg4voM3w~5@;_ilfsU+uj= zOIzjs`GqfL6mb!jLfu5>AfF;w5Sq?>ES;*64P594I=D{w^A5f9iFz(3d~rzWDfFhk zOW(uwT7}#XpQZCz0GH0hJdYH;D4_9mE8TS;OzksDNW5ff`IEi>_YyY)Th^ELat_Ix z3P88n{t4lWv>Llb{P&oRKhdl9x|=A6eY?-HvR>~`czkL`%ehf^ngAO9Hw4>gNu%(; zA<(5IO~U_%;21*J(-9@V_Atpe2pL|Aye++|PdvY61J+Z`y~l*2`f!w>1CY z66^hc9Ka#6&p8hK*WeYO=}#g*{+|R7OvU5l8Iv3yy51*#2Q3!Ue>Nn6y^O*5OYpU2 zj8+a)E7Ue&b>!eY;^K$E>=#4>Q%qXXh?+gZw>1EBpIUh+cgKP6=Y7A>2YMnk{LnvB z!kCu$eO5sIe_w|28lzQaV^)AvoNvPzQsJR}mdbZq<&Za!Qo7mYLpae?X2dbi4_-PB zVI-Wo9P&m|OAXvU97mYSbUS>>`3>3s{{-G4uREpmq#L8sd7z$CDWx2Y=BUbypkMgG zi=*8;k2k8$^P^wbrZN&hj+6OD&NzgT_>%J*vfn5EfZOlMzTpP6;7dKfCK%itQh}WG zrfGlYzc1kRa}H|y8-uteUVrDmFQ^$NzOSi+phoB?yW2jXt;#g%MXRL5ye?$B9wR(d zXO%D}Zw7}AtW(-n(Do!;5yhVo{|&7(gl0dFON^|t`?zmHPQbUNLa)){$kILcKSd2x zv^82BTPku-jH+_}Xg?t*55_8-O{;5EKnCxEgPX%WCpu^JGdE>iQ z<>x4sM&o^XyO6FA*1U7;3;r_87t!=z2BDD&b__O@=vNn5J*F|TEb8VLqg>teXXwIl zs8a*=LpV8)hiE3VRBrsyEw2J~#T{AtpN#*SNODzPjK2)8ljivMi8!ge7<(C7C&=;d z6ESIL&%X>Sx=L*cUzL*i0DtkD#6yIY!l?>ICRzNO%->LclORAF*5i5R4UIpVnJRd0 z@c2#z-xT|PJHA794h17DetuJ)&VI$+nDNe}fK$UvE}`Jhod*iJd|h6-wTY_bgG>u) zcAuO1;`<5Tr^X+XuDCniXh?g`^C|I{Wq?it+?0ANZaj5=uRoEK)M%s_mFpmA(s49D z`MUY4MZkOC+25f4koLcnF*iiZaUeNN8=~59;|%@!^62 zFQh{+HTgWz>DX@)9Zy{=t%_%%9Z$(hDNB9Me`A6-#s%B|HwL)=V=*p&U%(NwxZMBu z1(0`uJw(sJWKrd}xXkgrd#70a+|lo1*YeYJ;FpB!QUXGiSJ~X=CI<0Q`QOVB82N(| z-)2cA!}dd1{b|NMs5GCod35n+%?PS=UpO0%BLaUijjDw4O5zca{3Et zNFt*s$5w`#-To8#RtRd%7;$6>#Xy`6XO5cmjYVleSxF-QiTo-AK9a?xZyf3YuBsWc z2N^+;Tlr7qix4anOR5~M`F3eI)zm@hE+w`OS21}5PD@*sjXP%hv3 z0B~?sL?E{_ocq(C$oFix6seO>V!A>sOQyWd9A>}wR^h`xejm2+Rgt*Pj3nTHyyr%$ z%#QV~8t25a+(;M?m0YU3g?V=t0<1qwB+$4oExq)V$34m?U9Ntzuq-)5%8`b`rIHz{_h07{wD#~?&R~kzfb>j4;bG8;sD@7Rx*KW4Oy}ki-cQ%E&aQ913s}g@w$<% z89JGC+e<8v-@DhtCbm~*aP~^#^C}F10zYa-cFCZKch~B}GD7gc$uwD$3%<4!zY`*T z13X?=13gN}Din*NUR%(y1qqUS`ePdZkE1v*TRu>(=SY_Wjg!OI5H%+~Wp5E&?f+z27Z*BSXSg`;xv z&zwF1$M`%yB;ZbH@#lEUD#%_CN%4F3>W&!8t zs3(BaU;s`FxUr!WtpkB`tS183bgXkbt`vH%9SrPCCn8XQcN$IkwE4?Z^|vJ#$frLl zQZ%E6Km$YD*A>ga;hNUu5Cmt4Xk>k8Kii>2y+Y2yuYGaqu*Dp4LVg@^W?R=y36j_s zCnwL4uVJdR#C(6_@VUl5bc*uH;WHee6)YNKxt&X-9La6PgBfSG;4ovExR@KH{s;HTKbd@Tzxw{Y#Gh7v`VaE&7l_EcM2;4{u*oNuUzUOkYOyWkE^DZrm;@Or{K>!s?8(XS4TLGcUfjcAf__h zR&VEe0PK!VKdD=JyU`@IGOG=z)rOvYLPD@*@st{YB1aXaY9cxnf!%uGJD%Z;tMa1! zdK1jNdXtyRK_seiy0k@kE>)zhT&e^RPDtO)^YxW;SAwkrB`c!&clMBp_-GWVH1ubfV?zz z%`);dKi>dT9Pq|egg7V_wQ@;#A5e7tu*OM{kfhvKB4@aIHQC}DfU!Z{)rkNKH(Dif zHc7o?1s3@;-C04YVH4c_A)?u*ydI`M#+udF?ZJ<&Z6Rbhz9E5x;g|XF5%@py(rb>| zU!tvQd+0p8#0zj%Ld?L%!;6aC-erALQFFM$rc#Z~fA z*b*)tbn~IwUMzQgpEv*P`oj5F**Bc%F+Z90sT2>o@Ra+QKUwL%vwQcCeT8T4Itr_Y z#PS^cdFMHg+7MFD&TE#*?6wMQOjteUn^fMGNsVb{*~Tc-G03NiGsB zp0lOA854(+LhXm0r75qd$F*F4phdf}r%){BDoC^es-B!`EHLT&raXJbJKXX=!C%Qh z`R)9ffZ?+RLbKkI2-nAbQTWO@%YOy(dO+IKzW)S&C4=+$%Da}zJ@fkmhEEry%y@Gn zTr>Or6-X9jVlBpgIZ%LN`Mqdz`lH!D$ohVPe-)NX$FaWWU)i#MrnY~E_76p0=y|3( z^_Q^;U2GjC%8mU!AiBe6_CRxtq69rIrUs}ajIIF^xo8>E~bupFa$|^O{>&FxgUlrlr z(1j;qDq=fU%9{&f4Z{$D3*$-?j-B*_&8TBEk(Jy{?_(^gUBPt^tQ2V$MSzF0e|)tz zA&ssZ+a*Yh?@Hqfri5Z~lbAU9SoumCF^aWW%i|8XWqohLVqt{5)tXhXuxh~;Qn(5I zXUZugE=G=$D^AbCKC@Dre(x60w}|TyZ(^Djt6G!AaeuITD`;SvdmZPWt87bY(sb#3 zfP2<;z4_1Tijqa%ur`a zVk1bEo+VCiRl>xAl<0kpAVr$ciW{{PiBqG~D41Z16ppS>`$(+`qz#Ls6rm_7urU9Q_PW`!vX-DJYCZgi?qUVu{w>8yU0 z67CD>T`MC(+Z+w<^)9(jQ^bN(l`r1h_u|;0fYl*~(PD|h1UTohxueZ7>9BpxF>xX- z?G08tYU4Vq%~M|p#dE-MVc3fAB8<|UcJ$o>*A2UoxDPdK+bv|4-p}QU$V4R zrL&JLphHB~Y+~h;1(X%Xk`H1!$f*K2&uO&9E7xk9>Z#UUri8_+X_=8KG{R`2uX?@G z#0lC3k9P~bwuIA?+(lwi1QD-e;>2Qg&6i1`d*#-^fFxNaV)#K8&35?Y3>YX4J$F!h@0^{yc&Rw; zM%l&xCy?t=FC~HbSP*t?T$vI=KhvLRH(i9~p5$whvhaN1?0voyoRX9sRgi`hnPi`^ zoG`P4JFQ2-m7#IqmIrmyRuVcL`u^U7`XlYtN$egG9|<>F{F*8jOcs-$`dSOsb)*WK!+MbS}Y|lkiNrd z#dZRDl%~6uh!j>YnN0Q#R;mIba28UZ1Jr?{Y&_uxp`qY(qgcA#6ny|q`6z-A8n0>7 zl8MKXmzJ0&I6LTVBrBGrndvF(pgN7W-EFm-r9RE6h!!GC!6C56a_bvqmX7n2QuoN2 zuM$J-4e}}WCeY(O5u-8tRxTWA>9<~mr-G;H+lKDerG zXFPL(oL}F@qtO&E*R2J`Q|Q}QY$u!KDJkOI1{myPx@W9NzJFu88$3~7Q*`0f!RC5R z^-fK7AbP}8b!Kp)_Q+mEtG#fq4x^&?N~(P&N&eEKi`eBDIy5$I6Hg4QQ*8D8APL0c zUsut$#yfzv=wdM(#byk*w0qV%`l-)&9055`^LV@qY_d=ti_bP!Tzp@RIy~`SwV*T5 zd)TkeFXE#QWMlfs`E*FZkb6f#l$@XGb|0-Nz%~&HN(S#} z2ZW>~4gI&k)>JY`-yB@%QB`k@`YtK=w!yhWncO;?j% z*;PHJ$UO-fu@++*{O(LdcGLV$1Rjy&m*2^PQwM9lOw%qO5Rp^Okw9B9tj*AZ1!UHf58n;g(^4`DV!p+X=CXX_r3A z-ueK;Efgu#n&*neipC0Lg=yu~iaLq#^VqW98@j_0*Tb|sSjk4Q^O_)WRWNj|Nq-t- zPxEbuy{CBNl-s4w24>bKvwH1Y@n2!~_*r;wSaagpd9m&X&0KFSPxNtbvbcLFcE@CS zi%Ezx7pD9U(TsAc6bS2GWyh(!^mB|53yttYYFB^QGvfA%q@MfNJ@@*=mxT~|MTLcc_ndxec-14F?d)004u7RFTR0nC9K>Fvc3RAk<SwYm3aX1}O1xK`7ed*abm<)U;0pqZl{Am0?`!U2JqkVe0(``iL~#oN ztNS%uZI`j)Sc$NNynSHOVr(*PKHxC@{H2c7_MTePSfn=eHh7()re%qnb4wwKtQ_~R z%iXZ{`W{#**XWKM={4LhOinzxJGPxJO4>{!PyV2KmLsliWOX}<)!__e;vu%Y`5+QD zsO0ZkVhxR>aIYAx0CpOMgI{FZN@+JRR;uhgh zt6euAw$qD9Udtfl{ZvPhN%XEm%+>n}M)Wm{YYmv+-L~RCq)!iXPtAP^QJT%-u?xd0wy0Q>q88qtVqoo5q zlroOLnwB1zd!H&Z)UH0&+KGcRlklYLv3HT~O7*WWtp0WS1xaRhD3WDtS3oJM-BWXn zG)lH$r)#z3%HM`ja@AuQuqnO;9U0hn3zNLE*lXEA)=;!e!_8H9nG(pDhgQl+8)#c# zIilRI+Sc61w<`bnTDt}&PY^>cVRf+doSM%E*U8i6NDg;)7O;GT%51ERXy{l~zJJ#mWP&pibku+{l3VK$I!{8FgiPr- ziYY+r*ZA(aIf4p8{bZ9!r&n^@}Yu_xFYe&$jCA`r`p)aKQCwH z%KLYvIi60pamL=Rd3-RXdV3&Td?OD$#$#5`AMA5OtT8Jl)(w}kv?nqQ0Zg6>+?Y_U zBo2B-1Ejy6IzQCDm!6l`pKk1IC{vcLbWLjo(bw#FlC3{{@p=QH#F8>cI`fq!kW8w? zo?l5ws=)#LK2*TLOB7Dv{K6?+3Kjzn0{5&U-PBKT+&eX?*AmW54Nz@Pln0J0bUFdk zB;1h3)JGX3U5JHwjb&-kbS5qo0Oml-h&LHHXTjo>gDDB57MyZOYLRAdewSIHzyyec z{vc0FIUZFu3K%cI5rz}A3HW_N#u3KH<@{f)gM1gb)rNIY09Xg9blccZM;P-#RKmCKX z!W*~cg1*5MnBd{FBdZ4|tbC~1QH(Dr^ly-^yk9BJnR05FEMW<}SItKY(b$G8-qgwX zS2i{NhURvE3D6C4#D-5B8`&=#dnlM^{Eio6acgZDPOk=k{S*mztKa%lEf zWHymoV~^N&Qn1El`u*Yf_@IuK*VA^^o=0A)I(r(h91C;l{1qXPkjkb9;H0A4KH+GN zo<*{%0|}|l8|bHPEoGCGq0hwy`cv7Q8PrTEUvvE*Ll=Qm0p44IOR|4gpRkztH#kPq zIu9_=imku)FK(l`=^a>h51{+sHZ^q-v4?4mVPz<@(BDNNL}M$V3qqP^-T>ctb4* z)&QqKJIR+`0xO+}fS6DpwX?jM=wd=^zCwLSX(4&UV%A3B>+Qf#PZDJ@$*^Dc3r#~! z#nHW#vY+FBF#2)Q=ZL75;(=Q@}_$CeZ1MxF)1Xppm%D8 zzIv(7v#~2)K9(t8;HW4t(f#_@>?gQv)p%ZL9jS3KKWurJR))>B`6!3%{Q}9ZiKy$J zfKRQw4O8+vu)Q`kuBawzzjGD(kGOBWS1*-ZC{a;n6KJ=wyUw85!i*HgCIo$h)0oP%iRmj3V zx43N%$E}}ATJKNN-Jss2*wQXDS>d!F+c)>NAPJvLCPh=O!M5v8iAbPy3xK@d@p z4kDtoKd8bJFkJ#y(nEMeIB$a`qy@PFo!n(94dOl)c#G|%=NduiJFC~*>>?J(@L#fQE#%vPC5|z*XCw7?Js7) zuqrV5gSf9FzDf9FL(!Phy7f0{f85TGqrdC$`+A*;{9>&}@dZ=Y!=olLRCVm$R4dv3 zp8%gD`)Wb6Bf0jN?!uMnUfiMu#90Ud{~DfF`VROFzkdfD&^nXeC81VWVX|~{nl-7{ zFxxrV?mq}5>{VNME)98L##xOrm4*NhTVSLs=@;I#<1<`p!&@gI3V| zaXuAt8KRZ9bm4V~^6sVR&6|jRmcyV&rt8gRsXLR_;tokcAX1geP~bi`m!DXTR7lN3 zF}y}#`v+&lzM0buON>a4HGUj85MN&9wyMrweD_WVa70P4zrs}SZ0pf;HdAIM(lJWB zcy9aan7M8`{A#+Mdi@YrhK%CQJZJ?i;P)M&8ty*V)tL{Q~u6@8`j zJmYFP>|*GK@cY{tF@c)+3zd3Lc2 zt>{rtjSvqae&l(e6j0SKXDI=d9F-)!e%3XgYES$0tgSh5YGHic~v*mH?{iv5a{{zvD54SGFznGy9 z=e?N)crFz5wWfoxry1kuF_w_^wH#_f7^Gn_G=E-DgvPKCL96xEUuv-bVfa zzL@aY{wV}-rJI_xL%kL&827g*hD6ggUBdq04B$d={_yE=h0AH|tT zwY*ff-5V!9x<|Zfi_ZJ6Lao%5o=2RFwjUbj|2Ac@yd$Q$kAE6hMIyvLy+ouD|x$GSE|d@Gq^{Phw`S4dJfK=W9wS}v*?JLp z_v-aomK5oA^s7HQa|uO`I<&HH<cT$s#O4?&>{(K%?W2H0 zWvP=m{frQUo9IfdG(B*r0$ve%-E+(v4>m6rUno{w9X3d%%|BPnh!VoZyOkhTgm8Lp zz{^YshbiuFr7v1_SJ#`HAlG$0nLOQ1e3+#f$aYvPI3g{FaHi4}MVS!}teJS!>Toi7 zZV7m0gjmuD=(?=qDx{0YS`9G3jzHy2#`_uj0?*2&EuJIU?Q5rir-MU6F7x(PCHjJT z6k@@Zx!Q!B6?~im`JD;%&FO7P68hPs$&2?}S<|}y z6lj@FCmyoRR8qf|Gk1FG#2k*ck1>t|bC^KVJ38%;p zXJ0yn()H}A4s>P!3;a_+A5kyasFD|T2Fq-A^2Dv?2}N>G0GgAUn(;J%930uQKVze_ zr7Em2xXb3bXrMBh=FAM}C3C>m6J>Cb6<`3EV12ViWGZDV58loA3u}<^fXwxgGM$ z4-Vtr(LnllOIber8F&s@`m^}R%^DrRxb7Ml$2)yYLF{9be?}HjeCY>lPn;z)+{DT5 zeYT(PJ=Q`r0#2W{3Swl=acM%IgPFuWmiuR<$C*tX+YmpD9=q*-egt4&fj<@jR~P>u zvuCZWnO%lz&NU_h8q+6}B<^HaBrpC4f!(|WbLJNFFv3}?iEn7ljfvEDi@dCvysV!` zA^bcFK2z-nWVv+j?~hXbM2RB`L8k2C;oe3c98HNCG}HZdrDUy zMNxA7XOc$#B{hrSr_XN>AN{fTmT-hesOsaD3~)$t&)+7777hGE+OP90SP1$bMRXd9 zKD@8-2t`auJiq~2maf@l_Fhm~mRlH+SKiXReX@2kdeadw7R_uJq4#u`HjR84&qfTD z*N_pPT{wI`NAhJYG8ePLF;^)0%%hF{{%2#3E*suso?2Qkz7r z;Ap${W9q2>JORxOMFn{A(<6AcVW2fU50U=~(zp+#`4c406s(>L`f| zO%I-Cp)DsxWHLaXa}2ND`Ei>0`@|APJASvyZd7sP2H$yD#8Vhpv|xG)*iXQZ_N=d z5>ySXG*UvH`W4I!GXENOsQX>--$?Qq#wed0mAdtH!hcZybL8(fE6b1J2zLysE~+%r zMV%4=N6_cj_-K!O1^2Die+&GE-@gOiFP^U3p#Cx@_2T=G@m;R6WUEj1i~DUs(t1Je z#T>ipW9hL6j*szN+jQJQH+_G`AogwApHJ}f5z5v-YQ0$dC&$pgXOcJ(KVSd%BX}Rv z(wBOZ50>t-8gv)7l0K4gNJ)Dy7yn~nx=-+Sf}1on?_I85f0Dqaw>W0Y8=AM}{cVzO z;2_BtTeSORll~gD*x5(w?MYhIDjOP~@z&CndP(0OP*6XDnPp~w806ARUve)ek z+N94JKdXQMfM2Vd$Y;;b*6(~itKWJ4mij3z4eSIknD5Dmqve^062Ul2h4S_Pa_y(=>#hy&H7{X$=Nx@jUJfuM%&8cTYFDa%|4aAfNo_UHw@Q9|f{L9%UXs z%!q~_cD-;o+WKX{-BN4+&7BQ!8`$GbdAW5nC(W$rMnW5v5&Qoz%B>8h*O=!}(7j#d z!|NEtDUgAZ4J-N|`2X94=-sLczd6qt=Hkuyw~Ds!b=r2>M_kbbxCY%F4f-AxO9n7%h?Q(f2I1rT(W zWJL$TExn-G5hO)9|J6Ec=>^8?spGE@B;BTI@NXD5W!oW_E3e)&LQ@k@-z2|F4Wphm zZ73$0Hhn|hwtXZ-J@t9M!BOdTMpWt_XReh9>XjvSf+Py*gVV&Kg3raji_8#ds`5=`_usOvQVFyr+0SbG+W_5r&;&V>5yc3Awg*xB;N zGU0-Q^7KPvx0rQ&<9w`aPWtnI0%e@PMdl5E?eoLH|1$6yrS~`U@-G`+O~&u+jel8H z-?;A5M)Se3vsO0Gg$u4Q_a61Ppq0<{{=4AB8sxPI#H&+o3P$T;A8~w7SG2e>xz|TP zM8g^QmO(T1Tf=Wgh!lOFss(TH;~Fi)zhSuE`dfz0uD&X6et^E4n?DD?21?57Se!+? z9lWJgR+jU`hiF(|%Dtg&1{l<=(!VhP5r6?hO5|Ug&!*~siQaVjWPb7T)Em_G$l%C? zVAXq*~2@-`lRWSFJs>IWr@lB!EUxYy~t6l@?Z9(hiRZpG*$l!38 zLq5@gC{KnZ8*KR#Rdkp`(Uxf|st8Y%jst zJF7Sg)xNX>r2bvSyIy;qaAUsy#*1B?4#$8LrQ!Tv^F)h{yan0B!A`Vo4Zbma-v#1; zu8nJcpZ!v+=~mAU{lxJs4{$;pyxDXCzdy!{}^E503nX4ib|rFD6BimAITU*Xd^y`1@4Ui{f55$n&B7 zxd&MmO2oLm>{}?pHST9LyL?o_92cvNpE?cOQZlKH;#WeWMpW%0l{@cA8ZCr;(M39* zAa-YzB@w?ViwC|byCBk@8*ypf2$LC_cd|AoJ%k8vC!(?FyCMW~6eCSW)HNXW+975eF2&=QAXt&%2UssEdDX z&$)>KIli?0*^L+(?G`brH?k7$xK0cQ_yzzBFrr>>1QWi3`;v95&^L*`wr@s!Z(e{6 z#~iPUbg8dds>-cm3zl+ELZmrKon2QL0;b{=46!x8F6&#fj9IDve&WB`3%{$>U<5EY zV*DmgI>SfmN^L*AxeLV!KiaF9xxY~F%ZuYT)94iA`H_%t5TZI4Iov%vKW#4{={lfC z8nL`sNDn$lT=Yl#t$hVB$iq#$9Qu-&P&pAS;P#ry+k@S+x}R6o5H(=Yp5xQ6vI0>q zYrih`4XlTrx?PqTa-d#GOj)uNe+Y+DSF zg3OJ`x4N1;@ufGi`q(dqZ_4ki7wr7OPX;KLZlu>%{4(}$rtcd?1@!IQZW;UT{lj2O z!~q6BGLk%wIFWh#O}!{|ElxoDgfhayueXnF1X4dbYY_rdn&7$Tz5Y#+9Ml zRlGz}j%a5K&km^W3QzB?xb?+lD0LC7zUJUbbcD7_x^@EgO{%y|^fG+4Xk@ko(0~iu z2jcd}q_t?Zf9+Hbkviguxp`OUtFUC7S0M*E)P%4|W4ZyaI`y zE{&3}@3N_81svb#ZU08qC&a2JWr+dLUJ$($8;SW|-zDZ##r|Tvb}l!CRJfb8z*eH+ z?c@Us9cr6Nrx>mF9W~QCdJ9;`+7^for*f!oo3ZKNW!us>y|-B`eiiV=`@3A~SCsEZ zQkW5W^e<<6%&z!nAFa@Arj7CRep{8^hTWMkzUOL*Z>#04GtirqYNk%xTL4jFo5^0S z5^o|3hyZr`i0QL*#<1+yT<3sPj96med&?_F(>+fnRUK)YyF>Ilp1NitY8nZJ7m z*Y_a$7gDF~%wu~jW4PXZqinMvoKwEPLt+~hcBgOyZ9h?A?)}E)0aqyX7vndcKc&op zApLH*Use0599td!IHopD)f;zrxfbLZbs1GrGFrqS-g?3ANUEq7=E~^3Vg~W13rE)$ zURw(yDb|9uF*fsk`knh$k|Rd71xqi`dK_4^V#}SLK zYr3AlfBlHZsJV~AG}xD^%4R+#?NrsWAj-Jbg+HI%F-ypUdM?DrYqgejLdZD*ITgzt zDU%;7gTF)F+Qj_kl}HO{@v3ZXteEI^b?bzbk*kPKqU}aIGvIyq*uLYNJ=**2QW@$z+Rq znb=abPB4Eq>^|$SKlBe-GK$8G`F;7HWGBs-OUi%5(#1qQ{R}&V|CNlkZ)y){@u86O zhvyOlwb8)WA00BeiaLJ>rXJYxW`h3En;JT|Q|Y@Tw8EcryWIbs+&|aJpY@hR)&A?K z%`wxq&n!wvYqa(sh+eItpq#qrZ!vc!_x`qbY%btZV)<=CuYu2@MV+EY+W&CPf7sMt zc5o&Wj6Y%h{|6%xG(KVdcQb;U{1T&fl@-#SO?XG-le-5*VrWIn?$!@X)!fVmODIcl z-@sO?XeZ9gX1uu`WYm@AV3nUB6u`ry(sci2*@1fp_w$q9_b4Mf@<`$Q_8`OHo2Q=G zh2KKw^t>u9d_w=I>ng{4V^_uf=^dF?ccsd8Fg9*|xCuQ8>yeuA^+nJsa*S2~&MrZo zXBzKo$nL0}$aIf5P?P*mg+|N{f?#``RPaL5QWpiL^G}T#4N%oDz8qwVvJMGOZR2vT zCuxeNU?jL(w(0GyBWb!-6<;E}Vs_BGEI4WWOkIAM?kIFJ%Gx7XSWSwlqnm2=RiH}r zLZ}qeZk$)ljzO)m+(sG6h1x)S7$tLgaNcE%S^tT!+^337_h9hqh^4&wWa|;;D0^yh z|GvpFSASMoHhL)~nB{uNV0?IcA`i32K3cudKtHMOQH&BQz6K*( zHNi`{7axV_;8g9MJ&T8H>`NXmnZ=xh3~5#})-9$qQ>yn}FXrr{n|*9wW?K|;?oM9P zxjVj0gBNsySCsZ5R9kk>9ekb4>dI{ zyBs;Pmo-%{f8@Stc|JOma{6G0zvxA;v9!3ugDU7}d3>z&%8#>CSAf3_oIWV2xsW~Qlr zZOVf)g(SaHFuAi^upm>>o%VN;Iy+45D3d$Sq}>U-cLk(nF3+fc9hUe(|+a( zF|R6X=2Q@x-BGGnrn;sZ@jP-8uQPAKh&TkE>vtx9xL!Dk$Jvt0PjoaUe z6q3|+p0T6?jV^zZw*rA&ME5C1VZcok+!mDS54A-lA2wzYnXJ^1ulrk}QE_nH;eR%Z zH%-a-S>h3xj7*vW=woHU2zTMHDI+Zfm-Jm$9>TT^e;vPVwT*`+@o)B zejk}d-u6-_jd9xD_AY(0OyT_jadSWS;`zvbQ^oH6lMHgTP@S|FQ|}1)C)en`2181PQp zq*%V+Y$>Y+sQY@8B(ul8(-M`oI1BcKj$dU0doA19zpp~X6(k~ zB3hN5=j-UeIf0pfFC7!kik zi%6si#xHxNyvxlk$%rhwb(u(ZiM0}KBdn&@0ojCgwQ5EaK-jeW6feH2<)`-@O&9Kj%uBLM8@MU6*Z=#&- zGy>7O3Ngp)nxBD~AJ8LmfM&8j2mcYF&D7*`UBPr>>WB`Y#V$p&&3t@^lYr90Mnub0 z^5=|gvnJM=M9k&wXY6-`Fm$WhQ2QODFJt^tG>e#qp^I3Q!kk#tGY80YRz~aV34fkR zoPpZTHmfs`IIbCeGN*fZn}*Q7g9?LGuVdJ?C`1nx-*92V->H|C2GJv>yKRD%#0dPO zHODpfO0h$pM5}?zBW90xzU;OUGU<80KTCRT%m|Ik^Ef`XzWOSLQ)2I|IFNOMifM*> zc$7JTWJ>~kZ`^i^dPCHSY;cNCdSUy#OU3aKSLBb zSuN{o2eroD))B1HLSyEa-8Zw@aoXqABP{Fmn%JG<1reOAuMgXV0x7y)1F4h>y7WZ0 z5_y$1&&)lJ6Py_3U$V>%);M!wlngU*`+XzO@vJqMLLH7D4wH;g3wXlz8W~p+MR>fd zvUuGXNJtnVRN0=zy#PAME$xQ%`a7sQ z0=O+sr%}*j@yW*Z)A~7FA24?U-pGRzg23Lemj%W)Tcc++Qrsc%!kEOoG3gfQ2~fgq zN*aiw11_cRtEHUnH$gtO?|x^3t%*VUF3cTHF<0}@_^7zxK*XMUMTa{d1ZkuH2mMFQL}!KI zn!_Eo`l+D^SMkgM<3)6hWc0rS)MZ9)W5T|OrY6N7^0RQXav?PXj%j1i=eITtLOV+6 zE9~Eq;NLn#EmL*Gz-Ct3rQHNt7R%5qY0?B&I0M#XRC`FZy=fBa2FHM|&U4k_uGJG5 zu=VGu3xtdD$H$~shn>!jsh0}15)NXM22&eTz0`^~EcXRLbjb6dS8hrOX;7Tk#F__0 z)kO>*r%SO)KPbH#Zu7Wr90&6D8sE+G%5WlH2f=7lG)f>7rMU?gF5Yo=Os|nJCK>Ov zF56Htc+cLsv=Ow{qKLoSP&ly?W6y(-k8+V`se6+oGK?_+N#kHT)4IleqmtpFZsC2( zY*$OD-@xN8vl0(SE{l2fk}psjN2Dc5cE~kc=<-WDm#%oFd|2~G7!9FPNOF=1W<7$b zb7>S2XjXR@)ZUn$Gw8`dA!dA{o~s-mJP|dDHD9HY@X1Bo*ujEEdL!S)yQhebN))`t zK^=5lqV0M|cP*_fEj$7aPB_?@C$f;C2tAlLab_%sXX>%NM~NOWX_h}i6d2vz)I1dg z(`lNeRw;^Ag$1~@)ZWy+#C;XKJWZT?0Y8Kg(QQH%UxzzTAaII~7z^C`aXm|%oAp&G z(%Q0Jd{3DzN7{8_!L{4aLW6iA>?7h{MEY*Tj_Jeq+9a$iOM69$45rAH84l(+Xp6H) zV-rC>#x9E%?Kr9^3=_S3rVg<$o5qNnezW%}3zB!jfCl`iOP4O}f@iHm8md27V|Jh= zRHQ-IA*#IIfY0jFIYq)b;%jN+-kAhqAJz`df{r9QbzeR@o~2ytJ!_2>c0FIEioM5K z->kl)p6xNnhs>$m7-?O1wD)zP%FuItj~SmO1|;2qEZL>@3imMVIh-t|Jre-f1X4B9 zh{{zYI{O1b1s4KH;73wYcdtGlSb^*@F5Zyup-0DBv5ceI3aQq03m<`(rV(0wBG-fJ zG3WqNj#^~Y4jr?sBsx-)Gk;0+?d`Tk5l+nI8C5V;61a7Ty@XaB44Ij@#~JT3!LSOQ zAAO3rsP{VcA;jjAwjK?ZxZ`1~EexwUf=J4py8GJIclKV*INrAp*5GNDxKy>8{)Q z@UneGjNYE1Zasgu@I6jR%V(X$%$qNXPD4e|wAkaTZ|2*_8CIj`H!c{<5s00(_&j>v zu|q5`4%_(pt0I|}+;{1`koR~E&b>Yp_ObU`zLv@9U|<^;^hxKoR{)k&_VCF%f0CXS zzWU^jivJ|#YyH6dF9R2vzi;oWrhdEX!V(ZRu>g$b54mrQ`zJj^lU{;zLvx9&1YqB^ zdA$D8@1~U7eZ2kh?|OWf@P`AzgL5JIT8N&vdNXYT_LJd-3)Q`=!xsNmSci2fdzW8+ z$FP;2Rs&LHe*DBpk#>%4zS-n_UMk<%#=9(jfk3hPYL!5_dVn*xsr#-=u^urBu2ZFN z*;_3!ED*5P<*w9J2(=EFtl^G`!xWpoZ**pX*Bb|T2l%krkI-T-t?ri?w}9Ez9d8$z z7Oj5_v&K5g>&@}#+JFSS_2>{UAi9*gR*pUGbXZ%oR-I$F$gF4j`;De33ohl3o$ZY+ z%<@MP%T6BP(U*!d{fI~@x+WPT?*C2zlz<^N4!m(nY##bIoqV%C zRGbq-dtK|G?MBx+FBNPeSSg(zjZPgHa9oAQ}BdQw+pF>Zgkjy zGCc}^C)xUJtmtsN4`_Fm_JFsWtixc1GwVL&C4}teM<2Ue{)_l&^_qslv0g0eDvPN6 z?1ImXJr{LeJ?Z!<;J?scAmb~>_pI*5Z*vWmlv6GssA97USJ_>|Bu5LQm!<`T39@K~ z!SFIEI>dRsIH_1rgCO?Gs^BO=8yB{0j()Ptf(`@q+{lPW(GQB2!zE76OdrtOUq6N4 z3+Fx6@VuOEe41X5e?1L&z5rjyxy7__=X5+`#DvW%dq*8Ep?=*7XXbGJksXC{LIU5a zrFf4#_RmWk3G9m^=U8?RwxQdg<28`Q&1nm~r zWW4T z-t8RQtANJl8I%`R1NilGsaYmH%Q~OI@KOOEH(uc1wB_8+BV&xmo@0SOaLZrjLw64z zK#L9XA@h=MD_04W+WN{MDXjDlm(!OC${>B6G|ZYCc;X;8tBP+*!D~A*V%0r!#^9Hs z-b+5#XyE^emjFgxqNSocmSW6DDJEDb$eVfvrGi;lwT-TrB|I7q)6}_@Utj- z0{4kI-G<4hJ^i?lK~UJ4qQ~TV-q^8k1 z&Qp^TMw!iM3kwc-B6WkB1kbWMeqyGVKBF2qQM7(Px%dcugBPK@0&58%!C%wAr*|+a zWhYCF*LmH1fs{QIjMi{hH03?%cow+AiiG5uSyA%KGdI96LE-^Jd9^&gEFS9CwX$`b zsLxy1uE-SMvc!u!pNDq71qjHYyZroj z6H({P!cWY5w=-Bq$)J_CtH)Y+jLx2p)XYzO`ux9wy?Uypng3tGQpw)pEE^O`;#0`p zt{6+JS}9dquHP^S-M3(f9m0l4uVcAz*ouJV%0S#;o^5cfsEU}f1ciry?WOK3D8eGvTE;t=UnHHe>e%ByyP=6Gg#;08R^ zTaO+wKqhq~*SKfk`DKU_GS)czyjL;P%B;?f_2|jum2&ILZDmY0&5eBM90&O#o|GY- zGfwx;6R%$g$SV!igHfli4I^H-=uO4G4|bQNp}T#~ez_yLzBr9Ok4=#1rr<$;T!p$l`bd^3%pd_!go#?``F<(;SM!mM)s ziyH#yg|Uz zYGFOvR3^0(X$_ooAe}=%I1@aiAwAm1J;$}30`AjyWi}QWYmL=KuHOea{^-sAvQShO zW{;;2MI3`%!euO1462WrV!5!CPM*b=+(vLPALKp+pDqpJaNmJhZ#VW7LuTgVrSF4o zxoF^C!S5wk1@@LMgVB=cR1wT!;LIsl&;I)4Tmqhb$r~L%$wms7tJ*jd>DTB{{D~UKizL=v%}qX zb0Nqy$fAQCG?G(yNqIZ*w%JvZdPtpS-Ge_SWcSf83TznP({cR&E3r6~No=@WDL-A+ zVu~n2xks-9N?jZ{?sZSXaUqkBevv;fh94No_yB|hTe&OwDykMOp-g9nnFW479h4UE z7U8P-GZi;8vpxgLh@SuyNBzy3UzPu{h~xXVseEl9&^jMzeiRIJUN;Pk9$GyNG!|YB zG{zqeRM^P$zLTs@%`(S5^8oa1zu7Kh9$~HjLI0&QG3@cmB`uUXZ2tW<$(tWZ6;||* zv+@3)2J=-nM!+e+?WnRT$#ehAfH{IHSNZXjv7fy%9NXNZC#8d5rF_5i#ufp6R8S4c1bvgI}tm=Z)PIzOy z1-MRq61b}X;-!Wkg0d|K6ew58m%&~j4)hG&ho2ywq7rUc6X8^Eo($DX#VMERk@>qG z+RGY1)sS~|@&17{((UQ#DAv)MwHEl`8nXoO0V+9eqU@tAg4wzUdLYS z;GLGQ9zCH&2)HF7BACJ|rQf@}ji;P?r_y=Hp(Y2V{v#%DT=bHY&RuMwgLAjp9gY*> z8yhurB>@lGa>Ib!G@1i33sR(S2_kp#_0p4WRGI|qhE4W z7L3*f#P4W)?T@r_KQMY<{E1IlLx|diXi(RSIb+AL#!XG3|5y?HP4tW~vI}d*~`|_Js6M^I~B9bnG(Hz#Sqg zo=;UqprXZ^IBnbv5E*qE?TJAte~4m!LSQ*M7VcibdJVRbWphP}1WFZ|jNIc?7<_SP zBSp?%TDiWXdn5PitqeRNCE^1{xL}8!;VlSB`^;DD)yRNz&F<(h8iU9DGCoA33R> zBGMm;76B*3vJ3&U^n>N=#uXd&`M1`u7at~8WbQccH1*AQ~u51*;5REf);rX{)wo6V#vu;3;>~zu)Ie-<{Ez- zR0Ys(DtTW;IdL8$-=w|5w{D->B=>hTheK%UlWBJPAB^zbq<-^Kj8SRj?H|&9k+@0* z*}7w3xgfzOP!*IfhwRz{qw+X+4zDEI)n2lY2YL4w}UODIJS<9#9_ zl@S-}j)0H;CFnRxk=>X~M71*FeBFNV>p;Or(7zWlKrzeJ{j=F=@arH!Kj=M_;$dS( zk><(>xw^j<8r=={KlIOL#&WEphpD52yy_}tjBzg*9LIdcZ9Zemwu18w-(!BCv2qY} zE3o`KCt|XRUt_4)&#|9t0IpxbY68z&tM4piXu!?>qs8Xx5p0GC+>9#3+Nl$&dp172 zcED0e;Q1#U5M}x|@o^*T-Ox>ZXC0ty_5(aTwEx_*80KsN(?B1!X>l%A$DxRwyhm^C6TI z#mjEIM?|4g<9yvd@Lz+BKrWgy`N_Z{IHoe8GT}gsy|kMkZgKdXvhPqgA#8`#$#v~z zo$6(c8F;w}ut<^_-WMTsY=zbslBi3)I=pHuJyhrx-r509NWTeA3ho|@UA1Wdi2~>9 zV%qG*cw3Q{+v1{h(e2fJBt=u^@2X=hhHPi%6P;b!lR+?Rn?5|Ruv2Q>Qhwcz8G`h1 zMJSv4IRog!RpXekm% zTesx@o;XHYE7)@QVD6+q^s6wa+@P#TDU_C%HSE!UMOby&6 zQtzWjsbqUP3)~`@vKTEWG=A1^_JKH~CYK9$mO_gpBa+~9y2ZtJ$hq6!3Dm7JYcAGx z@ahb`W5tlltb_OjOMpDQ7oD&q%DNy|5!W~D(4xg0;N&)>0FiMMQqG|Lf-YxW=~`L- zavU1h?={fAOUkzZHj)*?>1RQ>I`j;qT#D>=IMP#flFBi8G~79b!s(s_JvPJX#9i*X zNiL7D0o4j8s)m5ZfM#VZ?sCI&O0{91ts`$spP2N}lV-!%#ap;p?Umd~XZQ6K9yd=& z7({nvwprlV$_{kvpwxZ>4g59a=op(1Vr&d}K;f3ThiDr%f9xKtIWXT^o5Vr1nitLq zDb%GZ;DA&_%r0uvoE9adM^oBo471vm7S{D(oPo!7LydjW2bUJhd9X*(HGMvzdfEsY zEbMsxL&(LIR|}ULsyWi(_iiWV>bc}E!^ALTs{-Rsu_cmB?Xqm-_>*(Yt3wwXl1ep- zk{Z|yq3y~$@n`H8XzXp@8B0xQK_nmwmibp%wfRkaW&*PJJKb&BksiiK%_Bu8HT*WZ z;=B}#88j_&=|a6MaTSB~YHT#&@Yt(`YYoc;7Nv)hOhZNMml{rC(X_Gka`=OIVf=-> zkv*=94<(&Bu$>1hmOP?%yPhpauxL+S7<*e!@*C?Od<@L2Ik3&-(nG?y3uE!=D9<^R zgh4BM55a5j!dNUidiEu9b4}c`g&(biIpUUQpX}`GCE%+JB2KA#S^J}pa-FC4Th&=@ z$0C{#u}g*Bq_`)W%hABtf#}m?Zr1BdPW)uRJJ!2FW=I4$Hqpa~%O+X`NL^bFu&U1I z3BqEOo8reVow0rrz32>6S(iZvl-56iS!a*p%jvZ-TZ`5f;lSDhzx9X3()A5O8~YHg zHJDq*GiYC$?iIaT;&fjLNiUchcsyx5BZ48WV2kzg6vj3jsf=2*J9Sq^5Ao76r7i>g9r3K?w~!hM!hbg#_eiR^XO7>ge;8E|AwwRV@>*EK_vWWu%w zKHnH~9Dl36OgeRXTZWMMM%x$vF7b}i?lHk~4$(2gNH~zq( z)^etdAk{PR%l%(|`Ng5DReO)ab=e%r_yRHZUiR@Lln=}H9y-ddZ*zy)HgsTxSr(Ol z;_(m#hv;KTFB+`DNaBe*+f8<#1Ryd zdCc<`+ZrY_pjkia&X`StQl?Gh+vcK*Xvakc#yDUlv#VD8>?D>pst!LnBtz1CD~iAQ zUXW7zgiV|hul2r7lZB1*JSd4kPxMZ+#a+1)}~r;?yK-usl$7!1;b*) zcokBHuP787MGnhUYgb=WNH>Zz@-hk-4jg_s96IcE!usa*XNS$sJGd;roAaHknS&l} zJL-64{<#Y?I|nljEyruQ8tl_nx{=WYUS|NpDjOIwU{$)*v;I1zWbV1`rA@9lkPiWx2?NO%%m=?pUluh z-LGU1s+YebKXS&;gb{ffF}`*sT+Y^eg05BUjdDwfip&d^#yySo^2TzrkNap{dArQH zoI`sJKt{@0T-~6IrL?82rA+EH>U1ekeb#7aMMr$6RF*)NKz6F%J+=@=L5`zbBj*&2 zrrve5BSV(eCuELHAHkq_oe9+njJznkWG;(m9gxau5 zdi$Abm36gTmWE-OW3z3;*L3=P=K1lVe(|+(K9`fWJH3_D;^b`N0-vf49l9F^J)b$u z9LW>VEN*gzeE5jw!_~3`J&yQm4_ti6RCGC|;svhu{bCkGo~Y;_9~FpxS`*(3KFac% z4tpjU$2xmSB&fuQLB3kTjEhuGyOs~NUFqSS>EZoK!PR?x?o|7oCOv7yuNK1S=&c>l zc=p!A1<$P7z-zmXd&T53?K^wev-SaUM1=|aSelw%lc&*%?k(x|qW+kr6XjfBNjZ&V zB)Thir|m8bXUMeV+(vYL?U_R_~Q!bP6;?E^X4 zhJ@Xk$?kMXH2JIS?#8#EwqTlYeK-yqtzYaXDxLZCpfTT7j`(!i$m6h3CP|TGg-6Gp zlCD&H2Zvk}xeLH~Obc^!*kM z55OMcRQo^P%crp8_l&9@sAfqMq_<0X5OtVRZ1i0nb4LWJ7)F2eVn@UdF>8He{wbH% zG|c{~-WBjkcNdJEz5`cSHNBy^Pdg5_Yq1uD zzP`)5FJGwMpe~F%)`XS6y+Uw~#Z|y|G_w|=buJ(}m%R@$-4>v!6nctr8wtdxJ@ibJ= z?O_txV~*H~?S?Pyx!%C#+uow9$;%#!Ha0(YA8jv07Z6Ypt0z$e=!>#|%*ka$L=niZ<-pXP|RFeZYYg5U18 zbZqN?B!6EaoYBM!?Xs{QzYZy#rkm8e9g;v#8PhHj-MlPX903|-ea-(`;c=MIp}Eb^W?`DeaF~T%&z3vr7vbk-mA@;$<#2nyI4q5XwKVk ziFGgeI|Uw%+msp)n2e}2!41KOyQ&zWH%u?=vpkb_Zse--1j&pYsnaj;`+e^y`f2r# zo*;ilSwl*<-RFMUyL~ag+$2lhQT)r=ZYR%u7nB#oNTMT$5=GRsRaY4CQHo$v*$=ag&!h`$ zUK~VS0*i2Zu-$tn@L=)*6BZVa}+A-W*OUty|A)$ zPCy(PP$V=@8c5jYur~=EP)T@LAo)(_oL;{{ze?ox-Y*_H4J}_W1|)G3_?__xpDAkxKp|xl?kxWO<(8A!n*+sa+#Oj@#y6RZ7Ve zQ{1FV{^iMuHWO4?rIdUz$qHg_UDG$63V-9}O=`0bnDBRY`t%=%-?8cod_)ew1sz6t z=dBagwmFk+|5Htab9(woe`W}+r7_`PMxee7g<9pkWsoF{8+ZhPvWT0wUgCrC$#u$!pJj+ zKk(+Ckm0Yna6lYE%?f^y&wrwQ*GR!TZF=$H?bbT_DLySq**lN@61IKvzQBFTcSrjb z^vSQ1n339T*V|V30RC?2{snR4LpKUyRwVBhQ%BBv>s4xM`V3 zdZsuj#V*~Qa@!owNv2WU+!p%rUJ*k=sWoLkNnO?X2li=9^tbeml@?!p+?%(z(2Ct| z==>DTqmIL5Wj6YBi?8L=j#8BsWqESMR9`j!IeWO z4;u8TKq)VmV<#vu3-(hX0)s1@;sNKQNqyyD=mePW(!5Hv`~3CL_}KdM{emq5GI%hG zCy+-f`2wCB%X1#lS~)r-$=xHtTKy+9C1u9(GqEp|w{KMlGK6pB{Ct}!lC&9=n2 zkmNJ1XrM*|6~;>$?u6*0w&(B3XUJ!9q}b~-x>MtR1ou0|1CNbW!XFgSTaG-4y7esC z-K)BP;FLq2Vv+l*8R~G*=pnX8;`A#?l?I4|J}%7j_Cd<>lC&$l(8GfR()2~6?n~Np zk>sq_?+y7Ks&)nB^;6RGg5Q(T^IA$f)1S69u%VZ;Co(&O>-2Iq2B+!ezy|xnpBc@W z@{WLcM=W@8qI3{upDyXpcMR|D>WdA&TD31tvU%HdG5cZD86hnAya1QOYa8qHLR>c1?uHhYijGQF3gcrB z{hvtj&%I*SK2ECM)6l-hHHyd%P;2+!C&y6t(g@vJ;N~mo2{)LjJ~8`oNU3A!p~R0^ zos$bwf!g%dx9Kw3ZHiZO@(rFd+2tFA6IlRLPM(2JQ!iz2Z^H(wriAx2{E*>kYiFJs z=dmar8|B4kU-OR;sPGNPIE5-$mG@Fim6ILS@Ymq4;0+)0dG$-CHoxbg`oLi+cYmpJ zQMR25g7+KW+2!xn)_ti#AF$$I(Nk_HIdswuEqe6&;jgG&)p^+Q-mus>$qc#THnnX@ z+b#+1CQ&>`F~{3`AET4FZYwCSbhr`sO!Ppm;+1FT5HXXFQFe}u@ri92=lR36Q0$K9 z_(QmivT;xWn34HX^oH0=CQKoH&-;A3I3osoekVneFvBBIHG%&ZJRrm0*z@VKL{5kA z-CDj|V#UZcXmQFDuwxfkohsi$c?-S>315B}CcgsmE97F#>{%`Std_q`%`fEdkYCB! zkiT5>bGwHL7tEZwz$SP_N#BpXnY7*|xOah{Q@lOpp^NZ;1=ePf91m7jLvx(ekXFc< za;Ki{Vp$0PBx(OIQ)^fjU7-9j;C-MHx6=P0q&wvXcxONEuQA?RM$hBe#V=g{%20DA zj~aQEXH{J83z466WIL*#zPlu0VWH#)>8*N%>!&W4(S}nPrBX+sFD}hX_?`>lA8(Ai zL@jkB3%PrQBO+JJ)4IL%qUC#HaZw2U;dSg{o~ZiyB}M+tAz6FoviRqKcMk}vRkM2f zGVw%3%xdKO5n+x42WqcVM22O479b++*E>T6@*R!qk0>)jKb;02l~1bc^vMYJ6nZM1 zzE!=+0y{18Y`ya5qNhuZ0Ir}HN;S25)L`eI;k8wH6MIgPT&2rfb-D*@y`GtpbAZ1< zg0eJK{kO4{Q=a+WTQqYjY#ncis+>YaR7?HQ&kc4?3HZ-@sfR?8Ei z`Ra}14ZK|ftdwJd8K4;Ad&a3yzN_P1oe>&8G3q@V=i3JRsPk=MKzX?=!wjsFTfscf znVWU<_ncAgzJ5 z6&F2cJFzS8gWhM<&Zc>zEI8_&kGf}=hEFwWrw=@F=##KV(ne2v;QH3F>#Q$I8t2?Z2`RQLPh0=#obe~EkzpHJ|7dmz>o!COc4+WHRm zol&zMe7VTK_DW1C+uVby7Z}=hvl}qdlJpiyP)oQeZoH zb4Ih~Aig~Gy1__Q_)@5l>k-L|^gOHDJr~U%z51ZzclZ)?>mB5*A#=Ab2dvfFu_&ax zr)rgRvARyHSmu?0_*@w}LL2*cWrOk$266&(dpPj)YDCTY;=kfeS&Wt9jvEkah?6y?&Zlt-`8>+}Y_Nuy~Djiqrko+i*lnnd|Dg{IP5^ftXi)2N7w zX$`HV5?W6isgyR;R@z28Xcv{!9@<9-=nx&DN^;UMIzd%*l1|ZSsv$R>qaT=9u$jZS z30pamqd1lw+??aN6}RC8Zp-bs1E+9D?!>on7yd1G<^SSa`M>!#{vF@WcW^hple_a> z+=Ksz@8)~>UcQfe^6$A9-_O1I0saF&$baNNaUXt&`|`uwk00Sj`On;+AL9Z1I6uMv z%TMw|p3GDDEq;gJ<@fjl{)lJrOrFi3@;qL^i+BnDlRx9-T*#|#if9od z;zTpiLbMdE#Z}@F@mDcOJT3lDJS+Yto)a&KVd6#c4>4T4Bwi6C#VGNrcul+^MvJjx zyqG8^iz(tQ@s4;`yeB>oABh=arkE{074yUbu}CZt|I~lW)j_4ABT^IDMO%@Gr%18^ zUFlZpM~~8DG>BfL;i9v+25r^)@6xR35lwcAp;mO2k5!6EUKZULz@V;lJKaIu=q~y_ z^`iUf0m$u7PX{q;6nGTKBE_B=w2&6jVp>84w3Jr**t8CO`T~sF07m(FqZlLD1jbmv znQ*p)FJ6{(0y`8Z?gSeY6Yj^%2hY2jbI*(qJhMA;1qa_|XK+hy^!VfER50{4@Z?P}WsDdHp5%imQ^Awz zV8|?R1pL5Et69CB?!}z-r+IXkPQs%xSV{N8U;X(nJcyr#Uo!b0Jc8fgPk0W`g}w86 zp<(B0KB0AOkJ!`3$C{=--Xt}`8O50H;LN=SXC9ge>M^6<6!)iW1(2A;*wZM&9H;T z`}VSUut%TpsX4U(YF};Y+XMCA=lZV*{Wqqh|LWGH&n=$c2b-WpakW)Y?`ZXRz2I+@ zuO`md5{>jazz)PvELvi467{~{tlnL@#l`I8b!to+-kSofwCexzD)@?o4W2vLI`2&y zo+}2=F||gI^nrY1HLZoluL$@^c|Q_i9kDQuTNTusBNoj+v>NIQIn|4Y5Er~!Wrxu<2`SlrqKzlosnPT z8$VqmO}BS6-uAbpYYCn880i=zP5%vbTcg|#C-q zEh{PDy|zA|5aM@74Nt4LB{;vz=d+GJ*$P+t?7P-yi?_`KGRF2GP`|4KeB-s%%PP`; zMINnJm%8I|w=`1E)tr9%D?0dh1=x_NXP10F^Z2V{9lv=ISm*5%T<0&>zSP{B>ioM% zj1g@)Ahvm);`RD8>qvP%S99-oU_ed*WlO-Q-e^k!F}{V4Q-1j4Web!&Xo1Mk0?}BV zC!&lf6(2G_`eRD7^U~da$JWu_YlHU=w9l&3mI1fY)O&mDA~n1>1+=K0B?_aqG|&RF zBYmKH5ZuRmwLA|?TN<8jSxbh$-j5amTxl90-`{T4|F;S+JYI^_En$uB39XHI;uK$zYm#)D zq9a?Xj_9 zNss8UH6`TgQg<9~hmn#Ii!a~R?2;uYyW05nYtQ_((*8&d00sFbIcUEnqnsY#Pyb$A zyRW~0WUXi$^>4+uY#;ytc-obfd2r2F6vw~c^CBW75{YMzEeVoT(KeLO)EX6{PerON z(xkRNq!O*QQu|U-MQv4#K^0>#24kyMH(O|pF~%567hNc|v{j|&civCbKPLXTpL5SS z_jm7o=bU>U2p|;OQK*I()JG%NDmuaujq0e4SR^?6bd z=Jp?+ox{P#JmZ_jvBn9;X#)r47qG}U&$!sQ+_>7f-alwSHa8o$8}}IZ8xI(d`iJHC zdBS+wc;0w%*znw;yllK_yyH-Ujp0Ub{)oJMi800+6O2ua$;K4TkLchdNV>C!vur6C zS_+mc16j6@-d0M>gqmM?`}H=@l_UZ3KzTHD|#Mz9SjO_^AqM+ zJhye+EU`#X3;nVY6PU;()e;`i8X{QM$|v%cjFfekHj=g|1&blhiW?1sI{fe1hdmoZce`Ri?`!Wrli&qS$!fpP|xc9BYy5 ztt0n=Sf=U7`kzHS>7Hb@r9NP5;i;##X7^+6Nq|>AmA%fLq?mE{A})tzjeJ}Z@tv|u zcFP_)qF)Ch?sQ9$efn!eM#(zmXw8avqSfoiSjpCmhiH$C(^xjpuG&buWuoRrdmJ7| z6EsCLJfWF-O5@yItMzH^o~@9A)>?xTF$t3~1yi*Sr(*_Y;$6(r49~`Un1lB*7xOS* zYjJ_rh2oJiQdY`Ic?pw>5-Cwq zS*l1isUfwbue>fpWSG1m`7%Q5V3drJaWY=sk%=-{rpk1gDYIm@%#pb=UlzzBSt3hi znXHhNvP$b`t-jO^vQak47TGG>WQSHA*<2Zi4(No==z?xq@x8DDo3-YT;T$e#elFoE zuHgnF8Ko7O#K9cL8Jx?7T+Yor!n5L)ev&5#<&YFR{Zz9RrrC;gI;_TPwMJ{b#%GVy z>0Rm3*Bz~ITXgP7=LJx2;4stJ)O=C;4;}EeH~Ngu&R*@|q59grdgIJ{C$fp=zv$kX zQdjCpti*o}Q3%Vf|@_YGj@`hM3Rcq;tnI!9V$Iikv+0hB!t{ZsT3_j66trwP;%eT?|xp->v{fo&Uwx2 zysqn->zs3)>+^Ykzt;tUK%lE9?FtbN0I&Rz)kD}5pa{D%u_~sTq%I(!%rGiN*aECF zfkB}dPJn}nh28>VWP|`-Ol(R_P&kyL34_9^c7P3_yrD+yf<&?yM0fSHhIm6r5CS9= z;s=QYf7@v%fco`*aBhg6ZeqOutnT%%N6jJ*JY%I&_$2`fLp(r%c~co+P#BC`OLpMv z7yPySxf8GDs-C#?1Bf3l3#Gl2J%$}%WnyrIGx5P3?J+`t0Ik5r$GOLk7-Sz55Uz|e z4fj#OC;5 zgur0Iq8b*buC1=^0=WH)4^;!O^oJ__-9u?@enb=+WsC*L1sewmWrQ%0Ga&#u9Y!WY zTB<(T3Dh1=^->Ttb5%9Z3Q5bFRd;Y!f7_$s;caPWtG2H>!CySReMGS(nC-LX(AmhW z&)HWis-jQNTsHIBWvmjyo^55Wbo9NmSwjjH^VuSb-uApHIpp1&hEdaR*P-9{NC!dj#8487O1>^vk z^)diW6%LGyjL=b4CHRmcRHDJblfVJ0_z=QC2{1T{^Fg8C;V=LK;AkaDxH6y!Y^BOk zWm2WqI{FYpf9a*{PUIoKOu(AZ5cA4a{34~1ZsOa@VSm8wqn&Y4VS(A;z zsa)YAgs&Q8Tsb^Ela*DuM|8)KiDB?s|=nUD-O= zR$}h^v<>N6SFX*{uO(H8%TPU%J5|fPMc>GPmAT4KOs3YP*C=_au)70xgTLFMO|U50 zZ82`UJ8}PEp?qb-3!U~|`}IC6>fE+I1t|$*JLtaXVLvBa>BJRrcWM4g4wX}Av_&x4 ztAk4^JQY4OH5V)2!`S*>&DEpY6#EGWx~~QNq1W7J+#r%OmT9-!aA7#i1c52u>^^eF z1}C@}U<3d@T7iX+!^w{n=|>Dl8R8@SF#G^7t(uvS-6)FajSr6w3JvvJpAR;0J_7ME zk$xC)07kc|Q5uzG&OXbqsJGljP3sT-XG_i%ZthAbqR5SCO zkxCriF5e>&J6(Y3n0X~7GTc&WY?v$RNtHM;;W7U{ab|y+H}v?tCHv?jsXf2vJiK~1 z`s(`{#O#FS5Opb#dX;}$Wm?mnHDU|{JGl5g$ni!2fV7Kc@|?DlTIEt=1YCHaGmOGY4W) zM5V2pj}`4WQLI<1ua$ zlAzXD=y=5;iMJKkU2(;5qHXLxtL5vr9&R(Wxfg*mwzh8{5jYL&)Km{>|1NsKwfAEM z!lM_>-;{4@yZ8csWaq<}3m-@e%>!~)5#A5BWC|Lyb?44q$?d$H)RFZd?HJ>Sh(XjG zVr3WlwnAa~7t}XOw=b`yp;JkQ8nWtPoA{w~d^bG`s0w=R3;R`;jLZ~SJ9ZyGZ^$D&*ApeX*P&k8JZ;D@nSqguyVq?kk23 zX`< znX;34O^~8wR~+jf7Y{Q%dQmz`b|rs8PG=`9BrCxSI4X0G_&;(+=op8c+$Z~00Ep3O zxLzkRWap%gGWwVrU-xFLZjXkU>m|nETxPq_<5x4wseESy=K2sO5~Tr#sD7-4Xw z;?JHv;)#5JT{?WeanWP;{kVQV8369b?#_hmgJdWyZfW88pSb# z328P){oBJ8f|j&RazMgbTv?6I^$7U+cOb{|%EZ8hmqh_mq=~&0jGhj;GPQGVA8@$2S3ei11zYj*}-J zcQNR{dn#KY?sQ*5Cz@(8Z4*7|OXMiNJaaqa$&<8{JJ^>7JdH6!m0o#M$o`&iBcsa~ zq0^4u;xV_~j+vMyp5NxgQ+|b{c}z9d?L?sQkeAo1WoA7olu*lp;G32~;$k}~aZFHE z;PUow!SXi?r(9~zO7_37^kvKAYsc5jYm24T+^$QII`Da=d`H~Na&Cg&ab#R{MvG?U z7U7ha8jvX;)Vb<6D>(QagZ3uaqLB|OpWL;x_ldr8bg$3(y(7mjj&o8~3>H*!jJs>U z;buRx^?9(Leij%`yy_cmQQNF&BNpfR9 zcJRxq_`R=+TF+iO_t@w=-{ae3_Mpi4Bzvt~B9C z-A;*=xymYwdnZL8y6~YRN|cT+cN5Qr=K5L#X$flu_W|qLxmLwxpI3=;R_89o8RT=D z#m9BrOI=9Kc`VnZE3Eh=vFqByD|Z$s$`Nv!yIyh`OWlKRty4MZ7F=xH^!m|Y2zj^u z7NL3ORzsJI0m`=%ym+b(zMqd|BknWOb6%MgEz`QYclbcK*8b==V$fNQ(@wqqVvilN z;3^Ix6@TbeNqMC9D<+}F++W3C_giU&Sz*@p5hzeG@QVolWrnXt&q2@txEiC%Q)N@7 zH)QyK%06t?lKRa6_;->Cae4v+<|jWA7}(ELW_4`{E(xRnRIvmgh7kpX>3ZN^ujko33UV4{g z9~R7SZhLfxN3v&W@ucbpt#)`v=l1R~9cQbGzMDR+3Qk{PjJdlk1BVrneQJ6Ikh?DT zb4*LZ$17Tw4J-}J2)!}w16r9ABBR2yk^+7Q!*+4lFS6yTl(;t#uw>zEkzhy26(2D> zrXL2j#UC71E+Rm)dT6OH00s-(xXy9_u=<$FW;DXPcsQ;6Y!5 zAxIdPh>SoWv95JrKzO;u@QEqg5>apFNA@ zTJ|p%Nx$q?Qpx$CAXwLu)vZtrGXpp!5C{Yi`7ukZ4494iEF2KqP-4ey%67r||IrbS z;e~T!J5P*SBa5Ppyhfa5EsC!Fvc1ZI0o7J0n!LVFj){p;iCA0k&}56+#2YvT3JJX@ z-;?oMa*=-F;GClwT=J0o{-;~o95_37MeWe}!oeMx`vHd=F33Uhx96Oyr@TlnVfAEE zu5e{sF{tfgJ<)+J*ivj#PuRGgFaC-~VnmBd%d3GsIN$x;t|H-^NkfmG7itXnj z>V}NXG)#Js0a<3{2l(;yD{#3RcJ=xC^V$MdCU+(!o^0C#fAM?6c)N|E^6re6u&inFQugD;J#QV8 zKWQ#cS5H5&>a6m*%X|Ap5F@@2CJj0Q~RnW#99^=HgrBqoWj)&feB&yGy^7Km$9SF#=chZgDu< z1^s@?XVoNIr0Zw|z8H&&Wq&N7#}m-vM@<{;9PC_$n6Mqo!%Z(@rp6C-3J6IR0@+Zr zw}2&jAyQ956fF}rzr$U`R;k0RNyVY(DH}Oqp+-X0t}`___13V5EDYn!qCr~NYGTN% zb0C*mkNP_rXKTMfRC=69iR0IzOM~_>3RL+kk$gVUv-Xo3>j+};W6Waa1MhgDa;lN;j9~$AR`lKxXEGCEG>fz^#N=7Re(*3neMll|r;~TCv=$256dwv=lgY;g z8_PUY`VSpM>*Fa2VW`F&Q{yuDg&ETeZ`gw1N)g`@M9D^kxTmy2gRzCA4?zT#63bPD z4N$WO^QQKnjED+LJ0{^pre6EJ!*tE-I5q=wgTJ4ha{jb?;r9oGq-6@sy9LmQ<{t?E z7UztXfe);cvJCWMxokvpuxch`eC*U;?}dC*|HMbcrp&mUJA~P4+IiS{$instIC(=p zE1lDv(nC+ax6R0_G5smxt=vq{VvYH$zE|eOmK%{eY~HbtznW;~Y_m*TVvMU0S;RAH z0e3G{P`JhDVLGwp$R5D7I}kpE_~GZzJKc88DCawg*u-*}5Ep)6_eJo|Arn11{f}FN zcjZ(9#Ngfw?)Yrs)s0aEL5Zf{qb)jXyjXjZVs&wb_Pf z%OSxwvXcIr+R?(`Y>fe&kF9Oy(qcqwd?5l;8mJ8m=Z`i`oSt|KvzNYy=vQ*u@3n#* z&-M)P(B6^uQ)D)decHI^+QM!&?QY~47ivlNgmrS~e`$sKbJ6&0(P{N`x7VeWWv76x zqfhKhYQ*3Mw6dBPGgPDms8pxQaq&(k1?sXA$Q83T&3rvo?qReevY(SR^Ns8GFt$9C znHd-)9C4|!tk4cPn0@;eyr@ZOiLGohL2Tj;*~{rdRHk4dd)4__03@y+xl_~#f*!{V zt{VQei5spoV94SA^tHD)Lg30{!Il6GIa?hnt8zn`lq)@|jHSJer0Hkk#DGj=#1p-Y zA>MLB8P*QL!)x(7N`Z#mx1%0>LrmvEBqd2XZQV?vj@=a4l%li?{JeJ7WBJw8zNahV zjq6&(Cbx*w4OukGV?zdhXow8vVOY3L-WOp3EzC}INvnQVZ~yis8@hbfu+6UfB=?{3 z+=Jew0k|P)%F)^eU-hsKsb3oth~9#}B~X9TH`|*Mf9BwV)rOU!l=GL~7L_B3Oj3k# zgOdMb1U@ucZ}oBSmE&4$Ah%V7NMO*wSIw)#eP~~Qk2x2glXK&wc4uTNXf@Bw0ST0* zqEftl-Obo~K@j_D56^*1wI_YK9U5PQ3jTMfTBQ2ybQ7QSIerbpRBHr9Bmpa8jaJ(O z_h)vFT{DWGi683v<=!`fHDdI@m$NtJ*QY~S^ALK@YmvqpmO9majAK~BEUghSl@{eo z5NB%l!b}c@s-@=~Z+{1-WbeLp8C&(MQ5x|a>M7Ppk4!qXfp`;-o*F`DMV*ylW(Vb* zop8nY-4YShP{}-P>N5Kz%M%mC+U6SXRRs0)x?#AP6t)(xS-H8g;VZJhF(mxRcMZ#;ZnxutD0^SJr_PD zcmHEwY-B(B>G=zyCHXaW)^5!$)MM$MI~oS(i{F=UN1S_70b>OSN+6um61Btkkn2Bm zxtQ5gL%+8~+kl05vYtZvLdu=vt_x*20nM3L4KSC@~@?}?2 zX=B?+cWxcO9-OXo77K?$Rw7JS-bt%1IZJ7YV#77cBhI7aCr;GxrRxijJi4>4u?s50 zWPT$T&LKS6+Z+PbVkv|B_>52<$F$VQ%BFgyZmK?K!4+i|0w z2f>ak8mOxB{Vs;|A9PFbfERn@%;LQfsmaeol7QfjBl|$v57#LIopQuFL`F}1HP-+% z9V85)$FplU`A1@Ya=01*ZMxb-yr3a9JHyM|&KydVH*YtH1Vz2&7s!9!(}t7U0ZIpEzWRH)UQ~f zN6NrFp11?6U+K*OqAdwB=F3Mi?0YFhCiT}#25I8l;y@bFzk0XZ$PB?!K1|AEgkO_15t*RaE`gT+@DtfgAR~qzLOW@_vmvEs=t?{k zpiyYUBRpcw5G`e2t582OV~J5uScqAn`#$wuS6zDFMJ7ea4+AmW{OOLSQ@4=PjPr2l zH?)R7+qp=vgLjQE86*KpGOSnF)6*{;1D*eMx#2oHygwyaU@-`3re z`!4I(qIk<^s503vXcvE?YpxFT@XYiX3Cg_ckSAyW7lA;isw;|K2k|Q=uN1 zpBQ7$X|GRxk~BF2mC&Ko2+Mpw(LiedI&RZTuI{Az&@rn-Ddk7nCPj^!7;@ZN z)sF6^y(#Tmb9hQzZ$mV_NJfZ)algZpj~MxejHnA{0nObxF{VctITq%0NK2e$VAl}g zVtvj;05Hy{Wx-WdC^kfRbiNIutC3V;#wP~BdC9K8EYl|GG0EM#?RtoLl zDXB4<0KFM34o}B0{Zz|?>%v{Hr z9?_FCirEPI!?%7o_72)G#}f`CL}uas6bedrNN_?G3XAZR^))u@$ickvyOS_3t{fs= zDH2&i`NVZ-jC&|+FK>mz_u@`lKf5KdI3!@$y5{bVvPuDAPNsR+% z!`f}KIxf)o{BOM?>0LXkV^O|5Q|K`d<-IE}py=4D{rC{2RQ6i;d842PO-hNtXdCzjL3$xLaY!kp#W z0thKW$`h8Z3CgP@AeS;M`7)aNC)M}xSr##tf>3_d->`-Z)XARwj^^qmt>FTSEBXlM z0?FJ=Hs7o4(0-K6vSj4IN3*@o?2jTJk?}WEAfPZ3n1_0chvSXhNr~`P-Vd6w2!*jI zbf37@`oB13RfevQYJ5S8HRtIwe$$|6v3yH#EsX*Y*YHF}%-6YupUCuWIdOiPHn(Z+ z^thm5mge@2M5nnb$~wNw4J*tt=&5;aVr+_aQeSC2Eow%eTe&0BWLr`^fnM>^Q#CQZ zAcuKrLsRH#c6pE_+d@cx6W1S-&1*+~X-u*5m|4cFCO5C!Y`ES{UZju!!D9=39x}K2 zkXL6HKjA5&6{N1t9O+c9$RAKOEn6;@@M*enEtepLakk$T%Mii5$1?n`qS3Bz1b`%zeTfTpf&{Oc5{cAEOgD#EyuipHFNRTnEvF~ zCU}A&7hbAhRhwixZ04_~V14sK7A}a}?YUpC$Tu==#NCmc2qm8o>ayn6=J*BJWYsO* ztt$j{7Dgci6*YZL8OlruToxLS)L&vm9g&?sA|P!X3yVm~H+<8xj+J25XtFPCdJ{@r zu&vC0d3$GT5~>nx@LE-Jg?RXpLss52f1XGwb%pQ_^rG&KtO%;B)@}DKM= zbAcp$t1gF^33$o{+l%{oNa#qcajEFWpti7v-MOB>2d7wY@SOl*DTsgm0K=TQN{C4T zlGq;L!=z+J)bAONi{dB^;{)p1rfA7SrM2WP9Qn_IeROWM zIy$9aaiU*5vgSSlMfDq@`7n>mem*8ya3Gl9InCfp^GsE#F-po~=nY>{aLx@49tTXTCDVQRgcrIuFTaJC+Roy>W_7gmO=V!ns~Y zUeTpBYbYH`QI%K^rzKcd=o(#1K0{5v)#CKc)=|VhOB6Fk3JnX3JY7X!Xmfk_$wnDQ z#_IrIU-v+(aWQL$4f~5P`J%*LS|Lq;BSQ0o5?gbY-ez*aTg>v;wm)ACX#b_OFvtFz zg3%r^gm=hxF1M&?yJ(%TYs>?w^Oa)N+zZHqMWG z=bWcQfOch;eQR;tDkkbsNgf=wb0w0%t-AxV-P;e^m=q?27$H8oX^s78`Yu|wnV&52 zv+Av)GD$tDVan;cF=;4t6_T1Ipw{&IB`42!Gcn1;v~{yd%1x~BzpMVno7X;vpj>^y z2(7t>u&tG<%4a|+`K1gys6@Kfmp?RoX0JBZ*;JuTVKr22;Cn^S9|_j^VITa~w^6`m zF@myIs=~L`*RJ!i&p_MosfkfV;lvjgp>IpCC6k!H@op7$=)MfB%#xCYnjt)NqYMk_ zUuB(ThvRScc^@dqZrxV`4I4zT)e$H+B1duL;D87)(IBQNcLN~g$rmZJy6T+Z@P0%1 zD3*Q~BGU2*H={I?o-6JtPL}_N@OJ|)w{El%{Lr6c@w-H#v%u}9k0fh=9b!Z~ZbFMp zj|Zs`w64N{F73GtDTU2ca~w(=+j2vEwO+2~yiA)zq1E!pk!x3KvwqT4s~%10!00`o#;K)lv#kEygM$`?K^`M7AL+RFL?nzcsm z<>;INo{bjw3CDi;!n(c9U~aUBG9=G%a8iN86Cch{g|XcSSjm}TGO7L{Mr+M}%&+zr zv_4yf%5=H0@2lz$lh=!rX4r6EHT+*q+z6FoQEY{s+xWgAO2g~lygB*|zg7@rK=rEV z3a|nEGHVOF)0l#4VD-=$RZ8B=uQYMyq#h^%L~Uwr1aZdD9;INa4QA{0@HBBk5T~~C z-;+OUxP2MJk@)QSTkImbr-p?}cxK{*Z!JNZbifGMAdMalRuWZfzPse=YM|D^Nb9d- znD-*{RB$fKNbTd`?~1rZCQPZ+@}< zKgRuTcR*_KUDXh~lutRMW>lz2WfwO9WMdfuES92@6Dh9B04XA26^hbR1#l~_NYX07 z@c_I&W-xetun@E%?X``*w`8F{vQpOX(MZUB=?jQCcM->^eEI-)AH{wS{Zb6qzbNz+ zg1Xe(w?Q0irX*rWnWVZ z|LExH1;Pd^?{Ao)I2$F@R~I7RDzsZO%@#NqtaS;p!m~`cm?4Tzw;|6|z$iBM&h1as zeQBp?Au;o{F(nYyQ;+^=n+Z}`3dxcLW?+)=0kqvqOO_2Cu{-I=0Wfv3YF5)_eOlL% z>PhRJ8;WX|a7-->yNzd_j0q!)TAl`zs2GxRZn{GI_egUT3#usEVljxQnTZ%6_^%1R z6PpotoQtcV6*NYDgrw(0srHpKoMdY5nB8(?)HxcDR4m;YO|%+<3d_d`@+{~t$P(Bt zjL7xveqqb7uAw<3qIOS*A)n-L!=VC1%c$*+^r)U!oe95ksRqfum^3*psXedOLl;>d0F7;ukz$%6YQ4eq1O9LK03=E;CIBXty#kgYWg z8^A*;9H@Rzql_NlqB%&L6A4>b=!(au;-84yX&^O$XNY)Fh(@mYTvE$JV;w4RlHMjs z#q`USk)us1jgaBK?ef1H(mPA`7^tHfsEGj{;(gVGvHJ*#9X_S z>$!Kl36Sa>x=)8+v^p!enT0yd;&`!r$WLOj5%h`Hl;D5 zWXkl;aUbmIfGZm=A@?r@N<{qU^luDc_|KWYtvJbu6j5gedpTXV17VAmTgK%??6|n3 zbDlLFE&~)Nuvz)~r(H2I)om$eYs`0AK~c&$`rD z9`KLy2|(^XC(M&Y>oi0m5GzGvA9JJ5IIL6?TrQ9LD|Th7BvtJ!2mvCFq7D0`4E@CZ zc%?X!@nu_qA@H^CCJ!gn6b)Fc-&^l2F7S#e%>oH7u4p^1Xmxrhp@yR(G58EM_$=lo zJ8-pOXg;2H6F|tKV-d-`a1lS`1XJ-AU2WhC!Qw%sN?{q{TVLDHX*pAngz#XB_9#j8@OP$jf2&POAn8(O6BfSu+?N7)I@I%y=4CbhIQ&%;- z6^V+GB1Ml3g7ty|u@K&-5e3dg(!i7SqJXs2FIJcGjv78Qa;0Y1Uoxr?y<3IETt@CO zxJGK0jWFC~o+l74ZP9;zq0#Fg)s5a>`k4Q07BS5#k_&jGeqGWpYVG|8duE?e`#KIIs=q1wKHLACACQSa5DiN)!}$H%FPFKHhOta zF52Y*IRFSB5_%o<+ab{Qoq2Hd#uB#%!sb&%B&V-O?g=Of4k>k#!dD-ocqep7(KQq_ zE7>ubhDHh{ajcW$k@Mz~6X=jb+NPq}rXm4V&ekybvdAH3Qo-QU;q0h8?^dj~MQmb8 zZKO$UJxOiB09hj$%f;J8A#CQmN@Wxv^sm0qQ>CU!WPRrh6u(SuC6#@SdmLOe2=F81 zdYh%J^eH>2um?*<|5;B*pm#|W68_`a$RgeyN9~;IiRoRD=T^(*z2agw=L^dW32RLP zvo;7?WPbg|*!ihyBUQ9YW3g{L>7H@1e_n}Sr96qxOQQ3I3Z!?U;+)Ihy^`d%T4?(- z`Axc{^yDQ{Uk9Hd9j^46Io^bf02Xh`6S{Wt66L@w-fSi3-B9%^QRjz5)Em;$5stuP zaH1Mm0cwQ*cwKWeZ1gXC|0yORU%|gH^)8x)na}Tht3K-ccNAqhvD}m9^S6$>D^oEU zDxn5Ck0S;)1$CkrKQCzn5BOt7kfF1;V=mzGnbk|$*KCwpLinIVF%@J;R~l_wfCrPFoi z!)_?UR)*_L$tvT+G!=6P?o|kq?+S_^1wq{ewmhZ)8(Nr*ll;zd6;A_jmzILBg<5Xo}r-~auP;ClJe@(OXCV^y1I0})HxHVB6%@z6};}QXS z6#z&CC!~al$>vBd12dpO&=7zM;QX27aWD1(_W6UsmAC5M^blL2DY}wt&|_}WKfFf| z$%k{zc$`e!h`dGx{8IO)gDt+#wAVPKDC%3NBLb$2CKvOVF%dDwZ#V<&-}rAq4w6?C zSF%@-BdJWC+Nk}Gy802{P*x!6aoIW7921T*atJX*n}y2Mj%sTU=p)&nBk^U8AEQ;7 zxPB6o`>VM7vAJ#~Q?Ufr1GG;*mnL@y+OCr>!K5APTS~v!YnjaG;2pWMn&cfMfy9Eif!{I&!7vXw?NhuqSW%xcM+$~qJOD*X4!MYm${o7$YTjVV zIx)`Wq!bf9c6!p_c;&H2o(+4{8`Vi9k6*TjwH5Zfd@O=n9tJiiriv+L1i^PInwh7L zE^UWvThIZP2R9!FCE81wk#>!|HPvf&b#_R)xsARLotWM@%5iakM=GZSkAE*%?P zB^*8+%n_!`Bu&YN1X8G77@@QcUdcqOJTRt|P#tV^)B!IiE`LNKjz9S59P3Jsz_GMX zV57?_b7&m)Q`3$>7aZw=G2(*B=Ysjq;9rDpHbVQkPY7lX^Y6zJiW0Kj{j1y@#quT@ z@thi;2`||63OvmS4>(Pjq;$7!h?4=o*bG7qp}|QN3@LtUcr9nftxKbB0oR}7BIa6!`qPl;D#pMpH|Y|rR6uB`1d;~+y|{n}wk#N{ z{!NdQgmGub7ikVYjWhCc3_4&vbkrV=8h*PC5vVWX0bZqtkKB##LVeg z1Y3=$+R0B=$(V)Kq&@&l5KL=r3zc|$OdrfD;-)9{70jbhy+#pG0V1=>%BD@v*tk25bzSgn88fOP{9}@SKJ(X%og~DaYZfzuAmse zT-!uRY8gXZg{A}4jg6Zv1Gu0WfHR!%N3t#85a=uP6m$$A1RmI$0(Axi0Q`G+2kO5| zW|)D5L4k6@`VZ$9-(Y}8r&p5Ku~&#U&12{x!wdlgzSAce0u3MLA4G28C(pB(?WrP6 zL4tyq&`xLcVxfGxqZcjL7zGg(t2L9RYGmt-WaQCM!^J^-d{<0KOpRDl7D=0qE@t1k zwmOe@^=FHxfk=T=Pm(_5%aY;`_!dvhIb-_Ce{rCcR#G%pKS)Jntk4{Yp6qf6)-*C* zp(C?oh^9b^+&?=;7s)t~6bb=0d!Ax*rBK39HXC2~;ro)xVI(`7MV7X840Uid8+R13 zfJHpEEN72@Q?HZKoIMtuQkO|R!JJikc$~UK#`il#v%iXy z2D&3fM_7v`RPO@ES83a>9Ew9GzpDE-<}#+&i*tR3wRbm%Jjdr#v9rG-6zK{`G-f}= zh3^Ctu{EKo)7CFqXzwG8rj8kyw$rMWO5-x6QB1=1O!u>(T|tX6aEFZ~B`e!BplBSK z8Bg`Jr2RJE{A<~GHSU3KVS1iWWYI{l>CGRUuI+lgL5j+Y!{w@{%zv zAN8`Lo4O&mcbHr8laXP7Y@*TV%Jrqr@knHpGcLER1POTWNFRK`pUFxI0&=F=RFeO; zjmsqWACoGo+4(*LF7(6rBQ#;d3RUl~OWtc(Wmt5&NWqyerKlZ{lOy$j1dpEw9;ZzM z`X#5}AD}^|Y8LEbWSv(nkCrHZm}G{eRBGR#g4^_=;-LFlGBt|s7%@+yB7K_v(W^@~4uwX0>7omCqaB#=ue=sw8p2Ev&>&M4uP=(c;a8E{?aAc9zJ4ujXM1}Mi zm~l{-$B(3f?WyhXfe(nywg|=e?Ga+kCkQqF4)|)RaK8OI^a>ywMBbvqku@3{nPT89 zP=z{ZWSlDMP)vzf=}|w zX}=aq!jwLov5gz)4^yeFy6N3&Y*oMS{Yhz#Fw+mvl=#VGNxmX)u@(#MGq{-2iwpMu}Y#KBSS_{u?wZWIB8n?@)M5 zjr_2}TZZFoRa?t2SDiz%=eIe$dx3W9to5x+j}{R7t{KrXrpX3h?%sumc)JD(1k>^1sZI`zpqHmWD&4@;F)tYq&vJMly&*y(?`R;I-B{s2B8!EqK6nPUdiZfD zY>H5i)kE0{$w!d&@33R}8!5?%Ihk=z2PGFSRs>K~dDH&OBg1ZDfQiewmfAcswQG0FU^5$V6xvM;ciy-}nXdJ_L|D4?5FXJuFN%)VN8 zdmUw>j;bBN#^AH~N*be*vQiP%E!H9P|2DZwOUqm&@Vb03#Y9XlB@er?@pnWyR~w%s z@K|x+m2L`zz`_)17LF;%h!seuf#oS%y>&1%m{4(WOyXfjpFVR?Nf5wvg_z5!t5q83 zUgX>!)AsKHHV5tDiZu52Q1p~#{;|jqLx9ydU#KI4YpSBAo&EJUYw8ZJ)e6bgW!!I! z>M&#}de{WbCQ}??+DQx0&loE|?4BE@nj3(OVsd?fVwVbMo?{GZ75hdaosY&Tv*VPz zkE8M7c}^;1!v#BRbUlk*+n<8Vf2)=%DJ5|V6Lw;Iet*dfeHMi|W55|U+j@&Z>dIp& zb(Hr2SQQdIC5Lh#Qb{EAThaanF`12*Po?0GATWG&ytEz5&XH27b!}zUn1vhL=(h07 zZMCnYDfss@&^G9pWCGOXVNo7}2TI_KgE4Egp#(>?LW{Zf0!k=5VHli{7(v-Wp~TX527Wf?@i3;_)t|!HFGCn(~F>jJwimR zp&q*cKwQIb5l<;emb=3mtYl>1S~?;Pfy?Iz0f3`kxEh?KXD*AQ?eXN5?egR~_Im+I zaaWR@k6w3;= zZ@UddLN}f0{h%j^0dC{}dI4w9Wd(32-5J)3c!a`HsPCiNKTQ>p@O|dsp3Q%g>WWNf z#j;J7C`md*>396<)`#0jsGEE9WP=hZt-NM0H(9iho=u(VBg7+ILt){Z=ytG{tAC$5 zH0AF=k+zLW<<=m~d78T5Z5>SDA?;AMQ7q{F4rjn{m2ux!$zzWCD8VjG@RuZH18%(Th}>skd#<0dBvTR)7MJ3(zsue z^Ny=|xv{$MNy!Yn38$2}9A!k(y3YW5|DFT|V_8QRClaY2_nXAny#7_Sr`izTQwr60 z$soi|i!(AhS8;?=3=FrF`Hf^x92Gv+0C$*!5*pv`vV(-pych93BI{zyC+B;s24_=F zY*XS1hJuL>HPFo*SqUchh$?S8%>Wsq{*j=qXPvQ7<>^mf>YlM$nHi`~ZcP#k=#EX9cJkQgSpYeRl9@gdSGa9ZTOqp^U>V?+O3XM`shx$)c(c66c1kWs}&C)t#}fun|?blsIuHA;A0E zCng+#aw^RO%QZdP}A-6TV$}itGMAoQY4I z>Sv6@2@>+tqIj=X)GLT~?qpcBlBNv~3X8A-vmG@3c~*GvmowKdx7s%PU5Fss)N+QY zv4FInp>PX|0w;fW&gZI&J}$&_#Ee+?+9^SYldYBm3POV=48o!=e^?Z%=*_^>B^;>e z8KK=?)nnWHXOGBnLrmJWpS8BQ^RP(?vJ8gy&<)b79EOW;GLjJCJslpEfJ=0Rtt+g| zlev>p+=PUTG~#uz(@fl2Sc}9r^FpL~9y$U&U`U7QkR|mw8%9+EaG7QLsi<{qlM+!0 z?D@*H>}>Z($4mn$l>Se)EEmjVhi0y;b0#bB%a%vzL;)Q|8s;_nkUj|i;TbAh++HC! zCm&d!1V_wHDFTt*SrrrgE%NBa=!T#;GMPA1iN5?vO^2>aI$DwiW5?!8-7(}|1m$<6 zx=gMg(KM2&{k^r5cwc;##Z`>N)$4q4i~@!hco_h5)<69usKMKtpR72P-A+vE(AFid z-7j!-*Z#$Z7_PLhXMWm;TvxcsX!zt?Ur_IT9pWM!C%cO6M0-pdU+2D${yi5{U)qLR zKY?0oCI*d3QhLW+J0RMc=zwR?R%aKk`&$8WI`TQB8(cM2iR zDnXW}^A;W^Ws2d&kz%P#Dd-3wCq*0wxb2$qvOxfhDyZ5=n*Mw@Ed{?DolVYzB{%Lh|0XD{5|j%{|_hS{zS9EmU*r-)M_%xWtuR~m0ylKTvjrFZf)f)u5~Pa>$Z z!&`)}yaz}c3Fy@}^k?+Q>KIKzy~A(~MUE-;*m;$F??GQKar4e`iBf4ZwKa6nCwukmYnd^$VLN-3K?q(Xdml( z#<_O7Xv#_URoi7vkIJEtX|gE!aLR-ohB&#Zc(Ek6v(DKl%q5{Lb`AmeKxz__sNT;a zE-)cJmW5Zf7SS0gWZPE3{Y!P+OR17gA|uQT&7ycNkA3$9T?2u`Tzg6yi_7-Bx?(w6 z$cVKV7AH!03Pw3YwT;-Drd1=6AARS|ZEN~Mt_A6rRwr>ft?d+Ya}1&h z=T`fA@((&am8_)42_-Sh15)&|l$jhcn&KR=N!khdd=nTK`zh_p1=@jrE^G(!o=fVu z{f#O|@$Fq5A{7hzHZN|*y%2=Jk)9gzqlg;c^*USJ0lCs&{B);Bs=^FPLSZgz76S%q zw)F!$2R$6_B{*#*4?$R2vHCj7v`cxJD&!QnzN~XG9sNTWV;R+Vet8tV>XoMWY8&k! z4Bop_ece8_qeV%Q1gi&c8^2R{JdL`f2DK77WJ*ZB`n(;Oq4}Y7;T;?j`O1oGkSCp5 z5%Qk?!0{>U1mi1bLuV_4l%Y=P5=k{W#(mix#J!xNmhD{qvzE9kWLu=XVd+6b`oyZ9 zGi?kkg}E`gW0XoHbB29KU6sjNA_f2lP;bUN-$>!Nm&d};6$Gb zGP=OHiExI`5Qiw@j-}wXO4==`#gF9=*YkbW1|OrBqCd2H9^z00G3hRkmdbz6Q^$y$ z)ouIXu{BFbL8-u8EWIhy*&@b*iu}j2Z>kJ`Y`oUF{3vfVXl_OTiKz7W5PBb1g6b== zs;6es?{y8iLpysOJdOm*r1lbZconV=+U6PW$0JM(K?62@7fN(_3I@wke;Z@TwC#w1zFqEi(FQj;^J9h4yw>rr&;swqDVRZ$eX{522acIxO5pB?fJDih%8W-}Lz zEv4)CC&>i?Oh0%Sofs6hj}3pd`i{LQqtNq}dAR1pa4t04!|8?2QwkT3rkoWE&62LA zS(yK1?IJY|`lJn@uMozpz)cXtIAqQYk)DkD1+4V1+}*Z5yctlfefraIC+q+dZz${AZWY$Xw?8fmgt&Fq z=L4VOmgXexv?{y5t9EbZ4HlHnrvc7eHC(sA%O~VkZ2!U{9dLe zxmxh1B>tA_BwSHaX{N}#^m?8n+VY5P!{G+_H=F>|SGmFttEJ_t%?bNa#EXgjaLG*tpZ)A3C0yDuDZeeo8pMqXKv=m)l-_@1QYdjUlSyu z&1ZUch&ldO$M^_5p^S2!)?cc+lB?OCH0f{OV$2riONUVIRRz{Y{Ie6slF|FC^N*@s z=<20@c>2c`XPPAzRu;MKQwX{^E+RTS3T76*9^DBdev5)pU!2$;%cmi4A2i7LArECT zhzEz)g`H!X`_ccalEYj--^)2RMiH7rerW<<1JrA=yKAHHKFQdD-QM;1FiHZx9) zw1kVtUUq3XJ5vf*QpL3d1ER3PTudWkhduQ*jGVmW7w!Ea>{znUN>izJ&}J&nq4~3X zQPQkY2XpF=jrCr09yVOBTyl!LSZPHVUJQjqszS*&Bh1hZ^<28MVUO6=yPXs?uW&_= zDTAzPkGuYWtF9owdU1{h3;XzX9I7FYv49&#=Cv&6LoT&$MTr_Smi0xJj-=TaQF^0yg)kMg}PfR)W>&s5iNEM)y4k z3dt=;tf1>mp6*I2+Daylczd@qYIyj&3w8?ynocJbW829EL3W8r1T!GJ0U(TJ%8ytf zrWOcL9u40|<4P~14Ddx`d=mB}Z{njC!k?*dJk;N5m-IR zZ9(A&uJ(=4nCGAtI~Yj}Br)FvR=s+AM$6%WtH!uY{|Tw$5q|mUujcfko0#*u*Xv%HA(s3qy%JJ935 zj1+dj*3vLT>hRBU0seKv2+>3j1axbu$&+Vnp&mEF%4_T~@3eywvS4eIVg}4oUm68M zykwS=899@SuTfQ^WGhA#D|ouvgS#sR=$M<9MX3r7uhwH2v$mMtcvB9wFFu~|-`I={ z#1IW407{r6JsD!=NpM3+;g06Vn4t9MG#hGhY|c=sh-BJsDW#NmCRryD8ir> zpZhOpx0jq*`4x^RzqI6zhh|w*%rqimTRHudh@p6^Lsg;6;7=>YQ|kL_Qk&#N@iq@@ z#9SJ1=ibG}4O}y0Wkgw+jKCGkvbbBgGG5YsybJunu=nrbLxnnGgTCTd{nPd)DH z;~by&D!7n_a2HKfbrl=NC$3$#0AHbatjhLndB0Ar-Ja#E4vYRA)U13(T zFof@vN=9qohtb|ztX9(q-gH5>%C*U)!&`gWh^Ag*1p}BHdzpWm} ziAIVxD76Ys=F*TqXg0wE^;>pdH*YXQxq>}`8<1up zz7V!Bwtp;=pMC<%&RC4eWkOzcvZ{j};>0y;;AqC3cF8#6Y9_;BTC(|6dKq`To`s;b z@g9IF41dy4pkvmzW|2#K!M~mj>hK_Ab^HJJ0yJfq-Uk|E7v&EtIXKu9PN$+xVO}iH+y@B zYp55yQGtnm2%GsepBT6PGPLg{^wxUdSG?Kg*phexSRJ|=;XtVH`}`f7_-!TBFMf_k zn!j(PS(LmzL4cO6@Xlh{-yi!&x2sjnJN8;Y(_T-n-hfBJobSk(E%m%c#MSevGUj0y zs2N!LAuw!)JPPFv1R%Lw(VbXjRReax6A)`=p~vsVy(YcPUdO(A-^iAwhWz&N^4!+9 z>Ud;3{fzK;7B^4@f(-dz#`j)g>h*Rz??;5*uw{pfM$lYb~bK+yC-)&pVvujTmRvZ#8Iy|xFQwE?25IP$EF$FA!-bMk<){!SCWl-8d)j`05?&% z?84vdj;5UUn9wV0yfCxTcQ5%hFw(}Kc0Yz6z#Ju*Sv%t{F{ul!_e^@EDMaHM!Oj zKaCTEItNy)6=RikdaGhJnycMu62VRlwn{nQ*yZRP341CF%uPYZKrKR+AVS{rVMVYl zjmhHbZ@5q%8aD%P_)zB(w^DR4ai2G%Z(KN9e%76T3Ws-xHp& z1DSEkQen<=YYw5c6dMcq$EC235aK;m^_sTC=;m+sp ztU)>!dQzb0oH{-2&9>8hj3Ur)mA(6uvqO9r%|1PB@?z4l-yPuGt!?6nEE;EsC&92p zvR8I|Ex;PYmvt{Dm(Nh!Qyew`>-jZ7AIrWoE~rE`S1kM`i!t{{_EjgoKOZwSdlFSV zmeYqZpF)-J+rZw@iB`|NzLKDRpBp{JB-ROOKJz<>=dQ?oQ(HpAFCfU8;~o}3y;kdr z2crx%>3~_V_4hd6jH=XO!vE}rCjFXFie6)9yvUdxeXcFUupf?x^7p)_Dxk61Y=R3t zHfe!S3)vF!SGU2{So&;$b^VlzQ;-<_7M^u1*QsRLg9(*vpI;KPm)hE^@r(S8T+vaw zPPWBjsc_Hb4l149&h_K(p91nfRtiKmBWrln)fDK|*=wZVXCQ%7V%+ieS@h;AT>`{M zUQ~!dV*dv!K-ItX(WXk`$6%0>`eY^n8V*d3ja|FlrSb?S4Q#$+tVFRRjAU#Dl2%7O zuulvE?VLv&QfP=siT2A3`;8x6CBT0RcFA3|j65xHhh3et`-C_{V{RY6-gd@3OD13R z4tycE2++Dsg7z8o@(H8gww<`WWC059N(IsBn5*cGo{J38`7RNl4YpU5lEpfw8f5wQ3Uai0*IV$K#Q>2CsPp0 zo18vsnvl4+=ypr#Q;OsbbDE3KSq%dD7>%$4*%Zj)yX4rO6}~VjVG5|2 z)waZfZ8fqviH6ZDgr%gz9>Ph9JMedvUL$%qJtC{&BpMEyZ}1wAlW)^M)PaW&5{sl4 z0ASu9)8tOc!;`K)0IVh9x^sosr3UBN#7SR6%FjIGX)+_i4fz%-{b~{KO0pz{nulib zx5<3ZTXoxTsxQfE+EEPva{v+q_5-g)sL!YbqJnF{nLAC^h!<8rfJ9G#Ow97=V38?p zIP@0&G>t9~3gvH!mZPQKPAB30_|9%mbr*GKIlR9+|Ngq(T`q1^$eYf?EZ3B@TBl2^ zT#*30Tb+O3$+qXB7g@WKTtxp=EbMIc+Rc_G;KxuH&iM*tcu{X2T#DMYRglCQ$&{Mt z@Tk4t5ELjqmp6wu<=YTGf^dXqY@iaRWUH6xG*Tdv#@*}fFHLr+jHEHEPftSJND zv25Yx&z#V=3?zclDAk~tdwaCv`Z5vD9Tl_;L`g$0eAfpMl)Ww&0K&W`^NHy06Ar+E z91Qe*sYw@4Pw=X2UNB8-%x1-!xfDv2G)6Mg%-5S!rrgiS@B+GUS;ZCk2*@Nt8Azw- zAy?4$z(8-WJS>vQhp2|QAJHcdNE`txxsW`X2bl!}h-9Mz%uMy%Fs|bLn_9~g^*?|} zaUgI(zf~ibINVxoMJ16-h~p>Fc5o;_pkv%t>AP50+Ik&Tjma* zx6o-8@H+1fPvb9gR%0Y*_*UGPGiSaCYNTK}n5eoaR-_R8w^Tc4^d+L};QP$ssjFQ_ z$=UGYSZFE~p+=CNJ~E;BQU(>SsuffWZx!0lHlPe_A1<3MPM|O-i5cL*657R>HZJict;6*L^yNy_-BM zXy#Uo#n8Hm3T0q13|nw3V9`g;Io4!I>~R(=q9}||kJuP9vFO23oc9h_{PN2Su80^u zBKRSMtt>GLWdG1j2r;AXe5gMXv-sS*K)eX3Wr^#PZ!1ILxe`tG5Ff+{8SEY2dNHvG zsjIdkv$4V=W($GFuwkmm8$SdfAR|wSH97WBuc6q>6Tn|$~ z#*#`XMN5O$52y_+2qbQyEnEPdaPsQ`?*Ysae$jUjnx6^QBmsFW3ZF>Q<_jVumngm) zb1?fse&do6vQ}i+^Wgv{o`2v!ZxGmDGEGlM7RJKy_%q&SRn2FxPJu4M!J%WPPEETS zHqh~pUx$H!nEJe+#P=qD?zuX920dYn%w-ejUfTM&yL{0^DAZFD9kghQjA&4)V zNMxw?G3WzEJfx@xy^OtJRi`)xw0cqy-xji7k1o9x-AY60&K^u~;*cHb>z1hm%M8~w zi77JT$T%_^CL>zcl~9y1MrGt(8~Fe79%5zhs}P$i#si((n2D_6DWGmVk6~j>M4SI* z$}_9-h#)^t=CeUTaq#(H;EbQ8PD=Z}^XY*STYHGL-d^D=a~yA9HnHrXe$1R9X|+ zQy$&V+!r5{MAxc$Wy31p^4i(C$&X&Sf^viD#wW@kl#Ngz$7=&@a9`Y*1eKZL+X(*m_IwfYI z2Ina}Op~KToi7I&3q^#sUs6~s{k=GhKoE{0gV8XD=QR!&NXtlNRYA(RYN{yGEf>9$ahNi3A2q^(qTvlYl8%|xJK^) zn=_raTx@ z_d4Zo1o@ZuhR9!eLjv;p$B33rey*pcaSz!@6f0Hyn|8kew*gcYYI7 zpqdEQI1Ugnyg6*}+!0cb^HO`-dTHrqW4PVhn->r(V}V8H&oz6BA|ByR$ru<)w%W7^ zo*-+g2Z25kI2mZ5ngAdNy+xjYds}fGeirZvqN)g7cn~9&nX(yEv+@IYHpMc9H?&QY z+(C+{~r#WP{VPX~8 zVfnSovpRSNFbI|3X=)x_kh{Cgs9wu%f$P6P`9^i;Jsf$+&2+ z^hH<)E`K1n5;#{^vE*G11>dTMF7PZM?M^9^=vI3n5v1rNs6O9l!$?QS;(R7D3&OgB z)mzYa`C#44^pwMU%w0Ox{PB;EgCY7TMJm74q8>9%5Eua!ugr>hg;f+$cNDd3&C2_$ zEvkr^F615E(7dg@I5d`3ozk4|db%9Y0XDU(8SxVMND8FTD-erNxhSPX5OA>f=4-F( z*6I*jQfr`+hk$#ni%3|jn(&`$kpJ1LEy?|b!i1YHGQ3#<^L`#yr&n43^>`% z4wgWTaK(?tU9S;I2!dBh&y?XQBWs)D6{|@20g}?9fs~=RE59HK`R?#0iZUZHua1r@ zIg5$I5jPo%c_u1V14GXr@Vi<*yq3`fXOd_!1HnU|t|Xu2ZHtqn!cv8TuFn0E^d@VP zLZLD+r0~Sbf$q3!j8Ty>h_&FN8)1CDPCi{%Rxmz6Ni#o6jwlWn7P_;Vs2hi=|LMXpx~5?G-2Mdb1;8h+7TYZ3dv3^?pTIsebp`ADqh7iG7^lIT!+#|_++6+*T zBQyMj8#h5Mvcq8jVt`Ws>?7%Nfe@6wLrRFiHYsqBAX?sub)W?$)f&gNET!2P6_5|? z!L#|!PXi`Tvv@&Cnn^ZO?5l~POca~XintGKb@%}5tGhD>Bd0{|QsFc#9CZuq7Su)@bdmP;|{gY%T z@BR*h!{!tjmxMM1&C5Z#mu28WfZRD(lvXOakY8%9t!(bzKL=M3 zZnmN-Hh1W+E3?fOBQbuP=<-nnYseLod|jH2L|=U*1C-IJ&*qs>1pSf&50bfB6f0z0 zKK;c2q;ljcMqRv2?psz_U=m9Busp7?uXdl5!x7Dmp0y-YC=ypviisimglFmvZz|Tr zZg8UIeBR6H2+uCS9n~t@kHY4C*s}hfGRV;YC#!&1G)|Th1RDH`b7W0K5wTtY+ILH< zM_1r~v7IN~`j4g}=CB~O%Xsh|56y)$ z5X)aeWqC$_7H#5!nO&3X$=7d z?`98khC-<{ov0;2?zCw(FfAp((s#ei_S%);!@65u4i}Wh5of9uR$EA=rQ<_P%H)Yn zNq^GOm)!!6>8NLopfrP$PVjBO**B>z-N`Pn<($blaAj{5R%lhl8s7Hj?AUZNya$Uf zj82eLU|l~M9jR?>qRKM9mIXwoX9aiPcH9MD5$a( zw>Y4|{t-bzAvG(f014WJDz%N?MmkI+Ojyj-cI2gR*w}l!jW;Vq2&Ao3)L)Rux9Id& zbYrQ}eLaY1q$~$qo$gDXsct?O0VU@-rS%k|hMMD`=ALMN^}gn19_{*Tca5hV=<2F(rex^GOkmyVy|D3&nKuD2 zYkNYP`81`%WC%kPcsLbNpkXQ!YK-<`F}n204D4q(SD9J&uPZD19ThLP25pTufC$I1 zqYMJ&clz*>R2d&jLmyM~)R48Π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

  • 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�vC#LAknRJ?g)-V)^p4#qh9Od_HC<>QwD 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 + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTC75F_W.ttf b/assets/fonts/PTC75F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0b83dc65c46eb3563b44606660ad357ee497a9db GIT binary patch literal 386628 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

    O415%^Iu@CaPJ3)qE=y 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTC75F_W.woff b/assets/fonts/PTC75F_W.woff new file mode 100644 index 0000000000000000000000000000000000000000..fb6770bb15c46369f7766389827a4857dfdcd491 GIT binary patch literal 193812 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�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

    Z&CR%6sK|RS2Rg4 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 z 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,mh!%Nu!nR)wTGeX&^FyZJKyB%ICZN#ra*%4u| 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

      e!Yfm7JE5H$yP4ze9joJc zJj<`Ck7CAw9^V^KpX!af<6~q@O?r@N^JZIseJ?&Ms!>yQL(`Qz$F`wk;qO{oyGGV$ z7v>v$=N^%;pl%@DVl#S@;K95ljsZ zq3e`83-x3)2QF4^YtvmFjP^2Ph5Cm93P%L4&Cet?VOrlv?I$_B2AW1+EoMzOIK0q+ zeO9{VFehd#aB#S++IpalLouor4H~eEe#ey7y-Z+tUQ-2dv|3HEfXEo~(Do6W%a$(8 zGr9}a_s++@3SlxL+_*DxJeL=dB6kEqKb@bJ+19w{> z?Hs}C@Y3JPJqSid+Ciwp?6>z1EXeYG=j^j1Tf+0=X{hdclbu=Fhp{^dp%FMP_uqx;mhi!U2Q)G0{sY5&q4ddtzvwLe)Fqgb)W2SA`vJeSH zG2DLiwdn2g1 zlfZZiLMdRR7?a$Yj%%9ty^&UL7gLLYJYrYabGyrD=W_Aad-S$)O9#)2nR2B3J_V~M zAnvezQKE+o?G|oa(pR=j)XY%Vyo(2Dq)>;hYcy|U@qkG`bTYuM@qB&DLKp3JHuAb` z#g$4iyl2lWJR9#=#_GSP)wGbUrsp8_;vUJm#~0LUr&&!)B~He%x=k6|S{s$CzL3Pm z6MwVT!Jo)1b#{}0N|Zh$);#c23*))pMqvLhm-9v+*2M1JQIO?*PaQa%_`s~=TO~)4 z`JI=fy$m@58HzxbbF*1THHUPnFs_~?!roAI<2iFuJ38)Tg0~snpGsc&VUF_Hn6Cmd zk>3@Ey2(cxUAIA<&)X*-9pFblo7+h-qCkhuJDx4dqt2DYKTDgkTxZm?lCcfcp7Wg> zgpw-vJ!DnkWhIAj&rd13Yzi`$jTCTIV<^u^T?(%A3|TQ66-joR$TN*8HQ>YLtx&<| zjPV0ocWAjb%-dAIgrDWB#sP*j&+4REz{9R*R;k?J5yG=v)!5>*xHj%-^OiQ|%3)=F z9y^P6`-HKx9Q$~NH{7k}F^7r%E>C6ST;N(H*hS2o1DmcAye2Oa{WwH^B~PD4kr!wS zQI?x(m3`J_Oe}k&&9$Xnu5FN*vrwv{Rk&Z)@@?b?sg~!3!i)l{cE1>{XjBT!_bFy7 zUD;>bmvnD$kwcXtiudyzwZw`$_N_{?5X~+6DEZ}FN9|6n&Nrx;${B}!v3-vVC))r- zd5gkw@$C}1{nZ)Jx7HsKoEq)^odkyv@G*!*{=O-@jgq zN0;jdXZ`bXO}ZaX>J=Td7qw$Kby|Ng*6SW=;{O=fr*MD8phLMYw518sWYa2;EH0VR z-A_Qgr7d?$@UUrgtk`fP%*c*+`|Mae?bhO$x3~wI?wq~c^}S$%qI^<-Ph%!X_hJ!b zsBb`3K+eG49mGo%8>$YdgV6_6n*8uau*#@)=9)}b9*9BHd>S(IR;Qc}JTGnM=}yh4K5m`LE-?Egq08NnrXP8~eP_Xg0b%nBfu=nV{re(LqlYjshXfGC;wBMQWQ% zGm@j6p)Vg%8Bug+Gp3J%xZAgU;Hl8~tP#FV9e5%%d2v$=`XO}5Ak>WFoz~+ldd9J& z;5QG0&oa5=`f3bizfit+bOFh!+sIw zqbifrU*c>V=<^1!?5I6gObkPFJBp9}%3We#t|`h4(3!$@ZY3_d&W>gW6~FqQfNe zxotuuPpCr)$?AB2{mT1>D=nx{FsU z)H}l7{$)_gkE+45{N>`@;Nx;fH&c)U-6GGCiCi&Cq!BcvaJVY!jNJe@`2J2Er9xEC z%un~XY;$~WJk07X9P1C*B-_7B*vvWU4E=cQEPJPYwPq3}btDhF_F;WZm7~J^oYoGL zVYzG~ZAM_|u0-9!Z0hhlcFixSblTUChWxm+kJcJ7OHU{9Gv*me0MER&%7K6wm0P}i zfJv87CEhSx3A?sWb`26U^A8=l2b}Nn*O;n?Z#k3O%3yk9aBU2IYVWHVz#K3rkE3TgMM+TWWjR*a)F$e>K+EW-=w)jf@bh0%PD zR(4WKe%;_`J%#b+CN9~Y=8<}haiiIHU&CXFet6Weri!{(jFdTz)$_O>C7Q8rpFO8u z)R5X=IDhPcXZ2IRT79M8r$k8C#WF)sDI|z!m_h&ONRO`(oH1Eki@M7KdzM7GWY_X8 zD81^_(+J+5#?4gNXFMp3JaL-kWL$!Lw%&e1xPNhI-(`LOLz$?Zt6>1UkBx9sOL{4* zZt1%RSIua`cFTpvq_s#c{*W(4N47_l3ud>zNH*9|b4U2GnfJ7GF8MgvE&4L+eA&1p z$55mxDnf4jzCW3m=>1_#_x?cV>Nzv>WAbpT7@j+ET9cv)6F(kM=4vRG@J!`5$mWxm z*S|r&d5!%ah?Ju=+QQv|pEH}hB$x5QR~}p~ zUz*%k!~)-9o>yqQePVeq^O~;u#Ru5I*VqaqT(D(j6&&R9Eo}JPNAbrkCb#$enb#E6 ze#lA38QRe%C_OI8rrOWNVN}>Sv$x@ zZ9Dx{wcf1YJ?}N`HIRc#*AumJP38?JH;WW`LX$=lAI0&NX|h}Ci<=dx)%+X&y8GO^ zcasEe(*;E`wmNy2w@s)n1MV zP5P#>*;EJ%mM8qNFH2aZvqhd&l_hFy^3ZY|n71EO#uyEUv}od?G8BDWn%dVMONZZo z`GZb->XL42G~aoMdpgx7U3y#FMpj9Z(TcQ^uG>7aQ9JRpVTd!jqEt0PSr`MBWE26vn@*p_wNV0gl5=n__vcfRY1yLW_hCe7oIm@|Bv7#}0 z3EwoekmUeGb(-%RHi)69lr4A+85dd8XdFGn=dCyAUnzwGrK=AGy9 z?QPb5_)ER<{(MpAbMu5U&FG(HVQg>Pfsu*!V_spfLGdVyTSp~Pbp}st9qR_xorUEz zg?lKz78ePRkJZ1;`guHmm&3YTM4T+1pH`D!`{0A5<+~>2=M4Wb#n7gBSxhqhZevM^a&KSPAJXQ6BaVV^CaY|d3!C9-%zTX?45 zU?J6Dh3{d`R#+{RWky|C%hf6nv<#Q_KkTNSi%&i5)?-|zx zfCC%S-SN_W)6zYzZCy-P6rkU)ix`)Rygd++^-WiY zD93ahTl+8Ox++QX1^C<`s?gY?+n;Bs&(K6{G$jEs=+-p3$FYtDvPRRD#`1=6E3O3 z)3dl6BtL0*gH4Dl53j!$7e_jEJ~1_ifL)vJw&H|64&74=qo^y3p=Zv64T;kae&Icm zBlz+#jPDZ>nrN3T0C52%U~FA$T-|wo+GoUoH$N+;);#g;`ppeW##^u68w-mQ-3>b3 z9lY>I1-53&`0khcZ3*od-+*se@j#Ger7@qdm~T zN1W`n_nbuP1hZc_1)RUE6v;kB1^K`BFgN`04HU*SJf2Lm4mnbhr=`6aC;#Fp-Gsc| zO|H<|d*o3#5f5m}3M&dLgw_yzvRb#g_!&#CJxL21;pDGN*eQsf4(S74uv6fwzYMyO zphXjW)28Iwp6iwC<9W^36HAKz8b0ro5s`)M@!O$}Jf3_ii|r5IM^)oLeq#`t@b%^# z<_BZbQ+3R_o4&V2Z}T3rE5zuD?MM2eau_>PmYW~|mSCZ(wMAGzXR~%XPCJ7*S+9#r zq99L|qbj3~>j}~X=Jh_W?Y9Rz%iH{!CSp8BJX_uXyrm+u*uw;D+C&cv5JopLRA)^+-T>;sLf z%)^&_=geJuLmRieCYRQ%j8cg$eWeuYI4y$`*0k8~n@+bCX^T3W6LBnxbNjGRCmB4| z-jaU&bkefOr8q%~aGevGniNB%UR0!eNU{8y-x-k^?daV^r4I?bNb#8I`vHs0Am8#d zu(pZj>x3a5df2{|YpqTWe#;X<`BpaOi9weeH>skGUX8EBX`F-wJH)U-YA0A1e!2fG z6yh5lZMZnK8rM0n;~kNr;!wlbpAZ!++`4SR+q5lHNk9^dK=h>>iepl&u0vX{t zD`;&f-=h{7p6ReO{Aeg_FMOUo*s*Z?B{B77t7QsUZ^B<~O~ZZ0|A{*@EsIS7GON%@O6?zL-<7<9ZwH5`#RVMeS&nbjVuU}; z!q;spufhP8#?}K#k8z6C?+oDI3azVYK4<|v_mAd&@zB0h%9TMsIEz?v(b%r^t!W9s zvvhV$fhg%*TjrIZ6I$8wqcxX3G&}gnju#vw)k|^A9NO5pME|n*BJ9r7(r&&tS9jH3 zF<6sNy}ocxxGicn-KXXmdb;1YQAroWsM`XvcOCw?pr9W8>7>P>?~KFoNc!fYOPuVS zSXHPnk60S%vc2p)EhyyWZ8WVI&0BpwN|qkV&nM-tHZckW3ABDal%E2IM=5YV{e%+lY~YgJ zysM@}SzZ#pOhEo+dix_GQ~HCbzRBWA>O}C&Yn2>uFArlfllxuT_u6g0Ru+IE5T5T; z5*E4HB$FIWc2Z`EaIFQEcfeMd<-serUr>RJgwLLkafKu)hH?ENS&lbVpE+8igwkK{ zdo7Bt$!eAR&1DOgy1e^wifm6CyW^UXKA$zt$8~96Pf0QTI%U<7-ggZJ9{t%=*O-mURC1=u#n_&><2M*R6wcggn(3%SdDUu`FDs)x?QD{)a4nA9l(XpyObe1jD_O*17K+wY@ty3 znZ(GqbmsO|e@LghrHOgmw@CMma4sqJt-WNg11F0#^{D$wOApD%bMTKT;%ZN1Ouxy> z;ddO^bee6F9OST?FDt3tG85T%WvG~Ev$yT{NHP(6U`OjcXbFb}wH~;sS>k*ELRLtP zaC!6I5?=(h1n1%#`N$@+Ec1uc`dE5FKmf_-OXZLM7sx?+Pe;iD13(HZ!#z*J> zzW}!hNcL-)?L`S~>5o!QFinN_qh^uIyHxKe=9YdzeWP~zY_c?R%s-|fR{6L^;_yYj zTkbhDMg7+Kc(p}ibH#zB?IL}eLa~1Dt5W9!U)6VGw$8t~;IVVr|J98t%G13&cAvat z#49}89WJ-u{+`U9l!c?jO$w=BkgLw@1t?E8MCGjvcY)~(0MOKED#=P~?jouBVN~fJ zBd;i6ox_amOfW0Hl4AHu7!1>EzJjky69rc&E`dM@0{j3y!(7({hp{ArDbr6#fQSG! z_Y)F=>ml*;6+j8Gc_y1elfUc)JAuwc@cdP9PYF}wu`sQ2Mo&;=C-nM`^;yk&5Kc_h z5P9$J)55wb;JT?&m)bZs1m0J9nOCs zdE@ zL}f${XGP}G16@u?J(J)wVRByufJm*n8?_<>wvL)8<4?&kweLr2_i35CTxAN#v`+5! zkiTqv`+LZz-06j}Ad|h8i{=&tV>Gr{;^oUOUh?D(nUJ~q1^1bUqjEg1s=Z^od5Ujx zA8tt6&RXpzROUXyttQahInu9G5%1&_hZ(&CLIDK^ch*%XXjt_+qI&=MXf~_fp*^S^ z{13ss=$}!6yq*dm$Qe;v>X&f+Ge{cyM}Rm6131WP#y{1!cq^hnZE2y_-wDLWZUPa7 z3n$|VME@9HA5=KW7expOie4A`868kIME_tMF&bq{AduHWzZM#e*8Tw?zk z|I%3gj$5U)Pm78BpI&Oo>&(jCPh#WQ#fel2!A}RdnBvX$YcFwNMH(XyKH^c$&=4P= zuw=U`{^U;Ec`exO)Tgo@%=M3q&z?<#c@ZX@hj`PrWV$Au;)y}lk`Jf{=+IvE+8a+u zu;j2*5hmY%v*J*kGf1LAr!SR!5l=|XdzafE=8L?tH+Hh-iL@v3u1nTP)zV%Uj_VhG zf3Nl)@y;t{Sh=;&s=>lXa;P)Ksmk2C9nT^mo@M@^S3UhvTo_Tjx!!LA^R4Z)>)Gdr z>wl}Wi&tiwJ)V^=bw0rM;V_$4USxl4ij8rvL5QONqOO^|BwK!B><-n5cM6BwmT}(_ z#^cUQ^ky-*wG-H}5+oSZVglgc` zuNV={Tfe6w{npZ__kK^2A-nE5ygT!x1HS!_=W^u|jt?dEB4`#LZ6eV0kL!=A<0imRH_6;G+U zQyVLN@XzJa9no(}c?kL^#iApQHECCD7EXGj1)1Kr5a9%CLq_gH5cIHnGTtY&+GR34(0hqkX|U$}bliSc(xLB1~H=ySy*9|kYa zh+hMXyp@M0=g92DFk^kE<#(bb zI`{Vv9t_cmk7yzKU(h<|*mFSqiG4ak&0eJZg?^>9dvdQ*0&2uhW`)Qhs|nIzYzfcPBJ0ENMOMHfi!^1lLW-kqJS_%54>xOMN6AKW~vxfP-{Q&^Azd3J*HOU!LrF)3uJxm=V5`8 zFh-^%L(h~F|7AYyTefo@ZON{=`bUCYZ~*_Fy~lUBCwdg;y;GmkX+^ZP8+4B7Ia!rI zz2)7k==c@Jl)1|iKd2=3R6{=pa^Lx3hFN~dXnFIJp{1cYp(nDnPbY0mWLS7cO2GF} z@Geff1@=s}e78CRh9Z1gB)|c3&0E}-Il*B-5npB=C!865Bv3}CUqMGnF(smXvE`PR zjMN`7`z(eoVO-|)Id=#|`=L>%=t-EC?Sb}YLmUY#;9hCG3c^zkoV$e>d5COl8)Ux>7 zw;wOC>xbV8+$M*n!b?Fu6~drU!2LgI*}qsM{jyt0qhy1EU|UUAw?NS>aBxZ>5C|ah zW0u(9==J$50uWzU;y`c6cES1o(Gh{(gy4Cm>Zunin{-48$o%bGd|34_+pC;tP;I%Q ziEHcR$jC^w(A5PGUACwVyg^W*5c3b2IQ@sBr?L_84=Sg2>Br2zxTm>P*!$|H>#pa^ z7E+?g-F@R{r7TflvhHG7Y|!0a)9TKnuIax;#CM0XFx3Gb)Z^z0FKaT{-Ey#D;fJ0z*B6zg7GG4~avNdFAK0N)-~U_Llbx?m7Sv~rM~xqS zlw#Zs7h(%|QzC2}gJq9EDEHh9$evO*uZ(Nyl8|1^GxKMgo$vLR@59YY`lwIsnVZmbrNSCxcXM zi(19v9_Pp9CzL3JWja? zG#ZqAGq(ZdA=SYBS=XC9k>r|9mK`R?*hR;^yj$E=JpyQkKGZ1O4EaCwZ-g)a00$4= A(f|Me literal 0 HcmV?d00001 diff --git a/assets/fonts/PTN57F_W.eot b/assets/fonts/PTN57F_W.eot new file mode 100644 index 0000000000000000000000000000000000000000..0bb06faa9f28c8433bf748cb3c0ec994f0678935 GIT binary patch literal 163618 zcmagFQ;;Q0(*}6jr)}G|Ic?i^Ph;BVOxrkZ+qP}noVIPxzTbbfd$svoWLD-=6;Tm| z$cikoKi~lI-{64%0TKWJfWt#UgM&kWgF{{eKw$ql0P@N=;D9_i5`gmmTK|(&0D$Cw z+It}E>3{nFD@6Yh)&C=?0Zah)0GIzP#s4hl|KI@d_&+KNKowvCumrdPZ2vFvKPLe| z^FN>Se|+ozc=rGGVgoP%SpEY$K!Pp^vFT$+gafS1po;XKhrlk&g zb03z9)d_Az3?1=6=Lz=X^qs4u9XfK`RBdI18==GSw$H7(B+ZQfRT^CGD|Q{o(tn#U zLM_eab8y{`AJ$VrHQlt*c=c)^f-U3ZV8aXeTwKJIXZq-WtHg=m9OzcliDQeX=^-AkV|4eUY> z%X{xFw>`NzbflU}2TcJLpW|JU*!3qQg8%wVxQrD@)SVNUhUqyvoYKU;DJv?e-3s0k z-J!anH|6-0e=~qUDQ{$Fb756y*2J%koTbQ?3@a>4*>KrLE_MsudDD~o2lRDS*1Hv+ zyKy3X?gT~)YiQk8^>kNre(=c3n>(cl9VZ%ls*%fb5+eq+ovy8$ZZ&JS{&0#`UV%@L zh&qSZ2eN>L2kRq^Di2Lp5<-uXmwALB8|UgRv>>wr5VQ^KB+V;`$HqnQ9T}Ne9)>fl zC8n^F{aMjW71vJdXVV6I&&sSPz#f2?#B2li-Z%VmZ(ehdW_w#c1ySc&W66fZCX`?n ze(Ogd6TrLL&mifDR=N)u6VKgYgGy+*Ok6=z3RG+`@MN8EHu4CY=9R^e?cG`ijM(c1 zjjXuc1bj9)XKsZozlqHgT_`^|&blMF3T1(47j#93rYMc)$^8)qay)Q9H%#SaQX$Ez z%bXIDPx5e!1c|M)XDTV-y2*H9AH2ux(oC(bsj+RRMU613q_4kuH*D{Vo--dZCst)H zccg9rmmgv$7x>Fss1w%RdQVl!XT@tP(h6&VwA}rh`^*9FE+7xJ4uV;H7JH_Ux%we9dcfd|1ir^R}1k~U-gx{3JrrW9F&6MTjP2{_Dh; z1}&Y(EZ!ieSDsZ%yDIc8wk1`n(b*L3Pl5<|nUHQqeE&~lHV|=i1EYSldj+(w8mjH> zY0`$@E_~$MtJ0`nZG7avyGm+rzS-YB>)~d~ei?(E?yFURMUjiYCj}=zbU4Au`NcY} zvv8WB)D-ZiJ>l6pgvMFtc%zG04Et;bW$52M?D)LuUj&gW_)%YqV7WWdK%?)rDW zDclU0GKg<^N0AUpND;eqstE`-{pYp5`M}6Bt{_hTE|)aJ~M)+GkbF z==uCHR604_HSNCXq|qk=JruAlKrf{L_!S+v)mrpa{WGXG`8O#H9p_TTp>kw}#}42s zH1~|mL`Ry8iH37qA`K^k9N9RYA}pg6O@T8{inX4qd}f4=EXKT# zf;2P`o*s!yo4$TmrH(=4Ca4Na^25MxPw8f}%9pB}m`ueXTVpnF^b{umjV5Gww z4m%|OhkwEC!2xn2U!)KL6!}Y2`xc58eo>T?IX;p}bh(6bRXGQJKRN)yIO*42A6I>@ z4++z_KQ6d3@is22OW->#lliS-`f&8^)RAcpt@Nr8(NHUUxa@~8c!7a&c{WH|*^8(c z0)FAW{$QCjzt7f);0T?~u$&DCx7#T@D0-wiP0z>ZaFd9(!PcPZTa%7q{28J$HsMDi z@$J}mHvn^e1ok-@@u7iKpx0WsD|e?*F0M>b|D^84TKxCplNoH#n*EioyO9(cW7y;X zTcfT&{j5j+g5&a|?<-ankjjQv0OT-;dyymZp6VaF|rW>-RC5igm zf#X2lFILdMAQ(tw{{c}#!weHx>^2MfyqBFO)QH;v3v{YONn1#Qzc~M$s=n@~4JN@`ma`>ZW zte>zcafHetlj(lgv;mSLrLx|5{a_&}^3Wp$Ee!s0r^5s`ee)3NF{z)N`e+O+TR-JR z)6>MHDMmG|(^^o$BxLw7lp0(`G;oY-=F>l34=kV4WW1Z-aj*==tN!S8%m&*YHiCQb zhkPWL6i7%ge+aXL+_Xmh9XzM zohjqARA+cXnDG&WR^%^6MT*uAEF%5zFtq(CEK~}Z9}Bbzo8Kybxv@f;W)y1A|H zPRY33JM!MCHeqhu}T34L5UHV+*#a&YC3p6t-MU73n5ApVsL z3#4@5NYgwz`TKL9q#r)nN-NR?nxNx=Nv`?VmpLiS?d75v^ z6aQDE0a4s=xQukCJV++x2W_P|IO(cx2tC7`S%ZG8yOx;HRfmpvWQnC4tN^BoW@JA^ z_#5hw4yoKDwO)|9Zn&s%r}Kc=>!FvgYnn$xsjKPi3bBt16!=laJ^_zI?%cMyYclcx zN=J^gw1}!74urIss&ZKro*(W5xIUd|cy52)+J@&H>QB&XU(BzDqRl}@r^C(X^(;Q~ z`36wxu|0tfjAF{##hu%BylY7zGXm4TQUHZ4vCXF?I$X}Q!=QpLIv=32xW2`maAdJ4 zQ@?pz?U%kN9_?D$vxGtB3NPgt3svu*&8?uag}{(ak+r)9iPL6uLf5|2;Jun54BkEG z{-^+NwrQ_)u9K-h81>P;36DAi+a^0WO6h#Rh`gJQ7 z7)T_+iBQrtw1qe3-F`*6Q&&|P`WIpG0xSmX8wI&f@8RmkMCZ;MBa~of&`qf&je(Qw zhBmMB3-T*i08FeCS{4qZ`OEtDr&EacR&fxCN(2EEE;|hJjf}23fxXA$@ZW4VLN40q)r5MyH71 zG!TOpMUo{Ce8RRGi)PR&WC2jszr%%hBvgA!LZ-DIk&;(U=N3JLJb#Nh%|{=@L*DpJ zU9g=YTx2P@5z!_snSaG4m!g;g|3uv@jx?1fW{#m}QmeSbiNkX;WO3W=M~FE&TcrKn z!RUj_eHoQh(NK0}Q#CKKO((KS43Jbd*HYjoMHnciV1(wqSYv*(z_B04{xq|Bmxtc} z*5uiuomPus{1e1;4pUhF(yx{&D4d;<+LoI&I0MNJkI#LbqIHP}0Ts3~%rT`@I(=a!0YUivH)+MUkh_zNR1QFpZ~!cF zpw`X}ymT_+2`~r=I#>2Nb?~vj70=qISp_wrmFuZ1x^~4+p#62+zd4j%%2bJ#2`O~0 zOqyZ*(fhR4c=NhTINpAyyk(V+tBs4@iZ+voFkJ-3G9rvI11_g6^0F-kdtoXe0ZNVu znGT&!_xJV%iO@zOz2IE&ds%IGr~ez{Qy?iGog}0qY>|N{*3dos26f-X^sC=G@Lb3;!bkoQvc# zeM8Lp_-1!|y{i&@#nsYUoy-C%L_b!VC75 zXy6Y0$`=s2Yx8K#y5waqF83lXv3(EQ3O`LvLae!yPhBEi|C?wxYvQmf@?XAJnH>xR z-{d@a5LYtu`29H|O34U$=-#(OYxfR?hrv(~j3BPiV5HRZ5~W`^ z3ZD%fTcFs90NMFnSGJwpbTuWs zPC!eZ=L-H@%DPS&#pb26C)8`HZ#hM06S>-+b#vc6ikSJ=ywmX@6lSuhwOR5fsUq%E zdVnQlzJt-Kdda8~tu~GEEN8yMFUB%A^}*0#LGhOz?ezXzAYyblub++X{BNGECfbE0 z8%XAE1!ck+O4JJ4vihyxDq3m-JyRb}P;7?i*WlG%EWFIT!it^2+fOV_G9(xG2f z_A%en`W`1dKc2cK@IKTR_Yw2sGR0^;Q&*RH%ZWj2%xSj4Yw2+gk?}QH7!O`b+w_w2 zFM-4k0T~P8bt&W%#>HAcl?Y2-0vBvR+b6yHB=sT6yjv+iH5PN7o?IAsMLan zA}~$M7T^0BryjzMmKWMl7*@#MG^w}mX-&*WHI&S*BHIMZj5di)^By! z@zdbg7i}dOZ|r&~f3d;c`ti||3zSPH&6g^nfik8fx%gq~;h$_mFY#A_h4K1!TSq^d zsD47wew&^&aG|PwzLn9ZjgGdn%HPjT&m zw3gb81!R~f{%x><^U!-qq%!l69nL7!Uf-eq#2mFKvD=cmd`EH8VjxkY@C+0aNUNfP zM95eQh30$9N)=MCUTGrqrF**6>BC_P%Ry|%VL~5#B;oJV$lvUXig2Nd=`1c$a0-rS?*_wb6$nI*Ss;x9q~$Nq^Kh>zoWp@WPZRt>r^i=fV!y|8efx6kPu-!qtTu;c#iMd0+ZF4ba_h5Bqr|HvGmcz zhI|6f$oMh9f*h_d99b7h8%mVdZ)g&?%Tmd;4Q8_Kp`B#P^uEKeEzZ;eP3hIFc8zT2 z3Rm#VQg3!=z1rNxFgi+t5F(4?L4#-_TV6veMWkC$YUj7uNW0A2}XFL!uP%} zyT<0gbtlCiYpxDq_%JzaBSEyzw>|fW^2Nqb7(0qdSl3 z%Fnc@u`F4I{cifsVS&stT?v}O4+FKUCJ1tZeu(NB%$<7Z&7Fv_LjTm zTtQt6j0DG6M5f08hGb$@b===9X{?mH5hakpI>x7qgkQ1u&R}zsBrV9AS4#VmH3_%y z3j6jgac&OMgucP&I1h9S6qn32}WS* z)F&i%!7VC^smlYxEEeo?rW9vVlMtsK1JNuBSXIIJpeh?4iA{5z+#&j4&T&VBMVZVG z>!zeGLz<2no+WG@fIwh#K#dz-s+tgqK%-q*kPA=7knaHxPs?Evu#X&U3)b*fju7oQ z_ygD9R3#(aWQ4!&QQLIU#T~UzJKzeQ#Uq|#unwcHGEiKF2&v7SKGZfdz!d^Wny%5m z3qu0!&jXH3e(RAUn0@lE_AWQ&lOmTzWP&3tn#1=vqBh`1+heF2_0nf+*kiAsqf#Kj zVtEXMgTBT0)HPO>y#)I)I{AsWEX;yCT@@A#jR-6}IUz<_$YM{k;>yz0w z`z9vdnFaW??wbiz%u(z^6%B*v^I;uno&*-dYbP{z$|8AMqOv&ZzWxFhh3*!dJTNIb zl!80?ejyroH_#|<4NTk_r4WrDHe@FYZQX-rZ~3yUdW{RZk(#oTda0+rATwWXi^qbs z6?u*^mW?qvry~yw78f==x|rryz136hk{@79v`>#C6-9Ml=hCW9&h!PXWK z;^Plt2z)f17>!Kv%7X0!f?DXn2x3%Ijtf%FC?<#xuiiK@c}52iwop2@Ji#vbb+Nkv z0C$IzK0=b9wDtBC6h~{$fRcvvqrG)Z@Zg3H71hiG8FR~0)!cInXh_+nPf#1k;1Lou zhfxR>#+CiZMu*1^tKKZza(S@LC6;kQrp#+~Fd2+l`SQlQH-IBuR3HjT(e9E9J5FTM zfaQ3Cb0_}R^B~vJK5tL_(OsNs4feyG8y4O%-ec{G_eZ0b_cF-(??$1ez+U z4Ui4JbsmN#3V8`95*6t3txAzoip$eHZcc6L8{5Gla?sETG@3Uts)KR{w@{!BPM7el zjZCw*mM zSNPw`a8^e6ae8>YY+Z8WrzZzpgyqb_BM#EA*l=I4`qMH5FiE^m=(st(+$wW~eK`Ky z_DA!T!$4bvDIkGqgAqO2jJ6Va4r6HUIBy_&h9AEu@Yrw zwG^*=t=c`0BvuATXEjk)303)ahQI zokE@#ZNMrgoKoOkIp|UG>y=k~MosnEzH3*A^;r~bVw^fvH8rxfyth-K`RRU$?Jk`8U{}}2? zJcXx5vkEI2+$q`c4>gV<}x$t@7-VsZ4NDKs>nH1^HN z2w;Z!)kNAg8Y)35!c-V-iJ+ItOjT0!r2jIGTWFs$Z*ksWnX}h3OYyq}4A;}={9uB) z57Ov10YL25T$EjfVig0YBcVfZeI(1b7Xhguk zxIP?}x9oUW@{FLUR2ni^(RN`I<6z@x7PN-GD=smWC^`bFe+dieA@;|tDk8xq0YY&*DGcU;PRrQO4aLA8=$ald#BwQ%?;lFGpL~{D`X60F%31}w* ztioRXA%(d}r6ElMG5cvmaQcF8VRs>-Q^@+L4-qYcRwZKtfBPFoZNm_9wK-h^Y~fA? zPXm}h7g!=i*aO~+C?ga>98mga0cViVBh1d@-E*XU#{FXwu4Tc}^%$siV)bbfqNmA` zSpNYt6jO6fz!~%ZfI$-V(_x#)a_wK;NgYldblslWao$GA)EI4Gdaf8o%if?PPTDc` zlvWx9ND;KnZVx{9Q!3Owzc`)KG#iI}$0DR2Dz_PEwfS?ff=$7LtL6!f@nie5OjgV#rh}vNT(K=~))H zHVCF)ZO?##bm5+t8Kox7S=~4RhsJ@q8dDy@6`KzZwIAVV>{sZKjFbyeHJNCdJ-@Qa z?Y%u82m59}TpiGg|sXQ+ftkv4pk?R?j z>yj92lf2axuY~)U=4_}^il`WcNt{aD#t5w%BW(!ASJES;_+iRGSjHDh*Ale4p1mZbo5;TTk(P6GNmp^SOOOZcpFj5 zSOs~xC+H38Pg!%W6>&iZSOVas!sKr_8(J43T*sLZka$iiXUHV|QW6tG%LNg)${aG; z+TJNPa9|9U*qamr{oQNy(>N6>w2R!6D{!d3E$fjtfwzte)1V!k0GuWg;9R>(N*)o| zN-|VYU2Z&}6QYJI2?b3p4?E?YHXKwZ!+x0n)3LgdHwDix);BSVG0!$!J3!<+(>C=} z1({-LoRW;AyBw!|*I~J;A#0eLPD-qBK8Ho;Li|Pmv!<~ynK35+K^TPtwako8$bqU9}BB`Oe%NeiSa$0D|Nrh>^I0G|&p zoarts@hlA(foBbHWMlE-Khv;=-$!vS6FDr%Ch^)d0|oEmfRiduWMxN7iT>n2pNuu%ZdbmJ@o7Zjru2ZzdZ0( zyZMxy2&Q)1dHz;P4@&x54frg<&R|1?+W4O)jEfu}_iO$td+5!?|#B2oAlpeZdI zJ!eJ!vH`JO-LPK2OW zpa@>(&U0ISjeUnQrqaDSk`35=CqFk*?1 zyHTU4PU$-& z&M;op9D*VXsbKt|%{K+Ri6dd!r|C>7on=m?8_*OF9suxenbbUV!jz?7<7DOG6coBW z_Z$MjO>v5(@rkBRMp~e9$w3Z|4hNb|)cXC?d(2!Os^gf(OSco56LSoF#tql4?a{@3 zlaBMO8v``kasHdsLPRGm2M?D@wuZpUgDX5i`~CxzPS~BPeEoD;s?!?@(6jel??V(_ zgOh}Y8y3B2YPaew5u-;@tj7K41tHq=AqIWuxF;Z=hZ{?XZ;lYA*%U>+5t|O^hi9lh zQ7WT%%(Dp4K6Q*(v*JysnudIr%1++LYLNN6tpbu+ks+tx3~XOt}ru2_LM|A5>-! zdp@F3Mq>=9|Kmhbak57|OHoDD=cpE;T+THhfRnGHY5;Qs-$oU_jD7B3aIq9t)exqI z5WMmRgZk*N>38k#{R6eH%rS_?(tZ?CesceND0=a8|LhNXq?8dXYk(BPwL*BpIRAPi zht9$i1(g9Q*-A`4PQO_sc=yD;bL zmW0hv8jgMeIwhH88Z~ewUk)>V$~h-~ipmXILb za!~=!ZiF045NNLQd^Vmmh|l=v=AWZ&EP)RCBg0z?3!K{uKl^4^d)}lDWF(qVgFrM; zDeWS2oUIb|rus+S>3u@mPV&tz{As3$(pws~$Qu&{0fmd-jM7g6>%G`Vr9%gKB5NcF zKO1Bn3s$fKxvhzkYT;nXB{I`booawU=0ZT%Ks6)_yC|8RdA zX@S3YCd8u-_Aye6>Qk3K)-ma|1s10J4{yo^;ac5wW?TGik(iT!a2O^tR`=Mtmp;u z?aK>M8O%=9_FjUVHAtDss~WGh0n_K$Gs8$H zZ+bUPGR#4OzEmxlKI^iG;#E!=QS!x-R9pc{8VOvprXrF8Ck{~<%IlSTgB zhT}NL-LPO6u`;29gSNd;yQ$&;1ndS;iD3|b6RrG zzzZ59h3lYOcgLH&%Nxp8ZN4oi;9uz_@w%twa_Dv*8gJjw0)3Aepd0K~J{vO}Q--|W zS)=n&1rtvP0i-&dAP$ zzfcg*FNz52Ioz`&mydHf{dT-PmV%6qGB$F9zyLvuw}5B_1mjW ze6UJ0W#efzZ3(+S$(0ZhKDg0+No}!QnNaO*&k&CNB101g4IkPpnfeUYl7YQ>M1N1I zEVlnEtgCzv)jALfpbjRKv_#`tL>oC|#VIvA{Y{mRDlfvFZlmLtceW)acrE~85K)15 z3V8J_sKv>ktVpx9QJ)a*h#!*Mg%ki)_tAsSztq8Wk<~7puw`1qTtxlw2B+QzKi3EE zD$hz8- z3T*M}{gJ@B95TfXd^F!E{JSyo<%}@wX>s3Myj~Ge*Z~aO1lxcE{PbdyZgtOO6S0@$ zO;v4u#?_;l3wT^y*rn}X1oZMtNUm;4L;@7cRTy|!EmCRT{Ju1*KO{ua|75`;en64q ztl;eXZp)(lDMeu!H5G)-Q54^0OPXreDgGfznR3pvF2u1&(=(exF$P;4+XW29J^_$2=kVl;FZ95v*KjkIbVDfsA-4 zvPXS>1OxEyUJPL2XhA3`9NP##`B{eQuK)IsLudZ=Ah-3SiYAT7qt(i*j^Gm{wN~Y( zDF);F8!1FBsBl01Aoe>EeVkF+Ul|m=`(8edtZdf3wxdvxAnV=3cQOuys~-z@WsKRN zOsMG7e5)j#Zrk}C+iHOoufiQMG~GbWwWMftgDzHDI9S-&!X=g-zBh*}I!Oqf?p|5_ z-YitWD#0~CMXQ(~cufCLgF=%x$zsoT9+=QD&jeD7?JL)P0F&jxtuFSUr{Wo+NyUZZ zTJUtU))dD|&xJ!c@;ET~!R&zf~6k}l5r|viz3}vaNU5l321!3(A5+!Vj z#_fN$L#NF&?Qj6Bk+YT)g!5rA)mZb3qexskggMRCy(eUm(9fGUDANOoRCO?*J}(e& ztb?p>)1i>|G19gTh7oI}BFA9zhe&CBF_nx9+ye!;)I7r6^M}$(rk=_u$>1&|QBm`0 zRRSo>fFL52YADyD#?S?P97WE5s0#i$-H1oVWz`fYijZ+X!J*^zI%UIP=k>syI_Xl} z(J~|s8Z<3W5fNA=YowqI6r<3r|5hV}OU;WpLxm%azyG(kT76P5?PwrZ+0cGnJ%JOJ z^@5xI6J9M4d{mM$F+9hna6Z>^d&t^x52Rx`z7oxCfs6j_Kg7Akpu6TLP3Y~ZKL_7S z4~)g8b@FWH3<=raa3G&pv3bD$WTA2sEZw3tXbdE5vUiX=0@Q%)1lAiy;Mk0kRm&W( zc#~^|^bYO2S`mb!ck~c>kR6#NNi1%dom0BU*5?$O6_~(H;p+4N0$+~6v?Tg*(PLAmgtd#YK*GtQe|Da{95EnOa zR+pzi3nZ`+EJ0u`Q01ic^ac4+=kjdyy>*3Uua6`)9gcJ*V5QGeE3CxAe-@6rxD-^^ zB^<9^rbC|XDbHnC3Ft4bLkPsIeaCa`n+0O5joEf6k%7GF#%)O=69>0Uq+C&JYgGD` zS5m}ne^rmK&Aqp#;7Dvx28lSNKco5aNkq4=?^{=V=m32PYEbT)b>WVHMADF=GtT0c zGS=$!$gVO*sre)zRSaEig3Z?wC}G4>ASy8xAI>#U&nJ(tt5BU_!doPRM#{}159u2^ zC96UchsS1KN(-0Re0Yc07(#lWy}*k86?lj=8+Fz~z95&*pvnH<{aDAM_e4 z3#&YkK9F>(I)LknVyxQdvwu@nx%4K8YMOgk!T35|)bD61c=_y?S(#6OJv5*3NYem? zs;{R8Yi+okKuz($HcU!NC)LG^_r`3S0+N)fi%8dmFZs2gOKT>0Ueud&j^DQsWhCc zpAM&HD8!zFscwnCPw;WDUDlUzq8Au=(iUk}6Niq_@Em7O#5x zWPb{Zd(!WoDautbu|(e^zo{Rrw}^Q44W>X+VMOZD0bMk5!Xc|M$Xi6neXH~D5U}BP z#J)s9I=y|}SOM1*dhr=rW5@A>42T`ZE=N(^X^L3?CO{ekv#Q_TAA12$^2;0*e7Yg` z*0S;azIh`dGu`si9is;rryr{8>mW~R<0U5AwG!i@-p!^ho8pm9=16^yV@ux&B|0B@O2(>LHDsqiiQ&~iS)GhlZ{P2q5p zZjhCq8`CLF;wOfAJz;^G z(JQcWd*v@r`hx#|uiJx#zf{T>W2}e|aARMf6~KndYHtYdaG)bHU_-&uys<;VF(2uh zJfrgAg?k82Jth9-?p&qw2BG>j=~OKB?e*g%@Jos7^4{9>kHn79sh&0f5e&`EO?zZ8DKh)vVMq^aFM7>EkQ({^iYFr_w}wIW^xUP9`aTIi#lgyRzpr%>eRQvpXy&6i&V)98+#T8MEQ@i6|G;g;7)9XV zdVlmkZTNEaKa<5hYn!(ZM`c z9sKrU1m1IheQm+k!l*1^|tpz=K3<8#-C~4kI$g{tyBX>n{~B{$sRdAf{Yi2$m`(oYs4`KE%<2PlTJD>j zNfNw+ibZ4=e4D_A!u^KT$~iaZoz0|}92Kq_>(bfh$HHg`1{L9<_aO6BEJ3|<{i{6E;%wbA7pq*aSCQ5T9A#=ase-$%YECRyu%Mr6 z(5S2NK=yN5UUt=Lp1v<;*4?O?UdV;=T!zbQrd%0|({Iwi6e!@#W4bS02AZ&3i=4|= z_*v0?s_FL1)?B}456$X%2O(XgAbLHh2O2e#V0YTcg1sluCnG~7Zt>NDmMJCVX@rZC z74VY#dK%GHN24oN>PK1$b~3h$P^sT#Z>u$x`q6%0On3tDa)Q;9C_RIB-L3ElzisGlJ321g>FTcLyHC~oPCqkmE&fD1LO1SbqIjFBsCCt zGz;}6dI}g_g*1UD!kl1EvG@Z^p@ocyG^WDc%;>n(i+SR+A_MB%*G(!V1yGyI967R( zCn5vb@NmFpc~y30s?1YBNd?q#j}W&(ZKxp?BaN>Dw@81StApAWzeWVgIlV;|F`e+w zR%I7Fg11===fRr{dc`77a0jouY}BcsdT3G;BvBFzrVLazU6j%dupUz{*BRThA_?QH zlz9(bA#~Pd{x_*ufr$Gliadyj+ds<&j*ndwm@H62kXX`zlhw-kw}wf6PZg~Kykn}} z(;<=(wM1!49YQ@yIMrkcxOdkmLu7xPzCr# zi4vF-RJk$9XY&Y&Cf{@Fi)}d|nt!Nx%#VrVw;&?=(!Pn4Y8=5Ys&cS(MXJ8?H>p83 z4VQ>Nf+4Fcb9_5EUfL-U^4A*)wliC{MP8xA< z{)R4#Fg8;TR9B^crSvB_tR7+DGF7m!Ie)P8GBwd?Z29Rgl~O}=PF)?b<6~@Q#FEzW z`_L&AzB)ky_D{@>joLi9yBW?d$i#5jM)s2J?Rb$!zp zG@5H|n0fy2OH*3tXc=Mye{yg$u>`!)ibSK6C#wGW6jxcC8&5*mur4^hpj+jIWB34( zcUc*R(^C?pvSVsIi-3Hzt``2HFE%(Oa@I{zpEyNJfYInhh zzv;JX7@>0ntz0dP=?(G2(fl`fu5u1~WRRKo*LBYLcwX%gXjuoZjcvW-*Vr&ExH$~) zz5$DBNalCFYQ4k0Aigh*Lp3>->w1{U10+Ke)` zJ9pIquaydz#%9xE7i^7cRby@O<2*uW-lCF4<6?N@g6!Ka4M6MmtD z@9J*LF`~~u^s7PwF5y{2tNvhMZg&z^o2guW`0wOD32T?8LY5fK4*L|p|F(-Th>US|HYXGw` z`D<+W&3nNRq=doeWfcjt1{-vY0M}S64KuX#CU)%TU58(OX}7}J^%b~!whA3`MiD?gKSz!`$;SIAzyA5m|N`TY;3$_azQa&uzF zeqPsCnX0=1s9noecCt$#HWEKhJKX&X!u0nW;W>vRSbF1@QHg-Gx%oejoVTZj+C#h)lbYf&8we;F8P0MUt>6X4B5Up167W;;0DafYn8P&oo54Qv#mf3t#~C-BM5k zcn`mI-eV(*RZXjZY?B|uq-luTkazGCGK}E^V(LVK#$OfiEu>MM(hB6i`>UvJo*Tkv zD{6YGYzT&RGg;FWZ~Ldh@AtxA5um8RI&V2cTi9O5+_dLB_@72A{1(bs|8m$s`Fo1kY34Tf0Uj zP*k0WvNqqN&A4w)DLpn&Nz=ZdG;!``%O@HKLO%RlusY)>UZ9AKucg^5VH%_2Un4%M zK%?lT=*B?NAH|t9v4~n5#r{2-xgo!OU0^f~3pUTz!4W=S!Rd$D&Grvsxman;zig%3 zx4Z+Y1B2zOJ5y-slTWu--gX?HsPDE9@xz+S{s{#&wyUL&s;~vm9w31S(4-Kl>PEC7 z=1SSn?9@|_+_mVlp-g%|3Oc{!h^qBKRxG* zUu|behqJm|f1QOp4n`=C&GL0*YPfF1E=YDDBXpVD*J~ful!7VZL@Pkd+zy=y9WiP- z+IF{k3ENybmB;kcc5?YZ)rs16D66g?e2Ygm|6~lZKk$AI>3LyPS2)387H_My5TgcQ zotE_g7CZ<5jf)z2#Yz~So%D}8ema`Y4CK8&^+gjCz&xN%TLiqh*F@4}<)`|*zzCl1 zj!sy+ro$p}2jI6#Y?KF{^@Ul4CBtz1ErJM%3CPb(iT zJsHmj!QlpJIm|;OtF9BRFq%qI&5xV|*~Qx`TNa{aCRMPuNV9 zEaXmbM5ZYn=U1BPuK{)i3+&Gk{R=5Zfkcpzs!Iyp&Bf)gjh>nOQuSoC`Id7DFg0~J zP}cBBzRK`eH>oDv(TNtZN-}p3`XkcBbPMLW#Um#i1_BIaufEncA zKN-I&W2w;W;Ll`Iv*3J(W>n|42FB7M-2|h_mY>X$gZ8uYeh%=hJV4TM86SV9?lzk` zmoA_7Y;1iJKw%cuYMh9k=YB9NiXMh`dR%EV)4vrl*?snzI7>phMZqlSPE`)-`lGir&WI^N#L0i32f2rSAoU0-a_YMvDRh**^BAG8n zt?}ayzQPV{>~tWA|7dAJ%yP@!7afLZAM{W9=~8>$m6Ec`i{Bu8JO1)&?#y`F9&Bh+ zoB#Bausn2&f{*tX5=7s|h=xR{e_tj>d)9|J#g^n&Kneun3^gB)&Dg;Qxb?Igs9BWu zvLo%=Wu(tHf@w4VS;0iL?>btX^CD79jT4d@=+3@{zzpAd(1^?JIGv=hCibehzY}|+ z|IK!`!x&jcfBGAM6T0yfCS+cWoVduLPMx7Xd!YYci3R}WLx8IS%%9I!v&@!4Xk9DQ zFMoTVbVX2C^hUOuW2Xp?HqsG%euNkLZbH=FM7x@rV!J9ZiAW@b#uRzatPWy#=!-5G zZ`D@bym~8FW2miR2;T}wS~!U;oczucqguL9sbH6oAO0fr=JKzHWXO`>1`g}lJi-Xl zMTyb6Qtb#Ed*IlpPHl~^o((K;l|5o!Bn4X?V;fA_BU1 z+Ug7iU8`cnlkiMGRM5K4}{PAr>K9FahOx`>%!`Ou_hE?;rlr zI}fR5S&KbbPhwo&o^r;>sYy}*tk6^61m5Gy{VGL(!bBA0=K)y}qj(ch6SZ2ib;IoZ z!o3b(;ICj%RFM?Ek&HagFlDwUNhUo3nf$5%%o2GqK)o&t-76(@_7A$t&<9N&| z4B6*jnEgy}*8XeGT-64gl)dy48Z`_POt%L(NZ%CE21H{w)Z6o4(uVAqYFYlYiPW3M zqW&<&E?Lqn)t&nsWlwK^v98~|*ur_9PlQ>D;1X+0>sM#E7%heonQyd=dj57qknk`r zO}LuQxefOJ(^iQP+$Vkg* z_Wn)c_LJ9I#b4R7jUcH2k`LAy`fG@Z^t2+hTJ34+)U`b_c5u&!sO@{QJ1R^uQGDrl zKJ@K|c$i+Lt_w0%4oS&pY=6lmw$2m0c!=p113qtMC1;6~j>-INaPh5@W ze#kiTh~sf?Vkk9#)aeMfJ@8-xZhT=~fN9oD8UT7fNMTJz9gBY$ZfrlcB7m){TWAps5O)I5xbqornz7?EnY0{39Gb%xr}8&Z`Cll$yp z`bvm$ZEgmqqfx+Igqh#@G6IV+NCWLEL4qv53t)x0xqBxbQd2WEC-nh?u6|MRDX1APiVK-=&x{nP?dY>`Bg| zL8;0@J0`sK6B`Gc}0Zf1|*T#gd2wv3AskX9~;m|4G*3Q55@ zbU)ON{rGA@_?SJpV~RMwVJ*azd~ZZiHMm!8(Banq&g&Zyx(l zi4S4hP&|YX4rGx_pxXgBktw*`0E~bc51b|Tg%aV@wpx>b_hjC?9k??HaBbY&A*}&n z-}R|8|FuCqjOurMY8d$R$tB|dA;N$R6xI_IuxP~jIzbYgZ*E|d%U7*dD9QA}=uueBg@ zW(Hz>-9X=93d!4tU+~Zn&YNv^nSvkG3NH8)FL9iFBFlv79qiFm(35aQ>zIJ6@lmA{ zRBWmq-eHBc+l-gb3PI;$+zn5A{#ss4VcMV29q~XZaQ;1S2CCh9NyxSnZIA&4&9$?SuxUX|2NVuZY`=|gj*TElfKzn1M<1|Pf z5e3TCC6pO=WFwMA)v~LQUivRYb;e{}csievPnP`}=Uu!=tzmoBl&8n04b>_VX!ZAi zsxkp(b)a5P1FVlX1LHo8a#itkoenFvTi^B?)iuTKt@856ME6LkAiKKq7LD!2_!thzSzU?sLDj4uB z6d75eMgAPWHi7tZVn6XwRq8gfj!3?zC;p%<3P+G1)f+mAPEU*(ueUh&L~b$OGKe&? z7{xTZ0HO%Ef2m1S(pjKhaVm$s2t05ShhFjzmQP=-4Ed1O2oT##^{8#2YcSOkiy2Bu zDjbCc0ozrbl>g@8qi6X6J`|rN=kHsk>MzREmGq_m<<=%>>_Dfi>?FEYMD&|$&vIW^=hQQ@();03q?JTp?^G`tk?{os0 z0L0K5gAnC(_U#v3rd~5rk^}#Phu@eR+Jx%q(&FGZ{YKnN?`s2WsH7zZ#*;bs;l&k7 zr8Vo*&t&2LY02X57yxlK5X+ngdQE(?Ydu!R37}L&2yi<*07FKsVG+9fH8zb$=?^M6 zAZVN}czh!Up2+odXRP^gtR=y=(0$OUN-f>Q4a~N^QeFey3rnHIfCV*RnGPfxu0d8p zBN6k6k+pg{kLUrLOo{F_Z82o%d%ojtTk4HA-a8|H>bC%+fgPY|&GdNxBQyV1o_F;-S~wK=b!>1JqC> zK}L!f3q)*0!0&TrCD}xaE7&JbD2{@1+j*_~ycy0m_zdeY%l`+6>yGEq>WYQn>W}12 zl9`XdiKZ_BVVu*fD~TOc374sA0z4xy`p8yEDVLriKuW)tL#pPU6`n0#36Gmv%+J6G z!emo$A_9oxyKxEd9WL8NCV&?hM<&d!cbSF@bb%o?fT&JSB*GqeQ5i$vuU>?9!b(ZR zmILlk)fC_YVQ9pWvamqtt$$ccTPm+w7435N^_tpDwdDpD!-M3Bxc)oDfKb|NU#>w{ zwe?QiF;;-%Vn3C2yr$o}=xacM3=F6RPd4)%oO@}-Jj+mJ-Q~npeK?2>MB9gCT{L7B z1LnBUQpYRZln#4Q|Dq@Z2(-wK6;p+hG^v%~LOmMApYC5dd<}3bU&PNc|i(tvf@;EDVR`obvb0@VQfdPziwYySJ0;*TmQNRU9nU?h*eXmV4!1 zCUKx*kkJ77EV`*6*glEbk2F@+`1b!hb>*M?E#w{nQE#Ues6t(B@Nk1EM9&|yKo;7d z1T%69WEWxLS`DfYIr@!@;!PYltECZpP5<+ndb;AS#pRd2w;apn6QO}?5+VT>xN&j+ zmH7eJis42`?B{1a+MyKQ5%DGA9i@at4Y5rEQJuN{$gAR){xMgG^7s)>WnzLqsHm6- z=^HI~Gzac8xnOp%`0R$L7z;RHv3*un8ohGP)Py85J-nj-$fA&$fMQyR1+ML5bLKHi z#gI0EdR2GIyep8nK*$Tl>r_t8YDQvL*lY!Y+I^intND{Znz;PzFRyR&#A$|K=RlH| zVuFDd>r3%0E-PA)5}EHHp2J0~;2!GxG&EgV9v0j3oOM+aPKVL@s^4?hE}qZA7g2g5 z?Yaj7flk_W4a$IPhxU%f1rmwVSLVGuF{lOv^CR0WRR#diFceyvGNC!g;})G*A3qc1 z3a@~7n{(fs5x9`jtFPb1Gi-OLpgEdDVM`AhCmtozWg3C!q@gaw(_~$gU^P$L@@xVZ zp;$ywp~-;@l!UHO__j}88xO&$OI)bw+d;PxCu#9ooJg{QL{(gkZVe8tNkGUPkEQ~| zsXljka%Lm52PnL~g+~GhN^_(F8+^f}`4C7z&D1 zq)f=p$A0}@C&wCQR2iWm?cuGRaTiX-+wQ8PaKn@x{_i|!nfZjsQH$jnAjV9izo74I zL6;EDB5-C;snpnAwZ;MoLsNi)SYREnw#6d}WNie~>mO#C03)66N4kwSCoNI^fEpZ{ zrgOttXZHemfdULL0cU1aNyg%iqDA^2cB+8~d&GmbSq-oTj5f`deIet@tFsT>N&eTQ)a5}>OI&e0jd6YB<^4(2)>QiXbUpaS9rLFx@RuU!@A|T((JR6}* zbZ)``w=cTAr3uFONa?n}r#Xs-BO1$9n}Td#-Bl9QnZGvh*O z!i*zrDQYtC6n++_9j|KYClhkSjGvX%4*pI1$g-Cr2mzQ)|Kuf2BbF+B5ery9w!+Ob zPKyhr0f@;4PqUqop!kg*2JCEMcyfLs02NXtN9aV!H7e&8FlQ0f5Q{!JxDJ(69WOd} zbz|`UNyPs%;1EjABYe~QG7N`cAhdyT7J=rtc4=5b@R=RyC}Xf-P|UM%1-2havUjwb_tPdlfd%a@C{h%skBlFQFX101028**aex5uAiQ#&GIK)`hcA^i)FnBx>z7U;Y9>8Q-@t9&kW0&77-aG( zOy7+hrj(VFx;76+I?Jj`X=h7Rc9)ltyUC0N!zndQNC?zCDG74)G>tx;)#9BZt8_RH z9pT*Knzbp^qPzfm?xLhvVGY{NhJRg&ePJ{sSWzC@YM917VHNx1_7orUktJqJIY^gINmjVqiD=V|)8ac$^cQGk`X|VahW}qIAzVtD= z2Xi$>PQe#6J@y-sc-0g|2(>2ajbm$!yLq-RzAgfb?S5W&vA}n~b zUBfMA1jUdzW{z2c0*Rs=C>dF@%S8*KNdXq^AmOXgjUB_DOu(F+a>6W&(hkNudKJBn z=>^{)4Jl{l1?#>lM}m}k3`!G~uki=xv20mpE6aK}i zl~S5i100|-Kcch)a!bcMe0opMPh3>0W-}luxQP=?*&T0>j$_dT2hY9_gwT8;uql}x zR7%{sxb|x4L652$%@pqA;q`+PHG^?z6>ecZR2M1iZFLc;vFc1YNrzmgB&mR;0VQ9j z_%ljT3sSz*VbDtsmYz(^TCjBk%p<>7-47mGVlx7!;CWl9 znI#GF=p0k*%jcqQJXgK%S!pVq5JE6jOyL)Ay8q@JjUEqqtf{*r5n+O~{yJkZC|DQAE8Of`h@j1uiTS@%LT9 z&9Ollv5A0IUe%c&jNS3{NO+H_@38|vUj&bt!9J* zyJ8P8jT{1Yk2o4JQaG+)SLzlMC)NvCQHW_hN*s+OWB9(nl4Kl(@uU(J%40d@bLZxg zfW)G>B1=3Z>C|V-c=}sYMbmWt1BF0Zg^XEEEP8&HVFZ_46{7JF>|hs*02|B_P}bhn z4M0oEw1b33qXm(I^C7E~mH`k*c3LS>&ko{Y;C~m0={?!bkpgc&?GDm-A0aRv(k5=vdyOa&Sx>h6E$qEAY0P z05XKwj1mw=VX=br!HJF8ErJ2xK?v(&5N;si8jZx3&TiVXK26r*t0jIU5yM6unNEJWePpa4D?(T+Ap0`nlom ztx2hWzLFPEc3PMe@P|CEN5ZZ=h9<=-H_UX{|7wLAkO90%vC#}*4#T7sa+hcLh;b%9 zWf+#o4b&nbgiyL#HF_-%L~KQ&O>0$SMIgDDt)=~{Ej!n^;z(!=fhn$Q_8noX8c^|B zaX3zVY}Fq6$7n@_P*-9c)rfMw#%;S+xa$lnE=yS*)$=!r+jpFfKsT|QI}6O^d~%7e zf*Ce!iVYKs*#qw+NcOI2`Y_KjcnGOnguiYRxE$i^j_cCE*8ZAUoCTKD_ z5xWdg50)Tc_7fI6Sm5vlFtwr2gd8_`ANbt|^DQW}HKX<0=)bR!iIA{G%H?VvU%6j+ z^dp6Z2Lt9Pks)T|=mGv;kgfDDra_b3cm@ZPWE21})S7%{XXw~)2M#nD_l$*!AdoFY z-dc=cvBSdNT!>^BL8E!gz+F4Np}*DAjTD_v;m6*PiyteNon$E7<}h6Ybg;1U+d;8n z#d$htlg$1{0?Zu1z%-T6@kD-_B@t^Ahv_xn9=NjGRC2q13OR|Q%7PC1cM9rO9w6tuIgSIZG(mc(E;|NYTK90^X*Mq#)NHU9ef-qdQ+n-O8PK zVTmbVKCz`f59uVEl<<5$IUo9LUm>K+Ca?umeEAS8i5rqh@1G^#8`bl2V!SiS5i^2g z9V(Q@I$js4I^~e`HeXUwIb1;HV$}-2QO2{q9o~eA7n}f?RAz*#cCNz5uu2>taBu|M zG&jWgJ2DV>AhHiKBx#aVe_w#YOpVfL;P8ZjHyV@v2B%W!{A1EP8m7A_YOVbLK1#|TukU|LGoC^dRqQxv33s`HAp;eYE7OYJ#9y zvVk7d1G-r|=NTXe(JN?>bgKN*lm;KO%Vh4I7Z?Bh)pZ^`n=NsfuQWuo7g(jEYC)_Q zrvLkQ@)1-QkE1UiYAi~xHH6vW%`zA%;(jD3wj|ij=E}LYFTZ!NDDg?}9ZyaeS782V zHZ`p>#`Kx9is6O!mNEeg9dot>n=B>(IK443vCE<5b;fM2c2Sa>gHM%Afu|i-Z!09N zlt#RZjI&*8MKIVsrz><5$fVO1?eLJMV*(YjQ#et&m`wcyGk6Y}du-H>l>nGWL>4}^ zTxCr9lS zlhGBJUb<*S{Mc;)T~mTyUy4hGPoqHlrQSI4p3e%VY|~^ zmJ9eYG$Hf?@fOh}Ac@_y?%{NtM4H~Ui_@uw5a1JiY|^W%7_6x`$~6o6wksO^usWgK zWEEp;<3wm#&V=F|NuY^&^vc4$;5{FFF?{6v z;}U^ko%47KMAoC624OqxhN(-@{-`inVOX!QyiQAf z)mbg~ZNB^C(t-AY9ltX8zKAF!6ym>WwHc?|Kd%<;?Ror~&P*sNQ9P`QP4^f{M7mR#ILMF10^QWEBDIFB!tRf7DLP< z3J2@qce{tzWI?5fMJRbvpvrO*^}e1Bp&uMZM@Q3Tw{0ra7ZyCkL_?_5Rnj@)8}n__ zdPxVx;h{zpfC>F=g$PMvoHB?DyxGE=W{EDN z)1Dz>A55Z5O%<`ohMkt=Ah9-#!=phKIR!=-t?HvfV{}T`&9$i@R))|{bs$o3N*!WK zJw}Smi50mS;KV6mFix#uaJwozM=vf~Jh}Qptsr zOJhL4#VKMk0UQ;?VUm^^l$D`1Yv$D+(}9car$FOQ)TC^eQTV4b-=Db0R7M{H7Nr0M z@UfWy8w00>Jx367$Hw$#x;0;=&uZ#3^gCs)N(#bmcDnFmEii{XgtLI^Oh_%jcIP1b zJDyfg5kvpV3J0BNHt4&)3Zt%nx+(%#^Ac-3feR{fefy?li8?2zh{lrQq{fos_!(cL zPMV;Cn0(4H_u`UPtpui?94%F-7o@1?NInCMDde%fA~{V4>W5Su7FbP5=Y0MWaNRzy%CCNl@)jr&yWXJAuz#Yc(GP`1nG6d^q*Lz8@bI&l-Bo z0HDXR1<|LfJ2}Dih~WD1B_62?ZSVjF{{RJ(8-xv&(GNGsVhKwsz{~~!h**V!oX3Dn zkYZU%q}0O(z<7j+NMq*-;u8VFh6yGv$A1Kp<$|N^nZQt#0y@q>l9PhM>aImiM4B^2 z_$kbgAO&)Wc&*;GAS6yES&ULmM4I2O)GXhPm^Hjqd=wDcQiQ>@Ccyi@r@P+;(ce@) zb!v~gD))IxF`R%fw7u6Zizev589xzA$Ru~o`+Bg~o`x6bPjjiNjg3m<05Z5h3ffI{ ztc%WRX<8&&Z|yoC(KjwitEvM>4`Mwbb0yu8Q0eRVQp$F*X9lbF11el+%K@n>TueRN zu>Sr$JmGTyllSZ}g6ulwpfFRJF?IS>d|B@g=&sRh3~bxi3HND?kc!IXGJ}z)1}f_2 z(fZ7E9ll|`GrT7tLqYq2kn%AETZK_;7S`H*c%|5qH@dN9Ju@@wd0ZQ}t2>(#2o*@; z?0J4VAXy#Qfs)AM96&tM?YGKCX~oqB1gi5nFEnm~l08!NPQ&pl7CUBFqPj6J(yQA( z&2=E^#QS`s@Qg*?#NU!ZM~{;X9QS}oSqAwCCzE`Js9JL&)4*iN(d9^SX45pgp56P)Zhk%$r%-Nf zUvS)W#5o_UR`f3LIFVVbRt-dgqwk*PwL+y?AK(GgxSk=GE-Vyag|;n6FMK!KOoyMG z=}>r&4B5}524!E}i$gyCpdjGEvNMxOY&;uGq1Y|+VjsYnI56iw9BVSj47jCc zy;Cm4s>X^-DJkJT<$(G@?-cn^J&X900(er>3D`McW;e});-Zbxo(l5SDoIy!atjid z)ckdDLIF(q5Squu3v=HlLYW`c_%>J*%0@S)+jqe>*8gyaQQ)e*sI0M|%xee}!~^3# z!bNaPa!auQl&OQqF_?(w1I<7~YctbmOcTQsOt$2&ov< z2coaf>{Sd?SjChzL|R!aLVkYXr-q_u>x?Ck=c!7$w&W$U-|i?LQ{@c5hjICtx{jC{ z*C|w6#V}h=F+SD!g&%l)FJY+g+yt_%H5k{@bS+(Pq_CxhvT~P_r2x4NiqkLHokD`4 z2x?Y*`q0p+6CJ*hQ*GrKr31qT2Ape$A~oI566H;b;c_R7nV_WGDjo|uN}00gW1KUD zf#y))ECmOW5Sgqfz(&ZY5tH@u_R6lIe6^L6T$R5>!YKLG#E=j33(i!qbefy7Ukx~o zojNk4Z*07jYZOx;h%lr^?~sGUfUnXVn8OV8i9LxHlh6q$^CG%NP!do3$>L^N&^uycRwfwA=g@^7j{(>K}8X<>O$&KTJ%^c(stq*53fnwr*O=C##x2} zFFlOINq~(2=OB(a3iafW4d|A%0Yd&Gc?Ix)f}&uHD9gw2N&4j0mq| z*M8*>=^4Z9#J^Ao?7U17oI;I$j>pc}rUmtR3e3q^$L0R;9)R2HOs}tr{v@V=ZUN4Q zWR|BA40C=|fEyEPzU1vl>|#f<<&+rxqE{yTsusp6*(}0=z|^aOwI@{_)tS5-)C%6e zN6q9rNV7k5kSsv(({mY_j^=hg3G8s{m}CV!Vs<=;nWGHn23Z1_#U}2+tON+16{LR> zoWnxg%T2YPLM=Xo$xsHfJ^v*_1;|VpwJO8Se-FQw5ecGxh^@516@h(I6;<)otm6$~ znRx+o_Xy9HjFCB3gIVdLAR|T9g0woXrDo!8SK6`-Z`VQxb)GeaQM@v~9sgyUUc?ly zUUjV}U6l3xpVU?nBm?b19zcDx0N4_pRl-5Gm%SjlIxz|B2ay><8)It$C$D4ZiJ#1L zhS_B$_&Y8+)&wp9xtyWr1}}y4j1wV4DcPf4lL*)znlK0iNhmh-bxSoY$4RJs#VZod z1K3`mbQnN{mw7>=bs?W01A3d0 zT9Nw+m=Z1^&$sKKxBAj$eMyUkKZiYCqkq%MQp26p_S&ZoWEK&vcDk+dm+itBkv|T6 zyDkMcQ1mjC*>a_Z0iVmcFGnG+cCp%wc_jqRT3k)QQ@L!4w$MYw9AuKTKGsXXu2L%* zo{);twz`oaEq0Rg?bu3W_*&;-F1(GI;AkSk1)lZ7dF`dG&6gaUGFQPAG z-3uhNfllCRHV|zYNOWB67%XHd)n{E->^_1ZU;dOYzd&e1m$6Ua@`e}Vj6HX#fDh9A z0;hepfCh{Q5iWP{2)dXU0L3S}%2lqO6uPTG2(kI?2(@tTMnKAuK_lxdF_Mw{w28ks zs-@n+LAZZ{5MnUqt$-lrh0#ZBqZcHKXSg{q#dXa=Hc2oL@9eaa^bpSsQZo=In-Z++ zhK6cn3nPJ*+k=mC3MGL0WFJ}E4@F6O1I83h;^swWO7a61otdK3I#(Dbn{?F>byGT! z3M+YJ2W+!o#1RF9p$j$bfPIRkWV!X#|6}8xkv3&*m1Dr1r%YN!pLEtJF`z!ns#}IW z-kLJEg%GI&?aTqWa-)fCRgrT0j%%VQO6ZwOLUo}sH?PID)+1o-w;9!};G3ti7l%u9+VI1(??{(AC7_sF8T+Qz&mH zI9Z5n8nJN=W(PgnCJG-MP-)n~4`G+3rkH34To?AQG2U!xv*lHvU>I!lTw(kb8QD@+&bkq4zaSjG1 z3bSHx0fo&O(Tb_lZN20V7YM4tlhVN~A#(wh0FWpUc3U%5t&1-MQ!DIirUEkVTWi86 zgxw6!bQC&u$A5$de3>OPW*z=I;}pk^=*hMNh?f0fp=bpRvf}{qWrbL>`Dik>HRMdO z)f-|oPIoS+tMNRm8YRDYG-S{w?KKv>(TgaTVuI?4CUGLi>!BET9RY|o0CRTgx6R&7 zxf2yVE|Ir3k|ga2#i$nWK(UaMN}hX-gj*XxJ)vCe=mvOXSlCENu~a(6`UTAmb9Ew(on+*d!hD&pi0x+eLRGwB_T>vi~*q80*gDn6h)*ujcG{oFB>@nequHy zUwZ0fT*Gs-L?UbgTPTxVaAyh{3`z_D2Ow4!FD?Y+8jXVK+mc&#C)LvZ4*4tHr&elBx@I}kfdltjK!Nhh zVPFh(KH+*dVlIyevnY0LP-mu7mFZ;-rX;g)0LNBT9n2fD!|P40J8@Td)j)W0UH~*+ z2!KsT59ri=D`@@=@{O>2kuxq~!@9?9m2!Ynk{?+b#}Z!d$Z2*C$`T_uV`?AWVoVcKtNY0nM`vh*?FB)es zEN`kD1&-4K$ZSnOfaVq44&QGP?(u_$CWc3dyC9vHNNson(JckRfEZCgo{dahq>fi3 z^pW(*JZcCsc;n}W0=t_0LbM7a_#WSZV7dK>6IL6proJN+VL5r?o7>)$Pu-x8sSG6BHy^Es23pmQHp2S?^z?}-Zz9qIk z-v>=$slxGKe0iG?m=%zky9P1gKSSh*NKoccNQ?Oo=bYe6cH_%*M?l<|WXAG5qr&X3 zBPJJ|#D2rwDjX0BM1&krGtearBVcML8b|T@dJ;8`!dYr0v*d3G zLIP}86tcYs9|qlgIL&}`({Ml0jGL)A*&;ncqw-QSNsh5*vjcB@B!8GT?b#Az(f0w3BoCaMG_!cX&giTRkMQuJXgC2F|YJebJynsRHYb z4%K}xl`vs*%pl0(%V%y|FGYh@1lzG(u#RR;QA;g7kzmV37}hm462$Pl^r=uKi9jq7 zn469Q>~;&dSPo!IV7UTQZ5~^&L=3BMY;k9iK<`5R#LUVh&7{>0)YQ%7`xM8DGRMt0r{G?kqj9-LwdT3KV1s!t{|keto5D~p_BoMLV_8} z3e$qxB&=yBq8UK27&PRe4&tjcR6|#S?tih+|4ni)A-_a(hr}C!x^z>X7$A>Lda@ zmuetXnFtu2fE62;$m_s z9{g*$JTehi3YN!Mq1^s_I|--ZWyV2}r95<*E9>e`;q7L8VTh=H(=x?D!ke8)U4N8# zn#=%|2Azzh$S;rIO4Qp-M{HD0F}aZ8MsOAE?XM7OzIW?jH*(Q&1COMNvg5=aF6J2! zR|EEEI?=vI}`$9Lh}vXDE(I z2+GRpR4NW-AUDobWTaR*_x^-~YjS0(Ja!rbj_P+R5hnEzZZI=BSh3oNkOIRw$Z7XD)IM2e7 z<^F)u6@O2m3gwcMTC5MXMIEx0=GC&v&p8x7#iB@j1z3iH3p|#>31N;#0se z;G`plo@6gXIw!Vu<>p2sX#YmVJ@r60$DNb1T@HM_?tgq7ViVOE%!J~MW1-kST+TZC z+nvy_{AmeGR9ZrFS(m;R^eMI9dCFRr@C=lP6jIp&0j6*W=V0f0zwkVsciLH_7qm7} z0tWiXpb*h*;&dUwgN{}0SFdhvLozQGLjeTiA2r9)Kqi6k?$EvL3h74~sC#u^tXe*% z6F0kSXF>}~0oVhz|Fg6n^PyafGnKgkHTtx6-%K_E~o& zLW6v;k_OkXkflW>`GT-hIa=FZ-^n%N>h}0inG*fFM)q7M5D2j@JXxM=T)I`r72?et zImmQv#|Xh?{8i~Jxh;iG(w*lDicyxU7wz^d#J1JhLI_~WXN1QnGv~nZTki1qM8G7B ztjBb*FEdG02Ov!V14t6m6k)vY>n)Q#9#JDusGmxR4Nu81fG;MwsRD#Z3e zJ|tA>vrsBL2y@V}*>3vz7PUmF+dmXPAPl-F#ay8O1dIeaYg>>i!*a6 zDMxIJ^vMiJyM82rRf}u*MmtJG$b1vgb|?R?f=Gl|p1?bTl!Or~(zufu;nN>?BTR`1 zbgZkL??J{4uxoCA<%;mOq-rMBq*y?XjZBAHBQ^-?={)T9O665Dan=`>owD~*lC z0)gphS+{ws^Bhs4LZ;BN9yl(JpAr&8@#nxCN*{hADAOaLXLgY`7D7-FEP&7be-jb} z*`g^0q-F4kn3;j*=eZS1vq(fofHpA_BCzsxCGWz(n--X(Qc(8Yk{llhC_~#iaE=nk zmRfxM5+W4}BPYDjLc*LR`nx!G3_$s>ne3wliqJmUWP^8W1nWJl*_ltY{X+!*T@t>S zWb5c8kURuRq2n;d_Nas6ro9khP@RNDTZOhjR=IvZK$IJ)eBK~l5is`f4~m-5GCvR% zhT)%nHhNdFo|}olx%_bo+8l#F@l(ctmPtQ{BgXaMR~|GE2@oSyH2dGBcv3|I-vRm( zv-E}}z$fBWLk1LugKAQ}H(mDq@sHRENTlqPmxHvn$iZ9cHT?xg);URX|oM7k2kxys+#;dy;o9hG* zZBD)O5xxTyAP_g6mBVT|Qb4gzIb;qUAoZhV&0+(LVIZJr1fNg9k&mFR8xYfLj*`;P zYK^IC0KW85yk$BYC9>Fz1tUE&6{1XPBl6F-ZyWKht7`y=sAFOMFdfrloE1TwT%0+0 zNGKviv!a1oN;ose@>OWRfWrVr3Ix6+LSpvK)`l#t%{?+E$$R?H~m(pihn`e*uKYx+Qzi{X>Fd4gfOG<1-*+rXPD&f&}6sZ-RDAUnU;C{jV zy#GD(xQ3O!P?GTuOidK+KX-TZV8SS#5~aD|P%(5+?l)1%;{)h~kaXt5Wj0}#rvYRa z<_DO|6e%CZ0a|%}U~)r%HB31~46}q0F{en1OJaoZzywR!3XxBAz-FB5i0Th=Hw*zq zl4Ob&mh6iOQ2W|(UWcpoerMPuORmnc-( zknK8?sj=+w7c9^+f0^ljSA<=?1mfE?|Efe(ZlrwDuA8&DJ)(Eeg;HKnau0{kP*lpo zhjrBZj)f&jDrqw>mc22<|J{RR>F!<vtDKAIIf1pcyIyKrkhDH3cg7&IP>FGyp986=Y6^Mx`O{HXm^5s+5{;h3gqo#6rxeS)RrQLb>vpsF;~ec_vXa z6g;LvdEi%Og)<`FCLwp}3zL1OEM|v1`$Pw|VGekxfV_$#bqmmzsw7`8Zd{M$h3~$w zezs8SGl|w@PVJa}0I8eD(`k+y(SySXtjcA5R!{A2IEHdyy7vpRcQb9sO zanUXAJDX~T)mpPQ%iBF!!8VZmY+mMkM*sr*O>zq=&Cs7wghow)05+sFYd=Ae(jqv| zSdldgsggQ8{-Sv(@R9JS)C6dLhp^kntq>BNqzB60VX@Os>0wy7 z>ihQ;T1(BW~bELyw${cM48Ls)2gJ2&&&)E4N zg)1Xm*9!%OHEWBB2{5SAzdy2{Y_K7sto%9mBQb+pm?5d4%=g7y#03^2G*b=srqg$4 zk9l+|hWlpr0w!@R?_WfQb)*OlY2r`L*AJ`=j708Z+tCQl-Ng?w$m`>Y7+xsHxC$8QaY<5?+A>Whf zQyMfj14%t?0z3dz01hhR?+upI0$d6EKio!@<-CQQlre8jtuN}u!t&93q7I}k(RKvL zd-V!Dz^nmmhz7P4UWXP_G3B?=*`e0b)_W2rZ1J}UJsRW!PH2#;9-Qq)REsIKR5{xE zSln0GA|%c$C6eoqHAUMwk?#j;!#^$VC<2<^cVE%jq@g*sCMNLKc`ac23ad8j-d-?A zABpqyP!E{YX=rvt=~i^Q;Vr5lR8Yuh%7rBkQf70OQf72yclmpcN(4aPiGdchHy!!w z@%FpH_gqUK=y11lAO}O^i#Hz%ksba#RBo`CF2Dr&0Ly^F6@Z!d4tIFL9r^-jNUMOr zJ%yC1sE25Ln10Xg8lvznGXl;4=9i9UQ%X0M5&3@p%jiacF)+B5aAD*CXLyr+D2-~9 z24=KV4=Ley?M?^UjtAZ(Tk=D;UHa5~_9GM;53yN~j6vutzd(k*oje36RFV7i8_VIo zMrG1ntf?He-z4%f*uNzpL7WnG60bb zqB$KX;{vr+;j0?r6K`ErP60<*RqBHJ;yaat>x>KEsi5Kmi1Gvr|4SZoQ`1@^YbK?R z>PI2yTfjTHA&4HBva)M?1)Qa;w-JG2EGLMeLjmGQteHR*ggpnxRzna}8+F z?94h9je7z9bIyLsl&-;#xajhj<)3=h@8H}vDR8i`Dui(z#ifR9uUGL96lre)S*{%w zw396)YJnq}ne7(ZYslIH$93Wf`BtLlQPBKElA00+$*tVjLj!&Gnslx2}M=ddA28}a{!Zbt%|4Q zF1*RjFH6?15kKmsSt5jwc=KlU&d(jt4#12dd&M5Bwzb(4UHiC ze*h+%zGJ8 zgT^q<)3Ees!Qw_JqADCl(4a6=1o7YgnN-FOfO=Pd81#@|E-IF@>G z4&>2P?vH`ATT(AGO%+Lzx{ACHIz# z@Kj0C+egDuKRzoW-*dU}%uG3NYKq;EeqcNwbJSG<3=cg$uTpm0$nZsyh|CN%;sHzk zL=YOJ!t=)YC9Lcg-cWhjPA^^@WHm}fd;6K9d7CEuzoD!km%)az_*1B!HKAlcXQdV_ zk)vq!#a$+J*073MlIRE)Nqpb82y=|kO3KcOyf50bH)0{V&SCC8d=uU`t^m?ZrIxkiD860_Q1FqY>l3*8Tz?& zoZu1p1GnHH%Z4YDlF#HSG`OvxcKcK=s_|qGi9qN!=pm@I9@dbHuq?rw{0%#pj3vx) zsZE3AsMU74{RQJEXiqtgRS;gKOGovY;HBP~vW*Wdo21&=0P(fDz4X7E zY-O}MbDHZ}b53Rp4@a*DBg>l7$LPvy!OI4NpxOg2{WthHVB9-Gm>MI0i(DIk%QkZl zIU{tpw}MtorY4jCs#d_|LKC4m&ClhnwZtF0WJ+2#uxtsg)I9agn#JRu#mKA7@jPo^@^{d53et{ybU3Lz*C#2 zuwp)bEpTWh^n2X_;#5IMrl<9&fP+|tQ^*>c`ZEF!fQ77`YwwyEECyW0%7}8d6Alqs zsDf9bx~o$_lbF3TB?P|R_^0ZW;Vyh;o^uvPShEkj#R2l@XcyO zc8T9J6paxHj$j@Nj)p7m@J2YC*|)Mb=ItdBgk)3lVKgsO`G)}x5lR-AMGHOOS>F!J zE;c#i;bO;TeL-WKUkr%d17n+;Kf^)+G0lrZcz0ifBjwS>h8*JxJBjNSJD}(6s|<%g zVdS4y~x`! zaop&0^6L|A%|os)Hq1d2P0AtJm(uwSs-O`(Isqq{$>X0g!ZW})P-a{qW8zv5^luVl z2ZLPAG#P8l%?d&wI+_|6kA3g)A@tvv5Ei8~g9Ud=I*LMEl-9I});fO-1f5AZ!GM-D zl&{IhPxdc_yEV8=yOz4xXf>t)d+N{t1do{2pg)#YLxcuY`Y##96UI>TkFMb$HbT(Y z$DfYCo>kYuuy-#I45|DZq2E@nma*UNhW(rN1XeB_wAj21 zQE6*m1CU7|RKdswg6EcM0{Cc)0LOwDd4`6U7-k(Y>R1P;HI*mr?AyyZW--5l&!)R? z01%5$I*&&KjsuG_NEiOW-VE+=!7moGm$6)7N8Ibp7@l_65@9q=yL;Te0eP}*lT(!V z8{_lnMogB!vk~5a#tAjd0Qc9{4m4y$y6l)zXDzJ04pv`6>=B*rR7<%H+dcd~i-(P2 zr!l{ydP&5-u)G*ldTKwpaIGfHY(U0TY-sk?D84M6##f!Ks$SGhMS)R}e);9iBc@Mw zCxn1`Z7@@8YcGz0&|4j!XwS$MK^aes;R*jO{~f)aKQUrazs=-z$JRY*P|i|in}Lf1 zfC6! zB>p=_FgNt;?nz#6dqq~C^>{9vp$UDC0lJ%^+f^y7xkjIjfWoZPZN|KFTNc7r3=6n9Qo?VQ+txAryNB7lNF2OsUHH&%d2J4F@?u_F$a4ahSj~JI1Kzo-$(Gu0P;KzLxz_Y03Ya?vID*^l3z^am*e#jya#fKLF zVJ?kSiulG3C+-m~0hdlhKDiV`umKC!be=4#?6k#sR_a5f*o#FwRY1TOlHPZfU|L{U zJ&Z;&(ZlYPwYvk%AjWJ0Wd3>!^03BMM>}vMxok#YELmP770cNU{rxcg$K_2jbv3MT zD|=cgx1)}n4=#co7AVxeg!|IN*#p2t#KIl@ z>rM3e^KB`?aHqlZu|KLsEg~F{DsyMQaZg6N_?q_*-1O`YXB({TOF|dlTR=v6BaulE z)6S(>8A;Q{`%mkdcSU(d_0*$DyMl*+-vGmsi$5(gyIW?y%* zRSleR&s1radNBOVI^b7G-9@WwuW^B2f-sIyNbQuqTqaFQH;O`}xSpsow~s2yUeT{rXlGqW9V9 z*RzSg&&|X?{~aqe;MO2z1*38Yr;dk+@uDsU0P+0%PfHlJNFv2Smfv^zQ8L^}HnA$Bp zj@<>UqiO;JEe3(<9V!RjlQ2sRV>3KFKUYYX?x$9j;)%GYE-GFoFN1mfm~TMPp5O{< zPOay+u%ML6G<(?*7DBQ{Rk4F~Oj4E9wGcK^O#u$7Ei`Yw`(>|pjsx;>z!u(=B@bJ%&VIgzWb!^!PAVZ z9|e9$O;JhU$o6~dP~6{{3Pm8!uu&H2MP(RF^wI06n*5eY9PjeaU=z94KsR}o*LyVI zw)qh6>|d#4o`z`Et$bHASvbP{TTqvWzBoUL;JtkJr5;8KqN7fe`N2`fc6^G|xh>C& z5jA5SryKla!=cx#scqpSv_S0$(O`8jxVpDCPkL3Yf_E6ZCd(4}IK*t(L_bu{p^eB* zH`bS+H?3TXur$OqFW0_&#jpqJ5?6uis>OK`;PcV<`>jg!J z3)S%by2*mT>JX2yIljrT_GkP7oNq%4xiIg0!)!I8g%U4~pO>eZL+Nu1IwwMa2%1MV zzH?VP4xWuR5j#d95+E~N{kUt3u>_^`Hz%;8K(H@fNAr8b#|XF%a!I3P%XbGT5Fz9` z8EybPX!gcmkvQ}+oqL8^2{;lwfuLI;gp`>4PzFLoD4Q6*gmZ`c=HNcXdJWYu|9CqG zEk|tzdLJFPV{oLHMy8x0pqI4syN1n%&^=|Ls)#_Z1Vir;yyuT}BYVCrVQId(#&Psd zT0A5f8}E-amBSmI-v;7WSfC%u7{OplOVOgq9Re0*x;zY011zC~#~!rDuDD-t^vr`R z1@v?PVO~04?xl5?JW=Fzmt}y+x;G4Sw>M8|&`4+Rp<&Ues6&16CC`?wAqL2tcP{pOq`fwupA4#Eb;VKJzzVI*5(l7BZ-!Gv(5_j`TAR18FbbQ0i*zoG~|=!81@Q zSOEC8-vd3Y{TRm^=*U9goLnu`%&93eNnmR%E;I6I%Yb~m%SW{2Yy@%=^HOV~RVepE zH8UBr3Brgg-zij)G!^yu_L~D8s8FMbpsF?bH&2#9G?=$)sYmldT^xze(p7x0C`Q*| zo~ul4qC*lyj>wHlIwly-pPe7(LpRW%pLl?Q6B2DF%B{pPw&+})Oy<#~323GMP9AB#+~0RR zTPgRGA4Zokx1}Q{)c^zt9AthmEQ)?vgACGPY2<`9lTl5iSRyYw)%JJJlwiOm5~QeHO~O@` zIB9UayXY34W)Z!Vt9))Fw}ybFO@H>c<+0W>$^R%?D)o>mvfgr&B{7Vt6ROVtjKo}4 z%N9I*T}Z=W7aZyb$=|oC<9avf5S_WG)&PbT29Ih0!i!#XWxQ#N6pr_kyG_pimg6(X zyz_*g1YRwFJ*%J-ttl&}MW0t>F^YJzh?*y|8S-3cB%&l$!1Dpq9D%UBpn2^rXf~}h zaPpyqHD$gGKKM`P%uzDSKpYzINGrlEaEKB~zJc{K8}e7dWY~2FN|I72Zad!-k0zz4 z<%;wlO<##oz;G5XmZX_d2rY!hHgeSdeR%n7;c^}y>5|u56-jonOWZ{-4c#Jt#kIlg z9^N_<0eLIC_^Q6SGXOhvJ3#n((xW*s@bp}aDEV$^TF2yBxHcG<|Lrbq*11^@PO7=& z#g5e7%cSXEfs)7o@|FPP624zBlN`k8o#uUj#vyatGik!}W*L&g>fLg6%lhXBozjqH zerbldlT>0+%^R9lG>!2T)r!cu9!n`0J$QkK9%-!Ld*!c024eWs2o=O+DIYn21wHjw zQ&q4h{T*<~JcAEzTb=^81kGwzk(^Cs?Fcr? zD_K6ZPYg&v#QT#RKYbMrJ0rlEIA>kV4gK&Pq`={OvG0w8duO7#0;C&aiGuV@HA6t6 z*jR_>o$aF0<&adu;vsB~Yq$K}D9@rJ3u0qMEAuxH$j%QD-_qM=NhBXj?$d|mX3yz? z`sg9JZYEv^b5Ac;>Tz%1V{A%QK3+7$Ldr3HT5<9TrRUeolV}dXgq;JO!wGYku3E(& z9<8+ZZ6XD&tdzrlbb=+~I7gpZ1GNs)xw`|pwbgZ5^fVQf=XOJkM4F6QDr7{O5VBE! z?X}Rft`%Uy`L93Gu~m6h$7BksF?2Bt^vCZC;_@VSjLUR)WppN#cyv-Wfepy0ph$E+ z!+}$ueX@hzBkotH&pH%8Q11qDU#AsROFd-f^BQm*3mu!{)zh>!L&N&_Hkep8oXV&l z)m&KU-r!6Tag;_jVL9-P6;bi5$>;&lGJ;O~Y|^I`MXvBtH(L_9scC+x&|v28R_fK9 zdI;;Hr&zl6dy^zI`6La(X%`<#!4XO-^Fz2YxVX1`>4~7n>Ly!GR zzR7)?W^1&@Gi^2xcKqh)yy^VIdC&pQ0ox(Xfl5H4g@s8Y0G)jaF^r9hsci z?;Fcq%^XRk%l`Ufa<(!EL>85-M^4QHW6q-Sl2gWdmNT{%U~9gU%zh;nCN}#1OO?IQ zl;S%As^ka|GKdo?rJZKE^l?!7bMbj>h7$Rz;{#x^23F z3#Rd-wL@M94LRc5mk(rFY_501SSrL27$vk4oVsNuGD5{fkTE_n@-JpjMEwmnG)NG& z${P=)2U*k4%m7irf!-GU>z}5k!b-bMkE3JvO=8Y(vK2@LWYJ2>Y}Gy>*?dm2iBF9# z<;%hiH6PEF7yXKrDC5c{C>bHaJEwZD0yuDrYK8pRSlI@f6}p;$xmI&0dGYUJkJWEyAuLXz z4FF-W1j|iFCE-%KB&)1nJyGmbu75NTTzsNdw3DBBM+Z-sYl`Q-VyUe3Q<0$dDL&ku z=`-A23c>*ki0naIhWVwKyMI`f7Y7nr!wCM6a5`sSa9j!hi>yn+(R1Q9xT=rjFXCED znX({SYp*!fJ!o8NnlnyA7tUk3rOxs}>MPuP#vh?I=w%PVq&n|sM`~7a-ahcVy%f7;p6k*wh1-X)FS&ZU~{cS@R@ z6`Zp}A~7rD$5skr9bLp1%D+rj?`*5XlM>ged24Nde?s)D@_jZUDL+1*YDiwna(GB% zU`Rn7+xpVs_3MT&f=I^55Jl$VEsBw0&Aidy85?u;u!#?&pp^*-I`D;FEfdo$|HJ|< zn*AU)Z3b>adFbbvW$Qb(thp~Lv*2GrRk@pz0=bo6zRPa^N&3ptVwmQsv9bIv%;~sk zSuvrCpn$C0BT~3TuMeTV;w_{j`?c6nn?#fr8{% zOjO0#9)P-Zy44r4nBgs5|Ad5;hC$^|fGncnowPIztvN6%wbQI+bWL2;{DtjOP*ses z(!o2Pr|mS=NNNK|Kgo*SQt-fGa%s7Pl?+puI?F@Gk z=BU28yP`@mivDl{vl87isaF}lF4OzW?RP~rD)zq^%URgpL4Fr?LUMT{hh+|x7R=j* z3mRm_VveH9G*IkFp96P~FrK#W=;ers_87NNS!DS11>X4xxhd01q;oK{cj%;EFO||N zLMNO20^M<;1CJp@v=q36uP+5KF>v304zRx2Qu!#Y@GYo&$kxhZ=TG4n?0gzJygfOm zg<2pPg<$aEhNOyE(Ar(-!=6XPW889ji0^7_9m!|;WAY`{5tM6M<|&O69HZ7UE7zJu z7pN31ygOGhT|VuXa1v+AI^+{(g9U+sn<$jb-AcRY419ap?O|=O@=ugVJR2J<9XlC? z@(FvCAZN{$*l4ufY7JfLp;SFjLRW2nsevtqNVMWNU2PTIxDyh5m?%vGB@lkOH%3se z;wg)_Z+VVas4JWOI#K8n=C-m2K|3?$*rlz5VOssfrB)XxVZIiUy$9uc1->|E-IeXD1FycuVZonzD5J<{A&FJH%Vu3?wph2y zHz7Z@_7$8aTl7-!z_p4e?*lTrnu8ClBG%}_lUC|%Cg*PsB zR0)5l9@_qv?iFdANLlSfS_mi9HvEe67eTah3P_Q1(~HHo8_vmH$lr{r58U2b`%GGj zHh1N6nSw1LLy!k!z6_P9oMSaPt=?gi-10LQpF{2gcc-QK({asH)ex;8 zU%CIup*XBD<_Dcx@L;#P|Frz7i}gML60@%)N2G-KZCZ9a(MLkujmvmpS=>u?ntw=z zZC>s7V(yYQzY3v^)ubBln52INZ39_^F8=t1-@Ct5gZq~l+SSh(J>1Sy=ov4Yb|S6C zt&fBqULWGTeKpOFB2=%*%gKeO?9K9(h7dc24F}$*OT%kEHYOO7AL8Dv%UT$HG*)dj znfCYuXAqJ%5f#lI79NeW-FH6|KZ4)fP^E>yQx8{lJKZyC`6L1o8h&5T;XE`_fcM>7N-} zorTAZn-)(X)E)B+hZUz7v!6+efk^xaqT>asJc!B-Pp&?zsi_zy8uN40@3I&6={65`kroTn z;iEK2j55s3Nipp*pE+f<(x!4E@E2pr^~10~DgUV+>HbnxD?dr3DRxdEUYzrF;Xzc5 zSaF{D8J9{W`Eui(jQoCd2QCp+!8w1O8cOcV!0;~;fBaF?@XL%MV(icV^q&Ys8!4QW z-!&TBy#CJH3Vzj8tp{s6z(5;Sh=Tc&s^#(8_9dVVeH+0PT-DNGZF?%nhJ2Y|^08`( zueRM5XoJZ{Fk)S`&{O+E9%$W1R?uWzHO*Dq#u&7&cOa|K52ZB62s_{zNR(P+CGC>}ee>5x? zKx-`#f*d5OaWdMLNszUY13~It)o5XDi%HO$`-mWMlWHWpwnZFhO{+{0RHYihsBNJL zTH|F9#E4N1qt!N#2CdN|3ZjIlhEi&qM?uzTMg&ppRYOU&&E+6#xMhL}_NpQOvk@VP zV4)g9{MrLr!?h6v7^nv0X`3TJ)_{nD07=ys^76k}+MlCX`i4N;yRj}iBSIIJIrlWG zw>afbDB6KxEWII+ZHWn&LK~qu-kc*6)hmqh2PExJp)9>X(AG|@i>s_q2W`$8uIedD z`7MHW031tC2xzNN$wh-fs1h${303t3q5K-4?GIq-0f4rG(Oe`Dg(?pIp@LV9{4d!E z75rz(3T6C<7=)4#|ECfUgdz`wg8roup`d@tdqn6TDid=4f5|qY>_5viqU=9Q&!+5E zYOj+0-;!e}lSBMJC3{dN{!a;vl>Hy#C@cGy{{HN04%2c>%A<8I6N@mRlv=_8kx&D@F6S|axPDX?8nZ%(x zsg{!Jn>)kg&nh`5we*ew9#uw4+c*A(P6WEhi?b9VNuw&SF|eq^@q**2h3c>)nw^*o zWSzlk2&?Ego)ZjDNRwvJhXM%fMkJ#%iSSXS=r&O=ntKsa<D7*M@NUOAy>os~Y{; z5W?bd0nw0djn3IU8u##!QnhCHM{UVO46Q}(Pzvhx=D@m{YRa9=T!iw%Me72+KL_CF zwdK(>fuHe+mlpRc1|EFm9}93-?t3MfN2xDqpUyFgetyEn{%*mzNJHn)hm-!Or;1sv#WR z=xa9rE8tTNlcU0t29ofDX}?3ta)6+XNFpipE9O(8U{P}>}hQc_WYjh*ms3VKTa8cwr5_1j2- zt`vd_D+-P)!pgbhz#@tWZc1)w6%eZ;RXeKy_;&TM zcBioVQDoC8te(SY;NJOOMkEuvDyPBs)BRs8!XgQ&YI=oOamKfB!fv~LE)Zg`72g2i0Sjq~B(1aDnqKWjITyi2H zbz-itKL?rmynQqN#^-F;XJIy_t-+kr!XUb%>AY-{^UqXAfw=0H=%q*5c!9WT%?%i} zZIcC%nUHNRhl93EG9?YdVyg-lEs1$&wzDd&6%lDi@}ky6Bg>$Uxs5UAk5&-Ertvsp zSRC;IV!V53n~0uYx-a}y{P&R!r_wZUR+jKU|9j)^N89+}&-JaXgl6i)w2 zu4ID6z!`;?E*+yxGh7DV(}KFOSPMg%$(0PS7+9n5(q3;jC>k!)*wd^!@+w}3U2oF!r)MH1xYM= z>L@&H>BRNdSBc{)eR%i|6nU`O{pd_GgEF6M!Z@HN;R}Rr6+hMvM>8fh`mD<;y@21Wb@6Ebw zR9lRyUNfDwVXiZu7Otp0v1lM2e|LM^!C$*WKixpC2w49PB{;E|`VOIQ{Uk$L+7_l+?#$hOxPUXh0k;&6|nmU4KeZ9oxMIjcMa*)gt zng{~L-rE?pvDK2SF6_V^^5OBNp89r-fS5RCUhq?$V>&CR-OW^2zDqGKq9zv$`P0}Ad^0uT`fh#n95l4k4Yvk<4=)uNyk*)z8ly;RS# zeeQO5azQ7@OP0rtpMBY1v($px*%hDTFL##@63=K*(Cp9QyPec|n&XWdOn>Jd>HP5e zr3!oP7V-6uzXkj@!p=%4WtAyzD||5yTRV5^)qhm(Yb8|aOpn>}xTbl1xF^|tBliBo z-?bM(VZkwmrn&bPXZV5M(MAavzQy|{R3EC>ZrJVzM*8hT%)=;D!pkZSo(!K8g3_K2 zTSWtOky{n&T+bM)I8?acxZYNUBX;5c5 zSxE4g-+OtpySqW1)D2{}BFpv=u6SIe`FK_xFD5NM5fcCSpTxuLlb?7Q>GW}HnHOL# z?z|DC1iQ9I`<{KHdk)-+DDj_8-$oSh%@#!sELPJj`EHOp^`1`DI;oz0?fpnE$m`)E z_~SAxyX40cZa0F^+VrnQrYwlUxQulP?*<8hpk_bGAH)mSUYd;OgXed6rewTuwF;4D zZ;cWIl{If^mWw`U4Xo6k+rw3_e~Vuc&23P5PgHN$WK7mpNIZzbO#H?{DWapk|GgDk zj~m{1W8py8-(tGdsmLF_Vj}e`F{)lun4uw2{**2X7mZDwHC%BWa;-6H5)^T&ifYy) z<*QnL+7Fi44vya3uG8q~`*eA1)^=5ywnmkg-p~u*h_0B%io?y30y-zFSkEsoMuurUObyF&1PpVP27L0?!?rPx`z52>Cmm_ z3qxeF%>u(73m&sO^(E648N5}Y6g5l`ojiKv??8^byhzaISNU*>&(7GCPLv~*x5N$X zKw%T3dSSl0tv@?@XW5GUxvbM!W7xL%ltq-)rK9F|*7tYVJEOm)eUfYIh?~xZuso=1 zx9C*Gh@ZGsoI(2~woYDnLC5(LM41s4a8pgT#LdPAnZgoH3`a7h9PbHh(G?@Qi^qW< zR&EsUoFUG%T7-ykxClA48Z?X=siz8p3_^HuF%mMVWYG)Z(ck)Y5sGQ$&dv_rY;m9I z7^|D&zaZRPzJV!jG2q}S#4sS_VKE&hdt%=X?dX5f!G3~&{8${YxCfYx0loGA$i-Fb zm@(f{7nvmz$Y;npuIq9~Ksl{KRf!Fr0cjLwq>3T1^F=X6iG9>|UPe9BX@OlKiTeeN z#Nie7TTCyK=VmpnGP)$2%XsfSrE;U`JCeWXcawk2kUjN;ADqgWZU16@;AXBO()b4F z&1}K4FZ}rX)jHecqc^ao4l&P0G)g@EJ&AOlF?mA7p^BkuTb@jcRbKIdd+tALfiU5} zw%C=QxH9fZ@1l?+{38%q5GABiHV`X{ zWH8C9EHt>SoU=`iIF=ID%h--<@OQ4!lqY zxhUkvXFglYL}QC^r{_iDU7=r=;#!I#Uz$!Vp`+WMs7d-6w^Cmb@5O?~J7!Lqmg!kk0aGHonI1y|em7!I`_eoc3ZO;;Ek9jfL^^al zOSN3Mkh0(_WWu3-Q;{7m@(ZGPSM*U~#C>wO%S52>7@*rK*p#QAi+JZhbtC|N%TK}O z!QI*trYwbApgE#gJLD05_`Pi4r3&D_9PmjS@RlW*3e=AsYmPj^4ZoKObW;Izlmm>l z0h}zsM4*23SaZY?cDOwd&)5GoI0o_mm9pS-d5|Eh& zcT`e#_7L*(LjAC{i0XZAK6X*}*mo{e&o(nG@A$H3N0i*Fe1U}e2kUa#^{%Inau8e!kd(3&Hd8)eq z_0X3iKs9siB0?*)W43$uL;Y~<2l65E&adNlM^T5fyDw@W?AgDgn}zhmTfF-^(l23u z_y5-Z?f5MCSEPqBkV@SC8OwF9@#(7P@5^3P-}`N<@C;7!;MebeKt4qFJ)Cg6cl4ee z%~)59e&=_Ds^$FXT_tui%&s|RePklxc7N)ajPEYrnZA#qovpnm?5&dY4;b%v9~LUo zxxQWUHvAss>R7BB99{!N)q}&UMPSfJQEJ3VGpAwgmwLr)KomVVoLU4LeH5uioCtFo zw0@rDV5^$fY1II*M+R0aNd6=zva-i$!lkL?NXFKL~C^xgA zB;6T?gJAjk#rr)e;!zYUV%&IhId1Cs4@YAc$oOX}cH2e<{R!;M15jK{3EYi`D$jI#WJFI-5FmKiwh?K-2Dz{r}M-EMn@R-I8JkKWL6} z-l&1NzM5cL;@6$eV%H``wn?sd5=D}D{;6mmZO?4=;j>3f?(`E*3B0j&zGcRNg-0$f^jqHA_9l;dV!y*P*3tiyB(s|QxAGgM=Id{0|S z%Kv=DH}x@@)MABS_%-b&yyKBt5#L#$;iBw)9$g~(u~M|su+Z=;X+n0kcf3x>oWGc#1LcYKiP#tlz298}Q6mFUQ-2=h zW`A^NmmrBq+G$2?@bHGx3CqUAm`grWkXZc^H03uVSeN0Im4rVO*5cQE=KIN|SZ(J! zB~3l%(eI)yPGsK#0bLKm-*hG%{JSND)CN^*{G@M>w%G9wyF8}T`J|m5ISfpZ3xu1u zN0Ow+oWA1q;eQYn9!X617yX*JFc5vp>(0HK75CBYS;Y5|ozm*s*z(OL&)kkR-u{(}q+GT>W13p^gaj;;%$}B_C=s^5tlqc8Fe5f>0)#<) z{k9MkE=|)4htab0+vJjv@sy)Mvx=wUeHvSktxsEV zTGK?O+)8ErBtbIW!X^-*FT!#Mf(LZ8${9BOz%ssd=&&E60ISOeVOV84O z<+fGK$+Gjj^Za@4)ZpA>f)ayesZp5sd6$PS!JbY)I&=M>_RP7ZJC2cnShfJ3Wz=`} zRd%~}>y8n2COWdV+fgpNCC+3cJtt>o`R{GHbkAP*F zyfT{7yE5cVG!}02I0YhwC}k5odX8|@5dkimLk@f0 zM#3(?YOwEuLe25Yb?9}ePH~lp*J1~rrDvW+u3>Iq36L)LZHAT~O4XO0+^4Uf2H5ys z%-l;`w^OfKUW}jh0u4moiTDYR2oJq+5jK{REjA?yn(8p%8qGleSb5g-LMrWN>)bc} z8J4kGG}b8~{on~W<~*Tb?CEd{k?i!^^U&b$7HZcRR@0n75@|gF*!u$Pb=oU6P+8y8 zSE9<&M4_{sop`K;mshm14!CnFS1A`vcB#y@j&5=j%o(V|Q^%bsltJ*>c)8Zw+haBdk^rlW&UARTq1 z!c;9DcQZiYRP0MOyQ))liULi70ci)tdAg)Pm%9AITeP?3;y(mmpQ60HHvrHF%Dp~E zEkyMi3~o?AmAv+H%1@8)mRE_F6t|aWW5IE$(I|D4J7&;n-v=MVwBdW|ZwKcM^!GohS)x+%0@0XjG2U@l0E5Adncc0(FS(Ox0$G!9Z(ukFx7~Ij$m=2@h%oyU_cJADqE(3@yD%;NRmz~?$yll_UlNz{AU2v|o0 zf~YyVlhY71g4eT)bN*=eyy-@V#J4GREpOUI`*$6X z>v}K?TS_=hNWZUw0j1O2BHxTkhfq7)Y6WDnLEb>%Q>}6{`$JIT>A^pofA}6;9m*|r zESnKy(!F8LWSje{GgLcMoyBRxXWMAJBAQJ@mN_L!Kea-@&C;E+9BgYG1&0*N@ScYs zHj03RntY(iigjc^VG|M_o;~qOV?^GK*U*7PHqPaR7AAh2BLC7I-C-Wfhd@R zQ7pfL>r77tJK#$0vn~xu zg7Yc+;NSp^3y3#EV4CDP?Ll-yy>E55M#1CM7AYtc_m$e;nWHLlwE_meqmU}m3lLfOo1Nbg(8mvs=|XZt}=_#fzq)8g-VDDg|en% zXMYx2@=%s-wc&(vtkH}(V@FM%sZ2x1`@EVuP&uT2DMKeCWdb7g=vs7=BV5p@{#qavykv>InW7nEf*IHrzkdc0U_%mlQzp*^p9t>@rnd!SyAOq)EeyDOb z`emccT?D))sImy9O2c26Q9@KkL@i}4^w(cXqE=lNc}tj^3U742L~@qDDG$E;9ooe*|wu^8@> zn;^~orMb3PET#2S&}NJS;Z{kJ3Qq-G!X#UqHHJ(2#^mMSkG((CtJf?rB za>hS0lPX`%>uv3&57jK;LYjMEHYrhojwup(Bs&W4nZ zS7X6eGQQSpX68wsYFqz=ba-lA^t_4b3e_fvA?-f>{honY%>T0bW-%5)3=#L~M0@{X z9WU9;VhsN%qhGRf4LA1U4c;rG@3M1+H}+x;KC@{aIEdBBr&V6HQtFjVEcqEGy&_hz zGI>bll^3O2$+(UeYhsz^QnhG;yk_Nz0EJvh<&qa^tQRFe0+JP568IhB9be~T|1>J& ziP~q43bUIdPoJXsttfea3W_67&u2R^cf?hCfM2KaCvMzb3KC!zX_f(rL6&Zo9sxW- zD1lv?C4oqBFRf1Uaqt>)Q6sjrIb~$OIA*Xv8Q@wFc;o~>_fHIOPKh+~2Q%&-pXh=S zce09B6HcL$N7pB(9T|u9tGXf-MK6Rk=%~*$$cFXPJotGlv>^Me(f1wvSSkNof{uGN z_*5jSZ#CEDCzm~fq(-&zsBj2%v*f`Di=PXlz(L#HOa++}hb9$yF|i8-$83Z;T4fpG z6e)ydB5M7=*b$m9XqHZoD5BRYQ7VV4yQ`tq*41{E7&WCe{MB<+RfHLCS`x4Ur7@*) zv{JNMv@E5}iFKvfiG8JYw8PkTYPNH!C;B-UuQs*~6njq->HUqXT%eVxMWeIFTMve$1Kp<7u}=ZC?9U~g77f7{S9L08pq6lvp2dsu>$1mqYju4 zpXCi+S|Qtv9&z0%Bp8{s<%|d{duZFZ6F2daMu;nyERQRVE1mp6yGq+lTS4ofSk@-v zB*F>D?ao}xG{}6#aK#8GAjNAbXepp2%*!0Alm(MCgwKe!t+1!1q1T~sMw&S)vMi}gF*k~N!*~Q;ruw zM0}t5aPfHb?EB})zHR0))m36mW9_$9pkimR{oL!ua7ad4>?hfY>ilrVuGDYGUsXa> zq1`9nPE-Vf@2Zhz0}aOglF z5&SyLgc?jZ9@$&iG#1Tpj9VmarvJss?RDb$JrTfBkf&pUAe|irmxiVXj_eEq?HTdw zOjh$s^K#@w`2zGk-5*P^6bR!*s98=F{p^C~qv(OS_0pb58{DuEyP*`sFf0Y4Rv0=G zIT*fbFr${(U4n;9Oz4y2&hnC$(`&2IVjONDiXK42AE|x7#xTg)A46XIO|~pDU((<_ z?xE7D)(Ph5>6~j1b41Byhf&7KJ!29iC?+Uj$|i^>+>*|cejzO){UDWAE6^L3VnN** z^^NYq;?DJv-G0qMM=@71T-913P~oTq3vFHV6QDze%aCX?ZWnQC?+B6=&An5X`8AWA z`;WzdVTT!lsXm5p5cf_k9>T{@uhkT1H>W%2OK2Sm8*gaKbvGQ67y^bb3US&$mSKx; zK9mB4c6VgJDUw*%_7J=3DFc4|qiXsp3COj$Y$Sy4a3uE|(V4f&4LBu)K~4#wYaGdq z{|kh!lOZ+>qFX!t2PUI47nBQjN&u{r0-O2at?iJYbC}76WONe$9-BEO1U3uYLRY`h zy>p6xZsxm%&i>!+59n+T-CL*lhi1NiWBr=Ben9(jXkVP-9{#KL*(vU(nQH~wXGHrC zTh6tT*=K0^Z2#}kT z(|%8z{U1=~#+|7qS=>101g8F;*1r>f8Jb`J@1V2Hcs7VCY;N-xYGqBll^bl3Qee& z;c%yMOhz}3HiSv7(h_#!v_iH1w~cu1=cTd-KdD4*SifDQxy{0Efd<-2|Kz1I06$Je ztysVPLUWUaRSWg9m9F8XFaV!SMd?|KexX^)!YYM&VM$lIQ%HkP$fGo1qER$UB3MQL zHP|A8nFV#4k+yXw;{&hfMoz&5KhS*n??LMsX?k}OI`BAoqymgro+d>EBN=L)`2U2- zA{a4HYc*+FcM^OsG&fQP#>+(GCW0OVHCB__b0>lacaTT)!#I&?Tt(1Bpc)eYvc_0a zJOAi!&yDDYaU9aPh@ksHjb@~_+zEgGe?l=B%OQ=r2$~;MdqyhX9rPPqksI-U!hLWB zd4w>GWsF8m1kDYqohX&-4*H*vVT^`T1l0|yoG4}Nj<*laAP?_={TtW`fll2&0Jl4=B(5FZ*x$4WObkk}K|5U%+0uVYM)d z57a+JkpEjSQF6&0s|4&t9##pXkf%NoLDqzd{&(PlJ60;#Iya0SM#4lrE`p>8zBp~H_N`X$Ct#;fvOm1l}Dr|af>Z)uL zNxhG+xN3zzMm2$JvgD7!{OwBwIonAdf-8$~w+2%(wOZ zJySFTFGF`Bt#=k%E3Xzc7?6UK7MvEHCY**-FwbehLBo#AL_cIwtW=e+hK~wS&aw5YsT}yGsAbnqtyM1#KWK0Ks16LHh4Q9$ojF1wN~PFDT#w8 zX(XTHRhgW*aMh*%SlWwt5_Z144h`Z;;Ve=hS{q*Qf-g6|1JNJt`rvx+dM5i`&rvGL z6PF#Fzm9TIj4BBmU)+$E9bR%pmFVs)d|Z?m z7Ltk>euus@YCQ~N;#(zxf1E*g{3CDcI3t}u) z!AW-2{;fHyFs>o#p*gFLdYUDk%G7M_t&&)k+{!ChF1G~T$U@hqaj@o4iKqg%@)DLy zEkO;l(6x#jbU2hEsx(^v2X|)y)z+Hz{oo;3@L(l)(BfW-1eXSPin~K8P$(J*QrxAu zyGx9X)3dzt&#?6EV=AgMMK8I47XK@k0DKF7Gza| zqeheeF``EeCPTbgh~ZYF@e-ub%=|k_{{;Ghj#r82BtzC0t+(Z z!evKMG^AL}P+K@5DvS-xT8y10n}QROLm;6oA8z9e07Gc_sgQfKJX%R z;>j`8SZypvPKk(58dYC%Y1b;FzboOi`Q)Q9Jo^^%4n#)s0(ov5t1qA`)U;tbX`wY}wg=(*6& zFQLx$yo%fV-gi8l`~9YjzBXBzQ>>o(O0XCC>I|^csSnTYWU}A)V$1HRnW~{#dm+04 zSVAqdj}iyx$FFgHiDKUJm0&ew^d%`7dDby*w|WWrA-`WnB>tVnecZ^Jk6IzcKni{D ztLYL~&s8(NXx8~H;ZAd6)xHy0{B3(AXbzpNrcNQbo{)jxR=n@6)!^avK<|T09WMHo zQ4$=<=a=jm1Vv-)Jf)=toZg&85fNCj2l4?Ij#jT(6LnwDTr z?CFRR-nUiuj0n>Y4QDoL4tnrk6%J_ zMZovTPRJ_BO37l$(HW6qx*TDGa>5vVTT)iACZ6^2d9z;6x631}K-Nw+6E-t8BQ|1I zOtvAm6gE%Rv8*^?CNv!v!T2T6ZoEJc*DejH;NoU}^pq~my(Y@%p5)Rvl(H_&mpRF~7eQ}IgfmS_nB9&sLLEPpA?)jHaXd(|+>|ARiX0Kb8J zk)2h2p~2A}3|84b;%Nu-1s73;N(jVY;`8F`#pvVf$G~H*$QH;($y&(l$Uc)}ko|1A z7X6{;Ms7@?NZ>$VO@IQ`!%>Qb#7cb*Fq}eS#K2Q=BzC3tWTkdv<0h^Nh9g!Qw9U%! zhO31vFTiIV^cqP&&kHFG!tEqcfrPT_>P2B3P{ku4v|jWJMNv;3u_j3_$wn#pDa9#e zDP$REdBNNWZUFoD7O}p}^O{SAmeUV!%^4mObr-DbGenIl$GBAhApvN?q6&i2@M71;c-h=otqiestcB z#yj1-`l&BHLx@SX`oD|+lPGHMbp491V9@8%J%ngxtLwYiZ8S2wA}Hwh`6Brzb;%ck zGqc(Bo$7Y@^HZZM0>*xuOP&y%#9z^M@SpW>O#cs5^_}u|c*UvS6{w(J_mV3F=g#I| zB3K9x$+g1u?DdD+rTZaY8Ly(Ri?07x?1p?PxN^A8zW#&w_KQ=#PQKm=`NDYh55#uJ zWx*B4b8FqYre&`pCM>?J&Kg+TfMHv9$L*W!0cEG8KLLjiqU;FB%YHe5Dm&ge1l*kFdNUJwsg% z1zF3WK|;K;5=#l`9BO~a*IH75;U|!1DI%Rk?ZbVUZ$|!)fg~vdFySA9C|l+~2FkD$ zkj|j?hJ3aq&gd@_f|P#~Or!STyym1oolmjE9Q}TRud*ad{%?WZAs=grCi>+BS7lKq z@n0NEF6k8N#gL1&NE7YyBUhz%7E{u?zXZmlwWt?x7iN)U+&4u92`<3aA|u5z+|xE} z6GSERJW`G-4W~XwoaXYa-liZTkS-`0lmKo40OF*q3Zee7Kc$BS(ahbQ%~U8{8=V!C8hSxiOfj@-o2;YXfU0VwbAs ze5uW(!#$Wb5w%+gTQ;`YWEBZR_b0c1%M)VAi^h9kiPOa(Wg%$0an@zRosyl7stgg0 zrfR!Kx;)O=HhL4Z0opIU> z#A0()S=wJfNCsl4If^Y!fTt+Nj!+$DZLB~x{-1(`MJPK$1(-FB0(cw}g%}cyVoDSE zFG8tgkN~)Z^fwF%i2tbB@h(J8E#Z&*9fjMg1BdLBGux`^CWP%Zc+2|6V?0KIG42u@86i6k|-ccvE4U?=_2H`B@D7Aj&J#cd#l-scUHhVu*(jR0C zO2a?JKPJ+^C!G1Y*lGW1=r;705u_o`LZbs7hWztQaDE{c{xkS`nnip7FEr zsqa)Cn-skQk(JG78ZS#8kK<%3YV3g!KWaZlk~?Y_e9XQ!{?(v|G}r&8p}f|<`|-bI z>WqcA9W9-SGL??!WmU7kKTY=iM3R)0zXkG zL@_zi?|(x*CkMBRQ*2E!zG!GHKwND#4Gr;PWi(jbQuuVSaz}mWEjv1{2p)xY2x?EL zH{FpmE=%@0F^uIw*n6?o8`GO!vM!(QW5r?#6Y~`Mp8l9(ET4g2Wd&;lKK>|lNIu6= z8=`kr@k5d~JM*B(xvkedFy|xp$&XusKA*}?T-I*4-S&Q5{b=hxCLZg<*00E8*%v>T zSvaI_f4m<^(F4kzqnt=zayN+lwNAL zExO&KGynU-Sm}j!Tbi34-R}$4wiGwpT%SKUWA+#SK$MoQjtL5C#HX^bj{aK$Iyx#S zNEjc%0v*fw#r-<|J0g*FrTSPxr1rb8xY@Vl$yNX1$bwX-H&ledg`YE5TF+w1t+imd zP=rM89Z2C#uMa(pq?60ZApECm4~n-_W`mTarx|(ihJ0>csK3o@x`m<4+JH`{zZUBo0n;gZo>kCyQA zZh5OemYW%U(?Tz=B0&G#YiDVSAg4p*q2u}+iMtH*N_0{DZ*s8MEop=RV^MqpZ2B<@ zA%u2O-(k2HJYri4*HD-`(Ip~-?zGTq3Qs0zqNYe*#bY2;(T~;YS(Ko{Lkd=OtSUMr z0UeS(l_=rj#6t94;N0X3#A7RdPm?eG`!I97<^jFfmb|#fKxFg<|B!dvIr#M;W%$D8 z7t(mo*GQ~!9{hT%yoN94-u1h;vHIn$e?B)dPClJuT!N_VyD z-kn3=MWLDq{e)^a&3*c=kK)WP`fJ|k4}gY}hDMRr4;W0v*BHK0(3Yd$j$9TOYL9g6 zNS&TYu5sn!Xr}h&rAc{bJe8-rw9Z)WY1>A30)E2zqJRnA_5GA{74+u&i~70x7;yqU zwlp=O>(CRNrORhc*H%~KX;6hCKtIuoeZxpO$A>DMm5Zq+szhl)VyC5_O@4UW-ddNT zyVNx>mi|d_h$Xy0xB0cdgeOj7KeS}IKwn)L_`Oeg7xOkh>6g&|CS=G09``BRV@mOp zu7oB`V*6RLv|#*KVD8*XFT;P`tmb_1^H8?`qoK%?+f4lP@NbmMS1GZQmO!*=`@zt# zfBY)p<62feFBWG+ z+!JiP+Ks@<3cgd){8j4a?;4P1Wm~QDr={BPCTxM5MMeqFl_u+-+Yf!JdSn!s(g$Y)8BV9k{lq{g?&qVI=nx z(C|&kdxh!DWAv9&Tk6km_B{5vJ2}IS@riUQfg&#=ip7*ZMUJa59idjqrbkwdueVd} ztuMiqm#(E&!KRy1HTL%bv05~nLQ2sXVyDtuPlAg+{da-325V@4R?fBx(Jq?=E4+dg z`O4)B;6h?j&07WP8>6L)wN%er=X>Tltrhi9VLkneg?Ink2V>8Y5_#X51T}VvGIULh z1s!&F-Sh5R@~Xbp)hai)?Vf2XIO2O5Q{y?^Br=qvT=TR#u%D2dz)Y2Rwd%;ULEK6N zSG5b!eOkp#-AJ4 zxBR%9b1CBB{N@(ZXkdhB(Ji&rhBhnbr;BTqj0Uf2f1qEJGrr!3&bJgz4c!}Anr<=} z-59x=wsUGZ_$_-5@vN4WJ zPdha#wl1FxHPXO$Wl$!=x)Qj@faKgzCc}FwBhL-i_euX|+I-|^?mkhsa_(uU5X|-{_D3e_L zA1LN;ez!&+)qna?`%gb*|C1_2lsn336al?uy%Xl3e}ILH3ugQbqj3!5@*cp%ZI=vfOj1YO;+clJZe|JfP_g&`3LH9LeKWreS-p;x( zu_3(BRJIR4$jzpcs9dU(Xob_G*7i84xX(qZ{&)86*;;ejNF z%Xe@f3pKH5UI-ol>LX+_f6I%#2sh*$ps^0eOl|}c3>GBNSI3hs`S@wTS@r4pbqtOx zxfe*E1IuoO#y${z1QNH05PA-%nunY9dtnL$TcdO*(%wfzs;SNBMfZ%}aB#P8cD2MG z<|*@eFBHJJZZ>T;p^ss(-6@9H0_9b*5vG(vlq(}zEEA*y%F3hYv9n8@#xIJFnHq?>l-?DYSE`z*{S(K*L|XySy+JL5sh>-(S+hn$5Y;s zs501kr2I9L1?zxQF{A6V+9FomRA#b=GX784Jb?O-;n=I#Tu>(|psQdvj$0ITMi!~E zUJ{pf+*e_TAwuV*zDSWn5X;wRrme{~LdJkcwp^&jOjL3Ny)k&%=9zRWE-_R#xt=@_SnwsMQ^t zLFxnytlNeOVhL#21%vFwN4%D;*I`TOOe|s+u1)@qp-id)>D$|m`?b;xR+~p8ct-w` zgZ9;obNbtn{CH@R^r0M52cN6i1{Uu8Jr*05Cp86<9{Qm=oZxF*y zy_6$jrRlXdw-fOw{KZT9|99|B=l?eIHx_=N_{YXj()4nh+a!2kfANU^p&P`|Q!l)T ze+O#gg`=b?ADH%_dl!22%L@>@0> z7sOPCg%QcIyu1w@TF#8j?8XQML#?3mB^axsRiUlL3`2oq4+#_kdc*VpoPWq4mdM!W1kd`=Yhl;vDWw zHqPYU=xw5d{ojI|x98_B2D<@|d zWA7}8#L+s>DfyrnvNP4Mo;$B^Z0~M&=KNU&Mv{Fm`D5+|w8$HGoaqMk3g#x!Xp|x$ zt_k5bMHnw!P?+*9dbZ@H*g3iTnV8L9T(hAg%WM7Kc@U8!=UY>B;)2j8JFuuW(YUQ$ zDzin_qqMR^poShgfcK1T?yb zs%E_PE+$mH^E-v<7B6#Nwtmj}oc^iW&Bz4V`pm;G!L9+E{QK#B8`{2*DCP?7ujH*dev z?oD)UMi7AIiqiw-USK#s!=`IZc@amx$&y@#h++f>X_}}MML@$9K~MssQM+Z^M!)^nej0b{UG z{GUWP#GysA6q1q5Zk0Ctwe_Rl# z{LeOU5}Myg-j3wylC*QtJMpAYm3}hpUmSSIZUw>&Ne*XO(Vk`nsz zEu}~VmKLKcGFzgo*?)0Xt4{;`FjTS{%|_7mmIOTG`uX}eNwK@n&@`DJEE(=T-G&TgG8#dTE(yejt&|KD3(NRMWuPy#KD}UG+;$<4_$| z4N^krg5JBX^GVEPkbXB6dc%gFpvwW$jX};s{oqIqQXoA(+YVdnR!yn8nY4>fg<-t z-gWIzL@9bnbNxsh)-+2BPV`EUeYSKt&TWurlyqS&8w3YrHSeH84Hd9aUH=^9!UvKv zz|;&y6dgX8WbeDlDT*N_=rWL)e$hYtK1D5yj5QIP9wit#wuA zI{p>gnfZLNhG}KswiDGlP!Fg7d{vpM+Cb_Chlw4HO0Wy`gf;;#w?skm^#8`RoUMK}CmZ14akg^!?}4=6YUBP-@H#o=KkO2THgLF>WmN%%5F zK436Bqf{W8Sy&Ao#|COpnWdvtTI6-VL75i1X$R`#?3!Ox65)&4Tn(61^AdhF8`=rC znC^;J+s&ItpMmo%r)jkcB=_cV8v>Cl-+ox7!_|j4o|A8Sld5pIb|4Y@H^2+`IT ztbRO=BXJMd9t)Xvb!=;%mM?#64x~gBPYJ5EF`)R<&fD`%OrGgO|q^KYmsark&vSyqMDWq!?&8h+(7UJA`T7 zo-~SS;}#{LUJIcv%c?uYH^vsg#MH;7=c*k21kn#`j^NbN{)5J4Y1GnzeoF0>nd1Fe zX`im=l6$-FV&B3Qwek)XixwWtb|8=yVk0ysn9NVhmG6k=Q>8X1HQE?63b5?51`Q=< zC0~%qSSwGee2Mv8v_K|lt*oJP5W^tAQqJl-kdURl0Fty))_@%#={-vlD7*#|#I>K} zUvAx|=XewO-LoKp{A}Q%_?>?fDFC!nHV68`Fg?k^>JPocy!6Q2dEVma>x+JL$h!;3 zl}BGowvERN(h3Zp&SY@6#7rY|&H(iRH}U7wy(qMYHJN}1SU6)EpyC8(HHNPmZ;heL zT%)QucxAGz2VwI`cz)LT`lBahXG?eUv#a!Z?$zklJYtLVJ^WEU>RjRki~%i3Z3+7l z5b0Uh_`i?xVkzM;;P*VP;{sz{lHG;hl4X<9o374e(32Y0uWD3>ESE&%E z*H=3{RsTJrc%J!VkuRI|_tNUFQOR!txaw~3LH6U$4w zSN1e*)uM_i7|&4l9)kEJ{NW+s9JzN~O=AoXpU8QVYne-%>z+H56Q(({Tf1ARE6-VE zT*(4@3>)st%9V`5e_Ikuu@#JiJ+!hYASaTg@>Z=QoSzBE)(!ySa|5dJMUwq?Ynks= zvLSHlu-8VrS53*psqLCs!eA&wq&d7+m>dV7hiRgJCU@IX0!k(;$`nDbsy^nOd@GI2 zF1h=i;y`P!YT)@UHmG2Vu8b_gGD%Z}jdD=x6P6yCSlC)6s|n%e@kO)eJyXF-JAGV9 zN|97mFasik~A1eK!PN64C zGlmPIVIt%(2z5r-Vd;#JehzXReU6qetdjgS;TKuR7T_E=R!dZl<#R>(c z+B328OG_>E*sG3|4)80*woj}bUG)n5KXD{l0?SlCCt4B_ zj3EfgxeU7~cv~7A z@!%Z-!$M=V>Ki!p4vk5@)}Gfhmg+Euk?)16%1&LJ9X6tE=Ne}sQKWa_s4Qc%u^F7b5MH@A&`9&ey=xfBllGrYKW?4;g0@OuFFJxuN z6qh$gYotGF<0bm8@U%_y3ymGP3~tBpmi#T!EDA@pxVEt-X~0dGgxg-9r`q>2PVaU4 zhng=2-m{ak;Se8m75RDvET;75Z}D*>(UPuo(RP8mDZOvu169>C{+gs=+cC>sUi?Y5 zZoz8KCM?#u$_Z2a8FZN&XX) zd3d|(I741qiipXfS&CpAXQg&^hsN=khQCSq<*-Hv2M^bd0J;qrd;EnqXJqj3nF4Jc z>CbW_k9Y$0coz@#R)r~Ed~yZt2()B#z2`xDk|_!Ma5aCO^2=7OdgsZLO2H1E3j8QA zchU&6)2W>@O(S>G5NL=0Wveem)l-(;_p4c)xshitu4i6#2nEMramA*jKKE^qU(McL0*}rf`SHrM@o# zV59hNiwRkGj_<20oZVE}v#C(gg;l{QFEcB&FXp)cp5RfCC52d@xNgRy{iNPInSs;k z4MiG1`b5yEkmL;(Rqr~5`?9Mx8e!d`+X-75G}a{!7NpkbWr6sDOaj?0Auq12{$yit zIz-SQ(DH?g?7lBMwICn#&?^i+ ztGv(FmyT(kQS3TdS7At$y`r))iw*+Qqj!}F^1gtfAh$q+V6KoHKXS~W1ti0+e*Sb|ml1vQ`1#a7W&N(`;Y!Y?l&<^yr^dEu5Cwjjk#1Rh zlg}or7yi0kb|=*w9s9KGvcDBuV!l7dsh^&gzcoFi98yGIh(bADO+&*>R*>xhsUg@s zW*bF?@|A8c$ba_=LLYhX4Qo)G`k8xLU;hh=<1p@lrb~i>im!%I>w#LdC-U6#u*lji z|Df6x%%?$`d1kS!D^&xmS8n)4Qg)ovss++*DFk(LQeK##+tKB@+@;ovqngogv zReUddlAFN?wAxfqAL53~b%Sq`Cs#&LFw5g*y%B|vrbq%Hs$K-U6s26!@O-$*Ks!>M zpyNiUhPWu7%;d0Dj9DZdKd6P2G?mhb#z74Htf))=LZCB*bcN`OQVD{?EM;Xr=qu#g zIT<3rCP4h<{zdk?3GC@bl$I{^CK$B)p!udHsWU}D1|$0+Df^AN#(P{er5sxoF;UdQ z&07f^fC_utEKJ-2W5Z=xjUj#Ij#5{hv z$+1-<%l-MoisI(M2%b=F|H=?mC6sGapN^X^-Oov^lc2XhQf7sh-!(=oQmwcD(M90> zdwzOiQO1_$86sPspCT1MShyeX z2r<&DYA9rf21n04V|OjlXpRQ^2-Z#HJ?T6MNYBjqG$dbhOuRxF(*xFoQ*JX8Sr(Wv zW7{^D@<_+4tY}RR3!DH~a6q`WBj8Cn+8v`#^$&8f&;qh+(i*mx9q>;xFFz$##%psH zLz|jEHd=&ZKFGh7u=+#0WXz|FTSn~#IXIj`3VpUhU5>CzB$d}%HX>(&rmcdXX!Tg#8p8v3MSUoB7D9Zm}F+s*n)h; zcL^}xq(2`fRJKS}Bz*X|1cZ=XS~G-i`IK4!pmoV(zIxuQeDQI8*u3>*-N$&I->;ad zBZ}i>E)t02c$+u(+j{^C>A)>wib+MFez0whSZ+AwU<5INub%)+4A=~(vHHBeqXVr1 zGPv{%HDKc=V;RX_EuK&$%t>1%$tNLY?voPq&l$-#A#V{@kZuEsS9~2G)#oY`FH3ey zUkD6NRyy-bu|@|+Zntvt7L}ar{$Oa86sj@Ti_)^5y4E8C3%=49^^VONQb&p3x0`b` z@a|lE)aIkI^-O+JEJ!teXu&i)X=|&Kh%4#%j9|dAg~?pOi(#_SDQ`ao6)iAxWBiLH zNx2e3DG9xlCb_ixJkt|CZb?()`K{VP`Dz+iu^A%V09r=Mh(J&y3P+mbbgK~4TRHM> z-CODjFH~cA;8v~j?hJQcUV5y$sCoqUhH#VcAB z&#E~e@oqy~Mc|{E2lVPGy$4HU&cieJy>Inno!v6NGeWH}g)a5Kl9%)1+Bo=oxc&q}xF2A~t zfziqpn8!O3K$y`pU$BDAF5flDHzS6$)W*V|wtM3uO&hIj+Z-0W9$>|M0v#Y3D8(%7+27qwA znxUHfj%-FUt?e<;Zk{>buRAcnWAFhoSqs-FKFiZ{$?>hCGBb#N9O*-p=RRNb#G6@l zo1t>>IRU^++or1wF1TepOXCVFnjsuDLDz6XZwNOSfl8z!?{qF4G00S?ntfN9V*_5e zcMmSa5vrP^{PDQIYS^7YJdRl$Y6K<<6g!SRbOr(PCP5G9pLC8SMSW?;6>&@3bsS>m`ce>}O%4kD50|i#NFJmJ-BCIE~rFq&50nVtLR%$l0hZ^Y$ zwe5=-0pb}#C~v>6IjbJI9N7dErm`)wv5$K4sxk6p|B2rzjZ-5i~ZxIYKH(# zX`;4l&W=YfFIYRv*SUUtRf(AYeJhaVQYXVx;-NR#K-|)S48nDHpERnxIFJ(O{3>ksxJMRgSRdE6{FlRxWSp_U)sT z%Iud~%adOHt7DOrlgv~O>LX2=1#+0e{bx_U-b<$j&^&+vNV3;kd^I)YR}CG_^Tt`@ zJreoXQp=Gs*kf2_1lUQ>co*2q&!o@C)fpdu5%lw5O$70sp$cMPV{jr~{OuvsGj94c z#Pb$w;qRZvQe*wc_BXL^%7l`6U@1qAPOWxn6+JSr2nMiW8SxM$i3HgCvq}?Km_HUJ zJ-T?!uIljkv4C`SKv6K>-cyZ~{Lj8x3wW`J>$k*>adYDFG+9f)o9tO17;l|ho_9aG zcN?ZhLe@arKsCeRar3>OF#UiSxA;4Sc5I@jp#M<1L_?DSxy||%e1(4vEyv{$2 z>A4&2sWS$i;5|r`QijF;P-15= zMg}Xf(^B-$w()N$72*#$1A1^Jzs76GR4ij>P~EQ_8Vn%_ITYZZRWEs3LQXW#_e?t` z8sV7lWJmRF(b_7PkL)sDLu9$@iiMomf6jpSE@@0ubeHnB0ROiN0BanroP&S7hU6dy z7K!y9S_z%V2;XzkS&%imCXI=H3VVmHrZaFvdmMt4c?-$%A-&UuZpSJz0yM&NtPzhp zi7ji=bg}Gr5z10dRh+e8g55sgi*a*Ki=o14XU3tc;a41ja0r4xJ!&g2> zvmBLQj->)-N*hz7XRMyVZ!_MC3L~_nWkwfrIwL`|@>QdVr)cU*Lk#FM!+VTQ^_$aS z(7t%-7(`*SSAVi6lfvT|ktY-Q?r|UC;Bvs=Uj0lf!0~XtsN6r`&0hWIU*^h?FGQ9x z2GN!7a}Zw!eOxt<^Z}LgxXSQg*J3}6aC|?0{5Ik9$wwL5rq}5!*+1p0A5WjW?s)m& z)7NU^+WR{SJLaFCdDQ=5qLdJ0ndl51nMA+;e*EN|P8?kTNa%b2t>1AU2g4Wh99#iU zn(z1D-j{T=!U;ixLfpnF2IFy?-fzLoMLr4N`7}d2pFgC&Dd(X4keVY0AnfUcm=EO> zc#WLAG_iR`khjJWbbreybo@xNcDp&>A>?Q9R*lUw2H+=^2duYJZj6!GMmH<0FdZlT z1z2V}27dxRz`hlJqo2ewx>4bu10R8Yky7Xn6yn)vM}=0VRq)B*0)t3ydCDTt?7%8t z%vuW_r3THi_78f|Q@q#8Jd(Fl5B-Ho>iNF8%7i}doOq^L$v5wv;l(MdMBcBJ@UVV? zNNkcRypF#4Nj6eaytPh;5m}A#NUQIwS^KK}%3zx~*)rgpNgnRQTu5`esW@($#2m8V@5hds5Pjmcp0+v_1f;s)LTMr8!rl7Bw z%IOmiNjc4T%udHQU~Nvn92wD>T$WYWVdBEV#WLV7JaKhAH{a#D{~{MyYuGty+QUxn z#)2}oXo8AvS&Q zm{>nivCu;^r&Ry_7|^T4*BABJ(?wDE$tb_XsBt65nTGKf6LxIuQqsAHYr-&|&5y3r zg-;ZaEv8`%#8i_)*6mmu^dzRs3a@nm1ylV`k>zZ>!X){xykRnW)Du_rJ zHVm7WGRLXpEP4=20V56%aA*6}INp-jx@H(z+yYK&Fum0dj%S116%eq&9?*|>!M#}~ zd4Q~JZ)!8JKfdqsu%hDw&4kQ}$4kGCqo{=gC~$wZM&=2Ap|V`~6#If+|98-=WlI)@ zB+-6}b9Eo2%+eQ6e6_k~V%e)r|9r;4RsiNsQ;DqW>K*? zaq#21nwCboumYmuIv&8j2UlxPLg{i)=uGOY{(&q5(OW}qM_NB*4bHMC3ab_C-5trL zuy|cDVLo0Xa*B9uKs~KSV^bEiW}j&J(+cC%_j}ledjZ_!F!@ z_01f)Kw@h*60Gl5O=&`68?rKwetC@1oXw%CKgY9tlN6vdkt?^0`0S#@TodBw3&TMt z;KwTA-rD;memp-;>j`>l&IYffgj9cXD7YcY)DV8+o9_G~mN*f;LqJ|(1}#nnPPLYV zZ!jB77Q#GI+{$o59jZT7OLDaqD7#Ylrn`?M;*u~h)M#&T^|KTH@SB4jab4GX7!^9b zvtoP(Wrr;n9X_>UxPj48vP)W)3^7zqYU7LDck?5TXE8G2|7smLAQ7jFb({6_&K$m) zyfL^1&Wy(i)`6DF$%F?3YpQSDYaT<^lMsPTEq zP-gL@3&ViwNI|eBzY)|V_^Q*I>(dnJ`|c#G{->Vf)#r(6hhI}fQ=4dajR?Ewxcb@& zi!npG=j8Ms*|-mVyX`s9SwYBiqBn3m@M=RovFQBmn(n2m{o4@{$lBAxqL0|!irCt6 z6bMBM(!UVw!;bQ;OeWwu;Gf>qk^d$jD#D$OaFlC>u7cfwqLFm+{{WymW7F&>y}5cS zgoG8s|Zy;UTciBS>7(0$auCsIl99H+d6`sagy5yd4su0C(D zFNYbSdl~5!rgnKowA;fFrluJ@)#2D%KJZ!DyT?8#JqO+vkRnZ@`?Ld)Q%&YbbAfy^ z{?soXCpL=Dtf$)V@u^>8lFxWAazq${7zy3ao7O&R^s*ux=tZTH+mpr{FVh5A-ng!o zk>JRrPaXFvE^ytL#$Vq~Oz=KOw2rqfG~plJFu~3Ac&yx;a9_M6yAkNNvcCO@qg_)5>1t@;d4*=$ z7k4d`dks7*^SDY#Rqfk4^_3fq!j>+Mw!}TP=(V@nBtD)eus8cSu7CZaJQW-eqQ_`L z`1OmD$Kivl$XzB0)SZSjOOPHc@kIxEsYhDDK_&Itbs8VV0%gz=w7>fz(MiD?g+s$7 ztCtQ7*J&?o8B6^KhtfYj*nT&{1k4MhiX@Q7DZ-o$bChj`{w;t$F4i8vd92!&)t0>^ z=**UuT6HjY-Dj$_ssk$Y2i!U&5e_+}n)|T0TqQg-6P#vAc1hs)NlzFSs2yL5p~@W2 zX^b#@%l+`U^24(cu~U=S{e+)pUchZyIdEvSiWp$-LW(V$YhX$ko_1U=g_ z<)M|MU2q{a*RDNNzxgw|E+e>C(n)!;_VCv3{R&Ok(A0H>Ci`?D;gVeeTFhk2d^jjw zWwIyWc$F`lD-?>{2Z(wX94x4IdylZI2l~#tG1`zUl&5++5bR{=dL(Z!2Iex}#RHkUNm%UYGko_oo zo!LL<`kK@sxjLRu%hyyC0!!1yE!Wp#p5bGj;mP2@92Ofg-tixHP;BwSkpig+)XllR z%D391o{qC$h3xLPyKlsx<(3Pqoe1qO zC|1%{e30kS;&)*}$nywsiyCQz3vte;gp!5R)YXJr{%98iE2SAY3ls?1_0;t?(?U4ZwT5f-@iG7wim}z-_Y}}CGt63mau&5Yjn=4EI@1zH~Arr zsAEN^OKb$=ZNl8oL|zY~I(rArlwGDD(un0F-h0gqvd%hIW23FpUJk7r2w?o1E@~#tJXpkHJg&1}-X?y(tQ1_NmQLs_lC<6@L-O@00O2Ys{ zcS=ilr+_Hk-JOH9(juVJB`qK#sURgCww`-@zV}<_taaA;bIzZ$7VDlJ*S_|(_dPT6 zJR)Nid_2i{@${L~ZccE>z4l9uPL*-b{%l?RUCAf+sx<}y74?MQqb2brP{CY$_(708 zhah*Wq1S-k<99)}Mv1!}KPb+&TP&j2#fEX6y)x8eaYLbO(V(Q@mbC5zIvt^^QABns ziJa{#<)pq{$tqh6sV*;2epqQsM)e>n&*8)pkOZKSIW)_d0JcJ=1`=Zfcl9|4KQft>q73{s8uv)O*4@(ZEt6(&IdqW72fVt+BV zSi0D3mMMZ;WBsFK=yeqrvUb@8{1s85Ci=zzI!h#pL`Mx5*$bfj?0tYUsB->ZJ`>7b zZ1em*h-vWI@@X_jHupDseVSaHGwo>=mkt8j|!Mw zLHtX-o&LvaKh?%e6=FQYB?>?A5s9rSKKFDvZvsC)HUA^o0X5%i^5@Sp_>l06OpvMW zz59B~^M*eb&spd581q{ux&iK&akphN>xH{lYjn!VH(ct6^0=l>X*o6d3(6UyI3yxDTI?ZCr;V2~GSuhhcxEn!uZ@0zvJ$vRd|T2#jAB%% zViWjFA(dlO34UtwuwFk7)8KrD$gtDK2+;ZkKCXI)F$7zPERf35)MW+pnA3y(=p?;m zqEk!0Il&y!@o1o2`Z??D3jXTRddg9Qr?|JuX`>9GWtPhT8l4#vvstTD}|;Q)3)YzWwRhN#^#!4Vm{(3Y{ww-t=@vf1;h-Ont|NUh6f49a!dU- zM>c%D0qND@&ud+exH^9SuUy|!zomOPz}*gAFt|xeC!M-zeFJ$j3{m5KM#Qam?R60O z8pP?SU|~tmS%~Br8djI+r~2{(d>Z2xkdJ9gU_^Y~to^9j@Emz?#MNgQg_j*T3;G~B zj>dy>c_kVu0ANo8lm{n^H6ZK$BmmQ;_zvhD z1Y;IoL6u!|^Py3}RzRBWiI+ya4KRMx@+2M}1LL9;rB#K_c-|;L2AHh^Sxb6hM?_1K z+=T}DHNwh`xuY2Cicbj)Uv|H18da^f3F!8GcdvWx=0SOVX8SPYPZdC7%z9ZHq&OW(fax(m>+-02$uX7seYZ|%DDvF53XtgiU(10v4F z=dd{&waAZ@yfI}5Z;#VvoJEK*r~IC=4frwg_>}$z7?_DJUJa${jQpi6Hlx5jR7!ir znGy#LJvA4V=N#axorI(Z7v< zJql*c4UVD>Xc+hBM;1MW`VUCnDnjHC-E1EYsEAke=T#vECV!|y`X_L+%D~p=?RgrtGfvYX1QO2EhCpC?x zH@~gIe5~W^kM7d#Sx5Evtc6sKf)7gi7m)eT)&%=@SB-q}x#3&4%>?rG3`;c=R62%A zu|;P7qX*A2qw09AgK-c&-DpMJ18bh13o3?PITY5~vb}-z^{6jimzqJ_p?Qc2D2sjJ zT-|x2nq1=eWcVc!462J)VWNGH`Tc*SsGc;Jgm#+=q%ZH2J2Bq76Xe28*H9W`{=f3B zM|XuT9h?{qldDE?*;Wje{f7AD;cZteKe>;3rUzPRtu@2nXh}RmG!J?{B&e?Z6;@0#pMA&CA(o$(ofm+S(hW%%FtWB6N6Uc`b}a%^aKk_ zo*en1rkuNUvmOj8wke@m$Dm-1@_D1YQb`Q@UZc5YvvYclLwV+Jz-|sUTTMlOjIE9$ z6tLp;h`jp;?Wu453o|1pM$;1i=~1TzL>eDp6$SecGz)G|Z_*U6aIXU$Ym32Z?uyg( zO1Gc@*2~UM)0;FFYs3SCESv|Pr6x4hG%k{i)Z7D54r@L=YimZ+e6S3L6_=*4p9?q^ zLC@WanZV^K*|o4-wK71JZ-%z&6iJxWm85pj5XoVL zW?^oNVf(TDWBa!zJ~U6O{J^|bG2ORUXT}3m<)XhEZSghIF2Jcp`4yZxQm9kC_J_MI zz8zg1Z1RV_a} z9V~wNb^~ABIZwU+k%YPdhz&Cm9iAoxeuaD93jc!uTe&y9s`ujC2AjsA<#`HR-zeBT7CQ5!p?Qx-(^|I`!^_Ru>E88D}MNax72 z!QBrk$snSb1~m5?>{AEZ)CN|b<+S1g#jx6nX@=`;vGP$>Gph8w7-gSeG_=)Xr(27bsa_o>Mysj5J zx9sf(#-(ag5AZDnZc#O56##L|`nZr7@Ti@>1YUwAIEeID{Tu@0`Mk3dz=eZmCF*S< zG#e}c1(>i#@^kaAfkA~Vi|WOqwgFVn47Oyz%?v37g4Xy3?|=-k0#qVlIDjB-OpzNh##bD2-Bom%4&YGdx@o4dDT?&Im>$PL+{3xL;RZg z->$jd-HDHUKi*i^Wf$0UqjtwEWYM7~tTEh_ew^3@03Y}rHJq4PI#?64#i)7FXwS-- zoJGa2r3Bsz z#Rv_~>;~3+%dngTQ&QQ^BP)wx=g(qq*IK_ziUWWGPGe2G?{8pnN-$NIFUK-2hHqgI zg|Si?pQOp1Ma6!}Qp!BfLT3NU0v}PV?xjwF%tsQj<29RH|6~?=(Jl~`#8Ji3K(EPV zd=KaI2L<^F0)8yrsk34 z$63%};9KG=!|je$=D`>3-D@!{YAqiS*wRRUf8a_WkyaibITYdrOgYzHCaf{w$)mix z#$gNoQv7cTAqlxCAm_hSpr@-Vfpk8o8NS4DJE^Lw6xtf7-)K0Wr@2>Y_RtLg`73#6 z)KAo9RpS@FfwK6zVYnTs;k{aUyGo&ccnbrhcLXp?FZfe6NV*X+(%x^K= z*P-!roI+&1FpPPxyE=D37jKO#4Q7p`%3Lul@G?W@Xc*_TP_y1}SqP|E2&j~p0rE>% zpb53>I@e!fSfp?Cz;xJwpca`JMMfMks5iEW=5LisVs9AVJdFTyG?0HJXGvir7LxX^?Y+B^|0vh}z{! zN~SBM%Nc!enRFG`ayRPWZn0?wSYRjeJNrZSk$Fuz^r_AYLk(o3#!5<7FjzG60gy`N zy!fD9Obl8PYhv(LHC0|UhGTeL~A)g$V1-vpt#zneCv24pl?riBv0+_<# z9T@tguox34Ebp|66464}oVrV)!(E>>h~ju-K&{D=EkmL7r6NAEU5=hikPl4lh(j_@ z<(EZN?Swc@Q6azN#I$jZ6`?S5#pj;}X&10OAWHWQ5M_;XS_C%X!k7abZ(3kFo}%L5 zxh2V$20V3?=RN`M#JA`P9r_$mjvuPP@k{3H1jzVmzXa8*SZ{~fz#RP$gA&o5O1{p4 z)=N~K1^ixm)~ig{)a9J>c`EJcIUtgSy+!lkFx)&IVu6DZ=n9B~s&`?AZi__Q#@v%% zUGe2yUtlrQ8{6{HWzh}f^{UgvxFH>Xc0!AP=(($hY3pE?Rq{1y+^{EW#+JFhpoU2< z_!CX1obO2HY)iN--oWDPsr4CLQC0|)$5CB*U%^5vn;S=u_w%pnKgWWvoqsZ4;+Hb6G8*&v3J4(Z>ZI64h{SSi__AXo>1GPZ@5 z8p7AJ^HlK26Nn2g$rPuUE>0(@9IFKQ#1&=M^Am_uM>tS-QN8O|y^FgF+E24E)?kCs zK`U@(hEZl2Dn3Uipt=_Yyu>_If|5zhDs8c|4{pA(=#5tg;w9NcCbS^4d=EH3;A>&V zF0S|za2{dP@J?ucAr%v0(xKtU7p#t$48}@<4bRHM19n+buK(oehVq8yCIROZccFII_cB<4A)5yh-GM1~7SK zmWF;#8a3-47oC9OvH?&rgFHitkUwassWb)`l7;sSYz;dQltw3-Q=-=ZPljEboq^qn zy^CFz-P4ee>=Bu=A?BjJD_5N>zO3sDbc(!@Ty~H8v@BURFMYs~Z^4gLLikR^8UtmH zVd4n8kRottB#f1O+pH9bk)$drbS^Q~#9>k#M^&zd1*cc(mu%vjrNayi2aC-EX`G6^ zLTnmY&Z&!hwZyY&Fx@nsX`Dqzcp9e~k2gF|+eJ0c8PiRKSv7|hJV@j!NQ*V`#Ck0~ z33M~nJ(2?+D9?1Q7Xxg?iGWXah8@)VEI!PNqSH=qR76jxQ_XW+Q0+`XWW1!qLpAHv zuv7(PbnFEa??~}jT?~sBYRwf`r4hSH$hY6E8Cr(V3JdOT=+a zr}0eOpuEB#67L0Rvue$^*ge^4*(5DHCl>1qSHc|Kj1kN#4N+a4P`eZqkU`{s^}^3B zG){|)kEl1ti58$#djhtylJ=f-bZMQNTIi!D<-eKT@1VFzkrP#9xVYH$fX>t+!E_bP z>o>%TpCn)X2?+S$au3`a0&o5QR{BW&L`1BS&oCmhj7O{y^oksquF*{6NyS;TwVrU! zqcdT$U&oh1FEXe#_+oZlzgQm|z`a;(IF>?4Fkjij>b_3PmGSEsN5C8^nN031_*F{@GLqXFqV>e?Rk6^$=D*bj>HBW6b z=>TnI0Xaa|e4V&h-`A2wXF^iTA3}w2bN6S{tX>lTg%r6URr3&wX<6QjAkS;&Mp|oN$8_zwSU*D?Cgx`RIO7R80}|&KVmI~| zY7PEoJ&m9@)!r#~FMYYZ zuXg$=5cS>k@6dIg@t{KVgvU|A59Z>}4ZL@)@VYyA_~UN|JSCo@Su@JU{{(1HuKsU6 zP&(N4EBZmz)$lp2bAv(%`e~*iX1nrSKZtc_^2+`k?5B7f*=mDDxvtW>*@G{94KfHV z`GS}S+;bID+nadcsx)}A8#oqF8CBn3HiX+Xi@&xWNJOWH2_~MhJxs~@`RCjRO43Ss z>=8ZmK%J62(DMCpl!Q-pFZWGRVfE&m72#|%9w){o$k8jY`fsKjRkvvfBZAH5ZH=v+ zUSdu7;G);u&>>YuKb~ju$O&HBkU`aCU(JDNXWE62EIVGJd1;8C{hrFJ=T=yFYNS3d zSGKFSET5ufvAs@i6md-VQmTKxavW7{{rT{DjErZ7!lq*gg3q0 z(3H^A=TO=yeqg)d(E^*X&8Ym?*MN~ibi*5uwK_h$Wl*&r+k(^@6+MR}1y+?KlWXj` zT>vp+K#LD63TY}B)WcnnJPN8Q&uLP#nlts$Xx-E{k;{l+XkKiTJ|&Xk3a|-O^2%c! z=l>J^W5bskCU~fzSlON%0Sc+zs6YtXDs0}9XTX%0i#f(XpcZpa(f~DptD7v05yn+< zjM8AA^HIY%*NsN+J<6k|xO(Z0C#rHMq-9X;ujpc5)kM;ew07mkb^aHf& z)f*ZJMJ_TY&{7sU@EK>IHunlyYrv3~QnSLHne{YBUWg~jwV(!#0ufstcn(ns))g4$ zH^?Qswna}FWY!qvN&9|hfQOGPbb~WljNImKFZi&8^EFY=$tQQK)P8>(eLDc9!U##C z1&`Fj!D%?laLCic1%p>&tghROkft1U&Lkaw`k#?pX?q5*jm?aGhE4XUzU2sU>S9ig zZl2gD|H_&D>Ol&ul##uTs0EeE4RK=x@+ISrflpsRiFz&$gb&zD&A+dGS zp7RA|rz;c(>4rKUfO(kgk<5^h70}sV?9k7_tE`4qpT_uF)*4`1LLI@og|{zuMo~>a z2aDIa>{)PYUDw@q^@UA}kUlfRcftGUky;CzWW{iNx%D@i;f}Yc@RL`fG8@e>^Y7-G zPRMdpa$79cweu3xoWb=*(O4-Tm-B|+9 z)b!a94?MM4+5O;FB-_Ky0Kjt0MlI77Cpy44MbG_E7ZvG|3YFZdXU*k)jMl-9BGpO# z&{kdUR6BcOr#0^%BMB5@STg@CTN}y?kF(SMrHoMer zR(rG$*d+pT-Zhm18C@GM2C96UVP)ZSQeYVSfX|M9fJ}?i_3eQE9&(pH7ZlpZ9EEM# z+(pXW%8bBHq>fYsK!=E#`w|M74LTRkX!8S#@Qhw#(CCeeP}GflwaQF?3IG8})L>7( zirk{c==?Vr4|z;B@e9z)qO_fXQ4afmR4g#u($APj-4{drQ*RA-ti61d8>b#Rd*bj% z<~MBraVk;Bw}B$bem0u38@AVr<-q$Zg^&`EDElM8T_?5maob9HVe3$RcWscd=JjG0 zDTdnPTHb1=^uL;_EC*-Tb?0FYuNO-jI&!R6iUH%F@TVYkZ)X2-N~(hmQ$i+<832*Y zM^#^`W3}i|(Xolo`)rKF4K73ZiCTIL#jBQ|6DrXA&L4e9ib-jkla#Jv*kLsUZoKI@ z2dmF#X~ zu~hM_<>v(HEj?RAR{-nx`BdjO!%twTzjbw3Ts?{|KWyJAPYI)Fm+t9TAN9l%xae=C|ptsXeUau`35YLH#-j{XI0V zrBc6A@|Th0cQey*YK7e2&SERB!b zrK*-OSyOra251?sa=wp&w(c=^T!R$x*_ymL{K|nvY>IB{kJ${?fD<)1IfKXY27KN$ zp1&u)&EdH1YNvE%d=e3Q=$F6K_c=>xe+Hkt`-DY z2EQqyS=o%^l@n~@e{aFhPt?EFiC;H$2$AkdokEd zlQrNK-YeuVBsr)9CuJ+8AKf2RK5i{w+Z<$x5br~uzR@1!$^3mc^MkOPZJxS0hsv1n z(=#kSvIZP60sz5%J(fmDOV=i5>zewG<#hqY#Ku5EN$)z0erCg4s;_0VfKuI=NB}BF z-^1>`t^8kbAoE^L2s)GZu^;fo?O)ROkQ}6FgS02Va9HlPPLleeMF=aPaw%NrR zBuaW$141kb=bx#bVoF{GVf{*eB;m`#lU9L`Dt&hs!Mo5GMJy52T9JJ1y{*&>v6y`Q zBuxc$CTU8eqq`?&kMRs-Kc9A^+w%6|iGiXuw5O;3sRXV5_UrVuy~F?= zClo2X2@Pf+rv)aWRC@K7JN%p2Zf3)i8e0gPVZdGha^IJ70teM`lPnM@78rU?1<86T zCBpzT(!mox{Z|1?L_uDn71Bou0{wquVseVfh6@-jhv|C=-VAztkUS!%*%)w+%NrOw z#Rai$sc*Y&Q_AJ(Ms%G+xG!=J(0mtvu<`2|r-U!<{M4mG z2&62)cO(pWw^7g4p%rN6Z$qlm*0I87r$O~>p;}D{q@u$_i3!9s$D#W;T$K9)*x-I+ ze82R9ssvw<2;YW(WzX3yqK^6PQ z6jg1aP-mE~YkVjGY+<3!hGEp%k*N}YE?h9dJ=fzSm}yY(y?K|^u8=725>NCA!R2=- zEo;08IGO*QRq?3E5u~%1=FKjJb3YWpGIyW3MgY!t?_b6eVl6z@HiY}Eb?#ZFLAFr9 zy9w?|E?D{&?=FSYN2tp-;WXW>A{D_dsqKJNxFjdq_>$-`NR>wO;bh)z8Zbi?Ge`02 z`m$lY#iP9e5_qImB@d)z&&XaWs#-Gq@;BRK8B6I#iGWG#-e=;TnRoyimCug>6$+ef z^cmo%s-U!2gnO5GB18wE$XDlwxG_qsW23Kyua%#vf48rx-<{nf*t0GPBF~gtJ=e%uJNf^7^C1!Oe>9#0FT%3 zBP#-@EG1EJR?~?vqrYhwwR^K2i2O)eCOlR&82YSo4w<}=Ekw3BD}zDH9iN&F`SL~9 zFwu2Z`;#z1E9ioIRiIq5vKkU2o2#q}T1DYNE4D>!bZuwV(}U8bboH>`gEG|9x&igH z&IGj+GS%whv|k7utLa1&33tJ{4Gkm8$)&;s<|Chm`p7X&mKqM_=$L4S#GJgEX!7)h zL5;cZV^RY}b9MNo>PLh59x1k&9%vF-(ydO#A6N0xMXfBcjG(Ox#1y*Cv@Z!9!6_Jj zDbP;P0TLc5cFV-=T&4tvAyTxgSeL+hiy@!19K*3qwlX|Q-h_pKlp~G?bF1ELy8uc@ zGc3VMUKXM-09>4vilGGvi`jMq=~kCmdfO6-Zu*HbGtnrCde8F!l!CUoaSkE_hUZK?A{OG|$qi1b{${D_f?kVxTEn0G2*zm`TRUO&ExX4a_YPJVk9U-`K!KM9 z`HzvErFYqZRl$Hn?j8XV$;&QMm1h&0u_|S6_#{ou9$;Ql#F0MC$^ID0CITzLal}z4 zrOCOAyDR90(A|-ZIH^y0i1!5j!7p8ec9jFV1>0w8hvO;Mx0n|9R+;HU~xVqldOzd-w$K z{~wL$Jv(1BD=KPe+~EH^W9aq&eVsf$caw)|u#Ud4RO*i<3YIEg$U1tqWrE6VZ zTrikj_Dp2B6S-ZpTI9wiqKuqIN3pbMIFLpLH3iQ&l)h1FoOz-ksoCC z?9Q5%nLBJsW{96=1O{8@YGucEvp21~XP#J94vc>>Z6I=FBdASpovU86U2L7Jz{!D) zg4N-;o_%Az<@&E8FZMd*7pYKODmaPAC2@X%$9GXnYb2=3Qq+mCg%&KPuokp7r2mbU zMo$%qvA5Z|18hzqj+$JbSTRuHjutM4Pkr`{Eg1$>?1!!LCmT&MU_5hVoBP+)Ru|wLX@}`FB`E)R zc6CIJAn5Pa8B=JrWLk9M^KZNe)z{%YpV&zgexJTc%~Vs^f9rb07IO7ljg~n%=1c)C z@#A+&(&kGQQe!F8#GmrFhhyq&Q+%x_KiA&TGN&4s{oQwGaEunY-(R|2Eum2M#4j5s zRY5@sFcRhnM4!$|PGY)6dM*9BwHs4sO&J`%NEcD0wN@nl<*A&Ssk;BQRX{|Mevnu1 zRwuKX4?OAZ|AwQ1Vz{DpD4<$|WNv={S(BQnQisji4dSnI2Xk{fObtkme>Z_jx={Ej z;rmmZ4BJxT!)DM+bz9iEryFCEkA^;?RjXkZkYA_|>e#7P!Pg0Le97xUglZIBQ$4o~ zb_gks29$^a#d1*Tqma4>W_x?}R`oK9q=*l3<79OCm6kc3guHQ;kwI>OOxO6B$` zAETnn=S`^si`hnsY#a5+oD#^KV%t>S&GqV#PUVapim4@u3@3>UcziA6OdNi7gIP zz+zTfPVJ5LLowCdjs8P171|3xyCN@&Tp;;7255azrQXOEh4+iDDFl_Ph0n`Djhy!j z@SP!Lw-$1NCL;qVD~vG@gGIwSi)=J1m)P?3QsC2jzC32|p|N@YLq@&V0T z9=K>!3r81Mr;$Zf(sEkVfta^GGcrkIv4YSX^grP=^WrqK{z~|eodrzxL5PN+Ob>M&*0-uRnNa)Xr?yh_)GX~Ix%iCC-l=+ z5vlmUGYVqzxLodg7U{dTP$|+sUmZZk^4A5xjZQkOqdXkWz#P2{z?q?d0y11W;x2O~ zx5mK3uUN$$e`U+FOKbFGHn5T1WB(zC#3V7nD$bEr;Ymw-I|v@c z`%4oyzd4M3$28Z=M+HE64!~=UHFx}?-q0Fr#S{t<@&>KVum#5`=|KtnBGvV z0WIc>tI}Vj)fBi7AMSuZP6znt2jjew>S+H)t2IdaWFow7xCk$CrhoX&{_lMkF(Cnz z_P%{UF=kjX{XWPaQ!tN1jqBLEc<1l%8o%`E1o$DZFkiSnDUD_Cyv-^PRGDm zuS;DHVvG-j8OnYnHjqC*K+*n2sK%cB;JN#olKxS0+G`b+v-prBHjw*pZS3_gPPYs4 z!t(NGOR66Gpt6*y6qrUR^Svga1((bXDZ_)GuMO_}&FH%!{fR#K@(IJ)k{a(`pfVzY)$6Qd{*Y{!vhNO`Y6vRK)Rj%4-A0*D9)^((L0oNL^eR&|OOf$njSQ!8-$E zm%Ua&l>J|{VE+l-s!!w2dR!iIMAiZ$XZPDF`w=_*>*}>J2rz3ea6Yy_TjHvEqV-z8 zj5s*th#aX)Yy%#$e#R^NACQx@j_u8Jq*m42Z}5Zv7^5$M7rIIRDHp%vs{2?EcqQfK z5&}_NHvQh#=)q=7?!7|z=s~>~F9LBBv&Zz89Ktn#Ike_gfdXf_DJG}_xQI6j9<=Qx z73ctZsGwJ$&PfO);&E%1pgQD9QcmaI&!ri`>cW|xeVWU)YDn+-) zpeKmribN}=kt$~Cxv2~)D(cnqv;xgQPmMA13ldTIoedq~I1%;`@Hb4_kbxx_Bz-%) z5;-7u;8m29PXEKAML?mMJ4jC`|XZ6&qEMEUd?$`o5X(t9>r{S7O5^k~eRv%)O zpPg_}Hj4e6Pzu7+#Z#UfwOHNJhG}tnbmtupu{yjQy~$<&^sd4Nd}2#Vwd(KCPX{{R zvTWw(alakRA(T`tE$uluwKz-Ut8hs;ZS!Bl-t$85-;ZKlu{&9}@Lbf>BObG%7%039 z)aWIHD524JS?DJle2UGiP=3c(3i1tauq~cp+aCi|bFbG9>@g6*5#2Q5QB&Bh5KnzLc$c*={8bAG zlnWEmAgc^Kq8js@vSnnxxWE>N+|!8O$0)Xpn!t-fNsJ?kfTBQmvGLNPhAKnGONrnv z$dsO|Q(L@3qO`TIQ)TlEC*GC-xI6nNP>!co4D%ji!Il?%ljIsX(07P5Wl}CF5zYVtPaq?diha9Ey4G;cJ0dx_* zRzW*M^(@U6_ynTHwXE!ElA^EmY1Ekhkw4Di(P%<(9^B6c69|@p(LR$$jf02XM<+(F z^~u`-6KThHAZQ-Em0)dE$M`HLf-XJV|K~1P71c3fWeO_LPYFQAn{QX3(lQ6IO!fei z9;R4*z5l3^O#n6Q1!`{jC^K=vVE{P%!AMsT2i$Mgd8I{=TA~$Ux#@D0omi zB{c_IBnLF9WuS$sBakQdn}QDX1jCJExg25q*TU^zoHiEZ1s=-JEn!)X7yXD#e^?4k z4V3vVnUI4-et}yq($+Nu z1fqoi4d!spN!9j~+}%LwnH8`Cm26+NX_zRW^XIwPh+ZbLC}0pJ#8#$ozuftRF;tc5 z0QZwEwSAyZ8owzd%Z*>P!_7d9t2p~%3_A|8v%x7nf;AUd$V7p8@;sG)9y)NIODzY3 zTM^^Jw;yOi>T~)FFoyK~o=Xm#SF$Qfi1;J-zI>0`fg9U9e?Wqm9IKsWX!bmVnscS_ z?|#sRI+151>6SgH1H~_!EyKQ|Ue9$8a7Z$dMZzf`GNuC19V?Eo#cZ^l`zI)m*34W= z<^dp+JulN`dC%}w7T5yVv6Y!$z(1y;O#cby!yeG?K*_|K(km?9{3$8~vG4-pMb1q2 zLp#6GytqvH7(-?!^941iYmj@KtmEtMh?EKZjlfHksQ>y$IU7DOWTIj{FuBCFx<##n zI3*yJ7!RFKm?4evWY?D9$k-SdSW*`6uG+V zH=F?Wd4K}xs9^44IT6M2aDbbH-?RuY3d7CUu>m^UDbVv$lS|rgU0z~jri=>r5gt;+zRCEI;Rb7Sf`b~^tI3h z;S|-oXd6qA`H(kK%^J7tW9p?jRSLUlxF+OR@SjwtV)Pp;w!3Ag$HFf+oF)32M+{Up zo{Wgy@~=BHI25Iw9t#O|wO5yHtT=@CPWzwuypX*+|CMugjj=oS#3Q7yc`TqqpFVqC zf$CHg#dM$jj0*t$JPQ^a5Uk#gJCjqbn%q@iw0oymmC9J{OeGv27H*z)kT%f=5FH)G zS+>cK6naXm>Yr<*=18&XmjwaJ=Rt*k@Lq~Xt(ZCQr zYE9!VtuSW2dX@cS1YpSUMko@TjP6UIhauna*6h|ID}=?RzstUxTI=3QswNM?cRLUc zsHKj>VjpPwtWN{pzL)WWlDt>g!rJHt%LPY{L(J2>kAen_VxNX}|I|2s zCrDCRc(hK#sTx=dH?r)VcDPAu*>DyITS~B0y)0eTh~72?#Zh9iOgI%aFFX`mZKjll zJ;u3TH4$I+jb^Pw@y2JtCMo_s3t21PV0&8jOfz~1gBT^|W)pVn=_lbG6Z9Wxw04ge zWO}B>au(utw>QQd*f1ss`%=d=BuwrKReZDbV=+&qEZqyEWJE`0Nt$OKhtQ^2o=Phl z*5hv0Xb0IkadU8sa(ltdVL%~moYT9neuW{v8KzJO$xu|YvM`83#U&06>b9G^O``uW z8mL}GtSiW$qDgP8*mLKNZAPr4p>{8<;igUtVh&(j)$S|rZFEuCt+r1@NeCLb>ZaE^ z8sewyhaR-@=*HbbER=u0RyIWHxi92N4n9Y?T1g0Qwqw%E4gS7JB5;kpocv~^AW0Mj zj!y8uMoC$fbYg#Ji?RRE8yQLQ-o^mBh?2l1(g7J)nw7#TR5E~{?Y|7z^uV0Y-BUCv zAV>y0|4@Q3hI=hT(C8x;fsC?SRG@6bS%ByKc4Gh=VDOQpBm3Y&AMJxWg^%8doutwC zAcwinX^tvnvJ+zL2c-a$IExy<8m%c9D8rfqcrJTw_6%Io*keE`+SfcjZ?fMl3OXEO zK9e^TW8kgP_fK+WA9URH`V6`ilh=QfVe{Va{wL60uH&RH688+XDyAxtmxiFpdyP|a z%XiKj15k%L5T=7j_;!~oQ~Mh@>N{)wv<4wk{UDDxY2>TU2(Y2BrgET=0lXMNe<~H2 z3QLqdFVto}Z^I4Muccw8FA^tv>cbMJnqw`N5t!DYSN?y^@>LJ$m+8@n?lAAL}%!DQ6tdeXrVeR?0ytdeCbS>dbBGpXX{BLM%6`>bx;L z^9~4L3ZIm5z4G4KeV~ufx7A-XEJcYFJW44EA?7`TZ(Mr z9#k8{6E$XCof_hup)=jnDrC>z&Ui5ecy-X!a&X*n{QSXL)T@KkOLk>p*Fv96`@VJY znruekm8Dvidb8j3pBGk}EaQ^Axy=$Ne1FJy zxwq%c(BC{T*34mxC;KAQ90de1hzaiSJ;7*i_o{a$*vZA1iyj4eh4&9}IyHK6%e)%sE($Sa%xqvCioH7z*Gm()kTss6DTf*yaV zx|@MZ5*x{fvjme?m> z#<1EfUGWgX8}nE2f|RL-sNT(+gfDuDJz*$L*WVJbF|~6vtTv=oN8DP;U{HH#!9V(8 zUL=v3>%7G9KcvV{mI^gbHI2fm24Y6S^!>TJV^o+wQel~HR(X-5KNV7EB1MTFpooN8 zAF2uRGVkpC+kpI?OxvxJDMm^2R(7COEA~nKEIXs3e*b6n`Vt~xz%e*3XI{}GuA>1 zxu-517u1zn?3K*<*Ar_0BaZy?1R9XDYpNfiN~shXCKWhE$bC3~H}Ej)K(Q&Y9j>9Q zDAYLHE#r4@;z@i*iV@jfw|ioNx?rd|eyc=9pT%h1%b@<&%#%+hTaC3nqTuW zlXH7^YcD0Ms(a}$IQiAshN3mm!`SzfO^`3^J=V*oxasN%;e`-h=`sznLrBr@Aa*Sz zp0azZM`m3xqpQZ2O=7Bh&4JPBjq0kcSvn@Q_GLOVsrBC< zsz=F|F?mg2jVeCN_I4FtR>gLw!_aq4D125n3W;&#zKT1~FDq(1fVdm@?IQt%MQo+;cTB)3?zY^W$cD zh_`=e273#$!{51)ddA#jfa6V5oFAN#_tAj44Q9m68E4ZlGMrgTkDmUjDQS+{R_(C>Ne?ZsZ*w{gGbyVuaN551&sxS@A-&Nt0Ns zt&=*YIll00Pj6h@Iw@~(+gr0Z>bY?qMoVzZa5Hmram&MuVVedE+#=k#xl*|lxtK~u zDg@vOGhi>fotu#xnnTR4trsc`i)Ew`&#q>7N2i{Fmp8;xaT0PDyypokQzSc#tkgpE z+V_{YX?~1}6G&NwA&ep`lM>@&^rRw1uvtH&O*rPTi=sJF($p+`2EQ>K!mB+w*Du>F*u>WT?vK{w^jE5*73f*$}SXP++ydQ7$&w$`>Oj?aP+(8QSV z4m6vFWMZnl0VTt8J2P120ceg~gN_?0Zdv9106<(}wDylrtuq2pJhukWTWFPgK4=aJ zw_m<_U-@=w4ka6z;xE4mBxKN3(deN@aCP|vz{{!uaS^W0F?xa>S8o*SN(X2O256x| zQ)UyeTM(7wN&%o~^sik~fSzRPgDs~T+=)h12uqo2;r5?U(o@tH`pYH$6GAfH1L~N` zrQEQaK^L2Z7NFa>ceL{DOaexftC%WiHHJY@PAd;cl%|7g!FD&}|Lu{ve)hz0-fdq9 z3!cf_`XW+2tpag6L z0tEG`U~AyZkJCdYMzJo_>IfeU7Ks^!kJ`gss8fbnCtWD}F;$H2=l>=^ufGPj0cOWv z$ZAV(16u|c&-?>*DI_jttuw){VwVx5XoQ2T3 z@jI7J9KB4_XAV)tp|gW4ZS0by*dW)R+Suh-z8y3BXo97?gQxfe3h=? zb)Au{q3$ufjJeecVDERXY7i$mP&_j-|vO%O_8g#QY2 zf2PnmguZF-lE2q?mywOAhv;E_^ao6$j!HW#eSIVST173TX#EUkWgIs#^NGGTPw;~l z`6`8RHm$*~iiA;ksuY+4+txjGQ659hqiE1KDH;^zB<~N9t(Ekw@1bE(;Wa8j{U#mS zLfSmq4O(4FO@Rky+%J`SsQl9-XB7BPj!$>Dvapc3Hmj82wj&RS4P6(Uuyj#OF0 z@1oe`cQi?SdEx(YQ6)5`kh+s!$b|dFj;+!Sejf#t8c*Qb5XU096syE2xr+u@%>ul* zdb(*;!e;!$CSYWJEF}C`%5^1HCwD|yOH|_V&C%JfLgKiJIVm6Rx7J>^joh2oBe*YH zT{h}B9;bb;)9VERG&MBU2;YfnQ>U`vbVO9>e?7FT6GO# zD^ZIKtfyn|cS@AjR98FFeu?Nrr%{f#y?UkCa5qzyVikJ4`=sxaym69tW{ z_*Te)uw?<|PLsfgg!_8W#@$#5Q*dT* z8eI|zr)E!l(MWJSsyxfW=!c_@*o^GXVj=WXX}PDfKgmU+7C*a%3Mpo5Uq!^scTfToa1{BOX-)^f({HL z<1ZxDc#PxjVPa-Z`IN%4vF&%XGlz;;;zX439AhP?Vc9fB?2^T$|B@8e!A=sh-;8!T zsf-?8xrf7E!G*zg;`owrmOdLj%<8;?z48c@%H5KS&h3oI-I6q7XX%yyR|;5!o~Zi; zio#xb1^$-;zTLlG4+JQ{zZ*m~!s`vq-4f-upYq8LoC1vFVt~;lo__ktcgaKGzZlaE zdY`)`u2?2#IOS8In$cdeUpfqGcx`)(*l~UnO!*W)oOP0zhD3hiR@F=0nBjZ!9ZW-< zRitwjC!%Oz9S6Jt&<}T^MCrW~pj@Bk5-HiobBw2$B*Y5^Kd0L~;BI|7rKR zlKPkAF8VU%Q?^~#fdjbrrf-cNMxqy}aO0U#kQM=*Y$(!|dN60$DEID9*el;B>dGQu zVhJO5fhX$L+L<36osAx@If9h;Kfkw#B}hb>z_KBm`X7W+1Ptv=JDR)2{vr-ArtSg8 zIRc3yolEC8!1qrrap{1)a#xn7tm=lf%HKqoDkTjGwcT4O$xUfPD$e4a= z1?`JsbDgUo5v4n9A|;=X9HW>`R6xrC{-sIW!4lS06#F)62_P4@1eOrqd*u97>1Yz) z(Sn@?OP9qxvn|1=$WK>k2)fyLOe#y2*t`AR9CG~d4cQ>+ENs=JxzJc8Tzws9z-&Bo zRH$1~4>IvMA>tE0i?+>b?V!fTd?=(&2_DOsZQIrsY`;7Th4Q7)5IsY{a(vqrR9KQB z)K&uhM$BCX#vgCv#_`oCQW>IuS+qVw%kzh(^z*zOa~N~L3XC@#HNbD6{3XcUr|3*m ze@5^*bvQMA%uCg7Xst4-vRS8<;K`eF`C-ee(pQ9&$6L`cWO3XyGG`IA^2Ukk-(vcc zTD98B-6WqC;q63<&nm^ksi_!*alTQ`kR%AF%<*Ri1j264Co0DtAd^kl#U~dtp*yb3 z{LNO9%H{+jqa{P0aM4G+Lsa0m7gc%7+6adY6+pT0?onX&{dLJEG5JDW87s`(-TdjU z{qk_{g_3axE;3V$2a%tiuo@+t3CebqVsC|ZpC4(pZWv%)gwb-6F6?{t*;PM?5W zXfQ{-NDl~&*wvd`%ITdP`OryopdJ;pHlh{y73_)6a%>y^l#_1etzatIS4JdqCtSHNMoHyT-}9?kr;l)A2Xe*Ik$(~) zy~#>wBCTU%Vz)KMOnPDEo|kI;$T~F&1-pUFggw=yrq0uUdk0b$ufUtW`gH#lXV+Um zDaY?6;M{YFpHaMmouLG>6n{&WY8Kjt=LAHVridi}iL;v6Pv#D|2cKV9x#zp~0>&u) zZd!nZIRS_*ZTlOD<(deHe;E@1f?iUD1vUf9%}8_S6w;7KtAq6BUlA68`k8xF8rk4@ zs30$3-ijTQR)8ItCpUfW*W5Y#%P`s;VB5U6Ke#E$a2drNuS#6k`x_&bMWCUOdOtk?cH#*ATLaQK-2chorkGVW!ztF&iEBWC zKa?PJJ{pweStL&y1~h{25MRIV>{ia;c%rZQm$y-R2%bJyg*w zsg_0=kj#WS(sDK!yQLAG(R6s$HJhaQ{LAvMBm4>aB+9%-rm%JbRnS^a{4SQEEqzVm zNaAqf9!>?8FPSdqsyY43?WxrH6^bc}F!D>BWgMwQR7JyRJ-c6zY+qmVShVx1s1W|V zy?8tIBQ0_(rbdH9&Uuvd9X-ye-Srj$x>-_S=GHTMueTT6QKeSC=Rq9@Gd&F4twAY< zvp3=`YCL3 z?Q$7`PXM(-nIy=x0aczG(z{jBtDE)q+QZ1>$cDcK%DIW$^lFsMhQB`R^uJ2q4|?+_ zYvpiohP${|{`02fhp!-C2zM``@?h%hS?B;zX`Qh6wYCX1OG>_RK3c(MJ4=(60Nic# zVtQHcWzTZfg5egjIBOoHaj{XK)X&=}KsHj5|OjLLrJJjK%Dtf%97W%C1B( z>}SUo`)u*b()8zR=bV4rk1a+N0{3&y@K`v;?ZaffwE#rw=<{5%Us=}~{IY>NV z%`nde&k<`!oL@nnWqkV|IZP|u3C%J4pS7HP2ERtMh&159AC|j&fzW#FVdm#o&YBeg z5WVQeXCfSD@=%2X4vBJ1=ZQXOJg6EEIt{!^dAU!<;~2M_#KRAa<7O{_RD=eA8c^vX z3?=}O?xC}?Z)io@-8(E%kC2%2bxlx$-vo?gL0Ng8d0Ym`eh(O~8iaBa2q6}l03l3XAYXA@9 zB8ZUENVn1%Sq9PxVDS}pV#^DJCJ)0Dz^FH}4}1zYSKCv;|AQNlGL3Q*i1iFSLH_>(BA*i=jRCfg_u>FocLUR?yd+xyZ=fYI|AE2K0LZh;z$lJg6y>aBjvA@* zzUpVvuL;EFBD{xzpzf+;LWphC2U_W%mq5QOSYQB|c%%w|S7+{jY?afEcPYPI;8&;Tayo1lY!?C_@FX8 z_%1g}K(s*nqX(P*mjhvzJy118JX?xi3{Yl13ua>ge;_Is#wra=qEsEe1d@#Sir#}W zM;K<-hR|f&t_2t^4w?;`qxzz1h6$lnKvwZiC7P`gbpgmo<~aswA}-iEOb+t}=D$V# zw-Liol;-3-q%cZh+7-qmQl4nHx&kCwL+$r*{Np_Bl2YkO1P15oT zi@+JeDMv&9QX%EFV9C6WHLSxFT-R+1#QO=8*l}^^rp1Wd+WzglJq|58eLs=t2&};BaWgFzkOZ!T{gW6m} zmvQ_<5ueJ-1NX(zN<{`Z5G=d&mV|6fr6ID_5nbWd14Jlsp|)tYh;Twsa#AM`;d6Z) z4@jZYhb^Kc!zzAT%XjvYiTnVWQ}O&W6TN3{x7}#ZY^mpQ!+H_Xj~d9Wk5%(Ej%T;=)YD0#2Xt ziy^Vj2*Y|&bH&A^Js`e$C{vz*&CVOhSj*tipxgwph=-45ZQj6AK;L>EHsv8k|~G~0o5j%^Fp8U--f9pr<| z*+O+t&fi|ZIfuuBM?(!$LMeid099xBU)k!-7QnObJ3yS+MTz{RK9ukZ*qrK+p$E-4 z6#qAtC8ef@(vA?{E-WpU(EkX5GMP;oGhG!t>$?TIpY{ODUw??rVV#lWJ*~nSPXpJ< z0j$wwU+n*Dq5jhsSiD46XI9Jtpkt;1-#Q_#du5r;06d<7^{<1}ym6%@J7EqWRh@Id z+bC3yFp!yCRz-FdFqG~A7!Ciyej9(rMQI`c zmtz8cEQLeqHXcF_3+EPW1N!j~=q3PXK<-f`iIN_oJd}YiJvEu{f9keRM)*IEK=pn^WA^47Y2Ap#Q$P52K1{*)1 zuT%;Q9M*vQVB9I|Z>JyRNAH!?a6p!nMFr+!TQ4N-MB00T zmX&&*Z(@<0#&^{F9-L%|ReIz4ri-{0J_mg?P8j3(m8RC?#$D*ZJE!o)v#Z0?S9;B8 zjy(+1MveLHg{Q)f0p@L>64BNM<$$)Yek|qSggFcLC2457`y3scKc>LF5yc`{s=!r@x8l7G%wb=MZbeje z_n&7Uk^`i{}XprTJ4VPHzZ>qEW&2ilXFfBT3 z%?_@^D8r{J(0j@%B@s1_LGgm4y=KqPmx`gQ<+wE9kCFC&X*$GagG zPY+bCWmG;QB2Pey#J>H3lQ&%J1E~F`tWxU{a3F-7Q3xh){Km-}fj+2vhTG=?2YU2S zqBkFK^2V+KgRxx-qz|aki*XLn;`0VEL|kI}K0;CM&jnqCu22ZZoiqYI%6}#1jdlR) zBW%z%BWS-m^C%$w#XI#7rRWQVV8X6*9?$7Sp@Pq_?d)U269EUJ2RI{xnAwH^sz{1c zO&>`Chez)KgGU|?VV}@j=2GAS4wOheU|07u_xpq~0#rv)8it*QPpM$!(6^?*StD*N z4&=WNy4k3;(2g}42>9s!^Kryg#(^{*tR{&Kf4?B8CgixtO%m&I15PRV(Nn#6MUJz81Z$agBz$KVx50a5h5=Kp7 zIzHO|n+OTKRWVDzKo7G~S7;|!XP1OgQCGMJ5`#-~6YST*Gs&H^DwAK_jGo|c9KrG5po901=hoO^QllQ(K zZ|OMhVI;w^Sin-LaBxh5*@yb89sGB|TB>Ma(@G-h56-I{MW_l3Fi~zi_;`DCXL{Rb zCdFvPPBfHtdsKfZNtRP-(U>lAS%0;t<~MooH3od0#4?>~B`h?ps4KJ>eywVnJ3GWr z6)e3%i^jDm+s@T^-e)FW@@~VTF{9M^9-n~F&!REEPksbgD=kA-I{<#GP!Vl_uiS8E z5Q&jpaJO!@pG7_A)q)((DJ!RS(~5>g+0NV}PH)4n)vu^IC7V_>9lpcruNJ%>0??`f znorPyu!e`e078RXS^-yqJ~Mz|{J&vr4XJNSuo(~1^+8FTn_FSr{(3n{8K{Q4^44adFLf(bx`|DQ{R7}4?)kN|vFgMV`3 z7lFiCmF(Y)002~E0NDrNasLO8QjNX-At(QWBW?hq3zaGZ1RFD8h+KvQoTe33-4C2s z0BvR2eDKcy`rLE_(4C`&JS1rPe(6ncx27yWPhJ^7rW*S3mX_llpX48oqZ-lw=KX&Y zzzYI2%^QLqHRhTXD}8;X*S;IvZJO=(s4*WVCoTj`5ZBTvD_Y%S^S4I_lmmRl)F}^H zMz*|RyZ1_aQVA$N)l~XgB_`{U31X4+U(XEgw&ISLdB|!CEFi1^Ba!M9$Pe*zm$V0X z8{_w0g%A8AQz!JD{;dLl4?-mg_@yIcegH8@pb0G=V!T>tZ5zKge$<%eVJ|E8iTIy9 z)1q8|YLzjQgl`%H;9ki1RHdw_j03@9DR6)@b;|#(BoJe?8Ho0O6EFhweN4hgO2yS8 zCg9sEUZgN(MJ@gVZigNPsp0LkS2 z+^c`fD<(At@K=R@yrt&2#{V~aWbpYoc2`?tJ!bN&PQ7?M;- z=X*S2LbZS3jRARMr2|0G?g;$T0|2Zjv$Fmo2ZHsZGF0BSIEf=ZunsC?^O3}n&f2hd zL-LApvp|2|x5>w5!rn1}&(}pXjfJP~uG^2z#Laq=)AL?!3%;syYFIPH^!3^>9?qQM zgu93sLYq}z#;B+-e#W7kWvX&wUjr8Stko9ugo*|To~DH!?R0o$&aiG2s;Dn?fTt*c zh4=_I%=|GzJ)!#tWvS4qh(g?{tw&+Zf*QXhk!hf7a0k8zXSf;0%+U9wtF+!$(PhQk z@l9i@uZ%&q?hXHmj>k8Qsp=VD+PXC)eN5|a6@8-k|G!Ap@qdFR{};4o!+@%;;-$V@ zUBbLhcb%w#;&IJ;5~{lL^Z!;#Oi9^gz8XwN8%vcaag zhvpo9*faCD)NDXefv%E~kLni!j#m$R2K2CJIv@J~jVsWpJq0Z2{DTI341iU$OsE4QGoL1+gwz2Y#zona@)7Vy zg04;^>M%mIIlKdB>}*Q)fPxr73&RDm!iCiz!LN{%kcVcS@* zjDhm{C=ye)x-A7m9Erp9fQI6Mq&fUF7)`B zJqTK%#!`D3>-9O@r!I(rMiR~VmX`Pq&rDaR<6nds6lIv7vDj*?;eOs6Vz#RioO zG(1@&3^c+9j)xeT6do^R-=WvNCgQJm6ZWj%8;&(#AW@FerPu%ec0xvJIixA~*#ysu zi6l4;<*QK8+K5}auUZy~*KW9~GGy_Gon&|LBSKm{h@uFRC1b-}RJi-a(wbKWSFTQV zW@iQBSt0pRM^J0b`W9H#mgDF{FL|Xo#a7i_c2`(W{;@9fY2FhkmO&Ij5Tx$FJX*3y-r=mmD31 zUAel)fj(IuVh2IDs(_A?OR z)d+S0RGt|cZQDMWwmo9)D$0A8^6-0fO)#8 zK2uDurH{iqBPb0c>ZP@`8<<94yG6$p2~843UW6-PtP;*iS*8u}p#D}8i^5Nz^T1`3 zmoF7qdM>mH6<$oLd|ExB+Nn|d-Cv(Q-<9k8>Cr8WU=c}2rir%DJV;w4n(H3!DBZ8x zpD@50aX9OhZxo>)`$L6JrZMsu{U>fU3h{5HRc6&iew6BUIu+4fK48wKshvJR`?4xx zWzcaK=u+($pm*p|AIputk+sU@Eb*CpP&(=%Pp@)bC`uu>co?r=(PVsvJ&HexMQSR!*k{f4?yV!=YKeki!f| zgo_Q_*tTzoYZv{L$HPD&g|UVP*%pjTO4#tUE0g21jSV_VmjWEZSkVs4iQu7@OdjT? z`vcA4OsLwBXg;TB>7RwNwLOu=bffhz9Ai-f(53QH7_dHId{28moi9a!T+zZRAk+A^ z=w9tdh@s;sJ?wb$cKU5y}_|R1Ryr@ z)u(pPW}{)6xoYD|u~%9rm zU1nT0N0d&W+S(Nm4zC@Pa8-4#P>v;<S2@o$mEu&Eowatm&-r%45b;z3)c zm~!Ma`kwvduIrM&@u$el^d0wSUd6EpIT0)x<~@cLl|Q)`l}OsDeI=;PjS>!}PF0rf zjFk4s!i%SA{xhivYczv^7&-yIU(xOqgS!-Rnm50O1SBPu5-PHBxdVp+buLbnQg3Fa z&VS2Kq><89)0nxt9;~hRr@TjAvy_En%^Z>Wb@*NJen@#-HQD1O`PPZlc`}DPXYMTr z=lXl8-P^hbH`i!)T%*q~j%lws)*V>hsXV0=!9J%;ta1Lvx=k;vy>RKvPk0>UZhXO| z&5Hl*)>JviP2P%Di-I4!D`VErRrKRFyP~&a-PYP$!OB^hyQYcxy5F3h+cp&nZNv!i z4x_s^s#Q<-o2xGjOoE~)cMG>Rf}+8oD84)s&ydZ@JgWUOl2b4K_Q^Aw?+iE^yqaeL zG9%ZQU)tS+7JgO#?aYcu(e3_%ZU(tNd<4cJ7*Zhe{u^@wGIJp$&?a~xG!xytxKVw= zT1L(~SqvlK{7c<`SlisB*OwKqN`Fwc5|S6M^@)nbqqXm{o{ApBYwg$D=O@PwG3|=F zv^>KFkY$l!X{i8b3?(Hma%k6vrlKOVWY{ z?v9iG3xVcIl+^~_TbN=N>50Dxi@mrXN!KyQPP10%kLokcsQf!;j(tw$XKlhO38PCr z%kHq)8p1yg3Jm?q2Yqv2q&qiOv2Pak}QVq1TCe zQ}zt~IxigDi}nelefr-%wz9urCD*`y9Ehd#jBd7>b<&$YjL41XkCnq1l`z+qqUPE{ z%!Z`uhD#cBNt2Yw%a%JQZV!YhGY|Zs&}-+T{mWsv31MpU>))iBq|@+_qU4xV3+Db} zaM~`uoZ{6ZSZ*Pig^4@9Z$tUrtUV=tSp%l%^Gv9F*{=7 z!1GS>v!9@Xss3(9!$>$@5Oam5^1S=y8#XJdeZSgkfA>tu*0g~1)TI2@5pxaP&ko#k zaqj0x9p!Tcr3tDev>r8!^6Iu_Hh-Qi3wa2IIcqxJ|{uj0= zy1~C+eYC(bc+MdyF*(u_L6NT%^7oO1_`D|3wWY`=;RwzlLl-2bB&95f(=LO^VZYrW zTp~e*ik9gWLAXMdmm1p{bo2aXOP0wqGx{V2yv(xVoBCro>6MJSZXdkxm;YAMmIDjAaR}c5Ss77+OY^@qjcV#Q6bLVC*{nX(&+nYRTS;+ z#S9*_t70!i`^~##$Tys{F^{bQQ&9@#4n~F+_LWxh8KW&IN;HP!{`ui1LmUeOfVI*;5!Uf+; z1B&lkI(>s3w;~gsnoCC5$r^K%OKNtCf6w5*og=-42^pEiJu>}&#E#ty0{!L9%Olj+ zp=@3e+jIYw1M&^>w_h{La_h~}m9G~v^u;FMOL*HK9?$hC=&8AcY#Y;LfuMbL74D~t zix_*<{x~+=K@|j<#pR@x8dJoipa1d5>WzEHr4PA55mPLY+4lSLvAhLK9@bR$Gapmk zB^S{TODwC2;W_FxSi$2H63`0u!om=&o;S^m%O5B|?p8jL%Jxmu+x6hyJSJzH8{6wz zN^rj$ujMmg?4PHhdZm;oiRgMsR$7^o@d-WsHWiIU-jOBulHYOb1T#=`{dTxv!C;Jm zp4y@zh+$ig+o$NY%9q-tCUZgcmdBdUYNN*22W!)6{*IOw66Oekh3lwYRMMqZZTkjh z@VEKTCil}$H)8X41mwah7k?P-y)K?082ZF|(s`GVx$4?U&+vE@mCo1b#QD_WCUL>i zp>zSmj;=49%BquGLTw;YIR(RizmG+C|2Z9+c%w;95e&@@9(8a>(5TY=91%~=maY@9q*-TE_;&o!~9Indz>f_r=yr>NLc zA{@P29)pB_{5(4DM1{flE|Ot{BmHyQ22JRUJ-sEoWgfjk{E@AVn)PZE-KNqEL35g< zb%Gl=M*fJ;P4LEvrgeL6GF?D;Lr2{tCsE*5mXhtuoOTVJxA7*oHwL_)vS3O3-Xg1K zkuY#`68S4y`31wQ?@^D^Gzj!(aX77rTu#uXV6uMUPOd4%(d0GL&|L5<9=eNXu|ISN z=_@bI=<%~msnIhvgltZH3x{RV^zG-5NbK|BK6shhn(;5D73PDjg^ivFG(cn13^E9o zW7(ee59q9~v5iPZ?h8ErF|TW-`&hYxrG7Hm&bKxixYa=m?^*Ea4j3nKu0kA3;UxJ= z1%-|5>Pw8lF#GOD%d^FuK!FOUV^K|VVOcv?qzjR5CMQMbT^NIaq?-dh_Vj0r*@@F& zy#A-J`H8F4on3eLG9u~e`B!e$drg$}d_QRGgj_3+hcO9h7NjWMeLGSP;=K>EZ83d( zL&@=2?=QF3z89swO2td6olh1!r=qt)Qmq6NZ=OXoyE~nG^fNA$hb42cV++_Ubw_N196+xiw%@oYU~#&}sZMoB=jW>x#TS_hXc@GGcsJuuwCVMnN^$ zJ~Z8kN7a~IJv-j(tMgG*JMc&F+ztCz^+M&}j9R%>O{be$%(fS(EwDu^=oW`Jw_JXrca)wlTV0@LFB(F# z^jXBEwnLeXC9YPF*hF8n5gJM!L6uPCk6m>nGynOI73?uv41(6yul37f`*{8alTpg3 z&ji&x{Im7d*5|!C)Nm9_id}W|L`!!jYESlMn6Gm-(crMRBWZ7keKOho>bw)?Qn3wgbkNifxY#3bFwL7 z;mbWlHYtc{E-km9lAxav)?@o+w6(!9`)DTpAbvI|%h9K~XxSa7C|>#VNo_2P7?Tk* zi;=fMy}*uiT|Cd2738{(K${nj znc3c3mQ~4rvh24!8Kq;0`C`J+0&h13p7u<*W)) zr}JdHjLTMMjVwF$_0&_A=EgR*H}kH-J?CHUmg|G2=Go7QNvElU2&HB@BF=wZcxi2N z#;>jK?Ub7fE6N1JyABHjeX}yV7JneV3%P?vS%1$n`o1I;y zRE*{73!3%k^j~T7e~H&e|8e=T$W%D+_=-cv@Qb^*Gu@58er;mkiGBS+T`9?*k5{{X zwepM%Gn1f?b)LlEm;ToF*VNa( zto35=XY7PT7SD|%oTn%Mp^uLBqzBm;#vJr`AjhAW5!lGtCLO1k(NoPJ!;Iv@JOQq(?oqtGU z@fLoh{?&rR`bnnNb%65z$;znYioamNU)`nAkFg~s(jC4{E3@uM%AMU8Yt`wu53fidVS7iq$J~~ZYl6&TFO{feytzIOSeWbp2UE5;YS6O%wc|amM z@a1M@v2=_HFSf`h{4<}$z##JY?I>t$r&-AdFFrZ0P?LDAq4EY#Am&9JE&EZ{;vp7h z`_iRk7?s?F0eQ?6xBXqT;5Z;H%9wwRK!e-n(+_Ja?f4l4)^P&74d5T+|?z zgukamBgotzKe%dR2@&%(Jc|lLKV-;6bL1TYrw~K9u(aB6Nu?~Ri`uQ^etIrRAHBgU!b0M zqAT!mi{AZ0|M25vum{a9;?(r*wb5#DkS?|Grmja0eoDA0_{XmseyOg40t#L(ab)qh zvSc7JiVNx)wyv4RTARoI_VHiQnI=6y3t@faU;Kgk1F38`hZ`(Krk*%n*zkzQg@;Yz zL6hwbm+gXV3Wlh{d3BXkx)i^j3OdNzUr@vaN2cj9;l!%>%hT}oPYea{n?xojt8;$+ z8S=S5YoLnBr}>lWVX&&~unB_o{Wj{?Df^D!$pb58QbSt#T%?!@8jj8dm6=1SZ{?iH zB5U=ZD?xjY2nY15Dr5?>i2sN@=c_vJ-<@RNQT2gc+bRTH4b^y-@W38ilPAl;H2%CCC+75zHBHPS!JSlYOmzk9@{2X?jXK(w zt1@!{E#=sS!Uid0_Vf*xRk6%e(Xh*;g zVUEc^-4A#N?_fi*c0h^xth`TAtGuAf!m3k3GqpIXD+^Q9Wc!vHwIw zC05}pbe4af^yu6bGn&Bu3(G1dYh~lMNCn=|7WFJPvz^{}tJZp>f}c2}*HdEE2wejr+2^o<~T>ZaAK+D~u!uhoKc&Z6S&%n#UHr(IH6)RIuKF8Fhk5 zxx*j{k8Vej?yZOKTCDyURsQADEqTKJsGiv8W4!3`*x8lM`EAQpkkQSbhJei{QWgoc zDI+O@>th+;Y{srzcKnU@@424;$ri^~qc*HeW*r_+rKv_r#vE^$KEmYu zdT5`MDP*^q@rDcfT@6(*y*~lj%KN#c!7@6 zRsM$r#v_NsOtj%8w-J;3rGvPS3FOm}u_~4X1=5Z5!qhjR%uQfIpKwg<0kA(~Q;0wt z`;|*-ZoKecmE<=&j~1O`Is&KI`9X{!!ih)<<#)cnWR!JIqwLs>McM=Dl?I6esg%On zeW{cpd{295DMcfOL{9l;x@j$5Me{gxRM@IAGGQ_DL=*VPLu<}3ZmTC=H~AE>m!!^e ze;>=ob*(nKSj*wc^*vm+D@kXl|-R93>#+qCLGho6N0-i4@9<4k+Jw+>AKLU@HLxyy=#zs;cELg7fR@7fzhw)eflGRaq*lV#8%6)C*q5eaXCm=WKC;O7+5jJ7Ab}G2C)mtp|9a> zx)Yl$xKa-LS#Hc#22NXV?Ox8%<(U7hG!4&dQckxo@wed{XK{-f%_RUAGrj$(J~MoD z@+f5TotEm&MO>oaes0gkf=t*QQ&2gJY;n*}%dEd+%#mIFc|HQmh0#CpelvhS zcg7`1=WGAq*CP#bJ*7e(SYYfAxg8t$gFiLDBD1t<{-k!?jY@e4hV%>Sz2<_2qCmi7 zlaJy-oLg)thy6_oS4qIHzf0Sa_I$pl6%smW{LUt;__~X07>vAZXFB?{ZeE53Ph5r5 zT(C#O;B)8)Nf#eaO^Yzo(zPA1Goi5dC>aL2%dbW^T}QRL&He~wi9JWETxfq*S;FoRd}t#)g$ce z{`$>cr$dJq?fx@V4!uw02s_<2)b-_8oUi?ER;^?~;ZJTZdBw@S5AxDqyL~l6!$u{S zN(q20i~X7ExS}9@k5*(wMl}u-43)RKB3|%Vp{26?$+Y_E)5W4g_F8ZKmG<#irU_rS zA~~OeG}TWUgs0OfBVmKIry^pv_JF5F*KSGoJb?wJT}=6ysG#JNQxqga7`2CiF?#1?1dZcl4*8W6JhYtkpl5jxWH zQFt7KIdKLR%v%}F>Stg-%XRo%6LuA=mYp1By^jlR1?W;aN)c}KW1Nk!-^vo{m;<}% z$rNc6IES@~PQmAfH3w8P&tmoaWYdeN^fmPNrrrqKa?5IQf9n&_4^wC)F@0{;!ms}U zTV|~pkG{fc+W=WkO=m?MN^rR8Ifxx^!<{3KTJeeLD(ZllHIec-)i*Z-b|PS;`&nE8 zm-SYNc<{~mAa}&5#t|c>X|T7a*J}yx5(*aHX=~b~tTWJ$5)QlD$VDGvXS2Pt2z$M! z1Mj|mV--v89*{3%=MesE(zTDbEcNxyPoB7NLa)9rwpN_d(n2wAVA-hlPl3}>tZ+jg z$sBt5`;kewbK(Xqb*-4;b#>>^jmuwkg-+hlk(zIYFVSng3>|Tw&FFpl zY8cD$7+i^cgOunf**J4e8z0H+pVMTdV{0eBKOjZRkPKA1I0Xf`rr8CI+$G9zf7b*R z%2Z^ocJmno2GZWblqKHUZWzod;HiFTky`Jo3`sB=?OU^}i>Nh0Y z9cz`A^jzEW%{8VbTO`GANQ=!*U^W&1*A;e)(G}8(h(WaRR~g>~7Zhz9W?bS#fO|FU z(<38XUM1O6%;Ylkh6x~bs-(a ziKeL)xTBa}p*y0IOJJ?@e!^)Z8sT(CJwCk_50%>~T&}|~4c~yGOkO$~C52-vcYo?K zjNM>0%TB`hX=ZkM^0v-b{glLD2aSnXMJnS$;b(b$X~i?-8F&z1Z9a6OFf;}XmK9;> zQ56<3c|G(2g^zx~E%J#M)##IE#4Mb?LZ;y_LlA!qxNgnwfgegS`@2wwB9+wv=d{dmm8SW zeOzf`F|-~>bDY^UuPZf3VjwukFAzMQc1t9qHchN9UJN6{$byFy1;(g6vmVwR=+iN$ zoq^apM7La@@EoqDf*8fI@Q(V1-;bmM#HN~+yQ}uU zj2;f`eeafddgz!#Y&SPZ$EZ$Me450UHHt&{Bg#)jq~;hiIda&@e_%o&F%svE;c^E5 zpyv93Z1ZCIV1AaW%3BpdXSY$D1H4K{!La>}l$V3$N)C37LE~i+ndpx^2>8kN}ZnEPI*^tbi(a6t* z+aQUB#Ws0TWx0>2bDTJ2b!wU@5~vssHoTkf8qGk~X*`J4fH&!A;RKb+oRDwsn@GaCr+FXC<}3rBVilH7*fB_HN-9^Wy68fGJjuW z@8mnJ{manygp#}meBVGznHIuV zDu6btmu-@RzN3$xNvTHa$IN5d=D}QXN(##J=1*EUI(1JsU7TKGo>jz{{u#=PCzAZG z|Frp;$=F0o$M@*ZaWjRl2X-dy5Y&?7>f%In%el)%<(J<`@&$z>U zw|M(8vN5)vA`5)(;6Wpzy-Gnpg#}9fdifW7=B(k4`=F*WI&c1GRwsD-piI<0dfCF zVDovvQ#g}?HkuR7MU{^!dt4})R~x<^EvBOUPE$;4r0Fx3e&Y9Ar;6%DNXMYp$yoe9 zjX4;|uWN){PP*ZRtta1=+&v1M5~0I$_CH;vU&z(r>z)~TVj5SdWMG1~CKI8*=;TIA z_eQ&I1gNgxKv;Bnx- z`OE6*x&4ag#us~ctuzNpC~l*!zM(fFvuC-1jWoEO$zwr~f&K8c0mkqY4Kw?`&Al=# zjs-+OBom+{2X0+Mx_nUepG1}kKBNFNATAZx) z&?eZgvG+~BJ5>-&Crs*+XFV9hr@z7jF+EpPUoRy+85yrRl@7K58=5eJOGEKJBI_K^ ziku4uROxD1)}Nn{iu~XvvW|ZTmq~_twCIGE8m-&*kidLLqV7CV_fgYiO+G|_cG*I0 zKpLMy5+F=z#VRD2R#n|+;i5)lFqE`}xGy$xbz;>HJLyS|VTZS!A*kFPDi&}~)aO|r z*rUd0!mx-G6AM&hsrDP3a+Nb2Ta`_wr3Cev#3}tGi!wPRGY$67C$qxqR|vUdPK)iR z`?`M5LUmKRSAcg^>Jujm0Pl5FSEM!0diTC`Rx0s{H@2iil_lu+M4emvZF9YSY~mY2Y54h zmLh(Nmiuw*nB!9v8eo z6#Y7W5_rtBAKjDQ%tU-r=$b7*n~@={dr|Ute_$&b3v+BKp3)}650!V7dzs7{nf$d` zlRKnTts-o}0d)rn>SNsv17uX1;x#q3UunfX!Um5$QuEIP6)1H_d(uU$%A+;ZC)B?T z#ghqu+;GAwH*a3%(O;sIC}nsj8>gxF{u1@&11qNquw9auE*n|N(CDI_w{Z1FUz-Q< zr$spr&VJ)*E+iMViVo;khi_2-!bW)ySNMxtdIiNf^T>*vQ+|YaGtcFx^L?xDg-Gx~ zW=TDbLj2Z?%EQ@g3@tExR}qsuU2&{t+Wt}2UId2-1tajy5(-sb6?d#zM> zgfG^O`IzIaGD1Bq_g#jTd~q0O9PiaK~3mZ-i{BpT6rHwQLN# z{@x(c4O3s;YamAAEKYhOm!@#twuRQmTjWA4We|8inH5@xe>KK*Js z_tEer9)2V*VjEvEp6r9;^BOqWn%U7~f8$8PvZAc0iSaPSD-JB()JBogIs&*2%I&F~ z!AE+?9mpy`4TK~6gW-Gk1Wye~et77;Hu<*%Wqi{=@w9uH_S|?ukI#5~SS}E6p*sz0PD*)d z60w3aUU2Px1naDg_Mw6iIQf@98iCel{T6*|$8{&*pXjdE6V&T9sq8xns7y>{zW#On zTbgCh1Lg_WL&!Y+)@7)qHwgcw7t;~1i9uzKR;XOp&e;Ao7A1M3UgN5dOSxaeDl@4@ zQn1taGd@V=u7sXDwws@pUZdX|f2cj?GPb=Hcx;fNa6njK|sF0Z0pW8 zfeNGGuH~jNXdzL5QGB2yp)&y(VTX`WA)z38Ojbcj0!CIPbUir;A!j6h`&VuZsz!w# zLVBmf+1wGYEBvHapwZ=2{XHvQf z3a^+Aym?FuiVP=~b}A!k`A}r(l`N2)8Bn2wAD7mRy*Sbv@t(S7 zsUH_tW%z?NsEDJ$6`#a^TGUQ+$6Dya5N>?_HPE^-Trq&@=*t+d=14o#_kKaJ$h8jx zg@v%eOXDD`#%={@vE9Omb+FDvyAgyL$iH%AiBDlIP_ZpP{T%8uwOm?*oAN&$rcohz z=};8aX(e%Q;+Gl8?Q(Pq7bu7ejR^&kPKv%BrMDa#x?*&$ofU(`gh2j~x5*!&k{9H$ zsz;L|>P!h8Pdv7F08xwLQn%P>ywMq+@2&PUJJybPGW;`b^=@jr#=iq+iR_+dPvX(0vb`Yf+eUD5@D5+zBQRjl7O`2q11gm*8 z5x^}`<|0o451m=M^rmxbtF7iW*#%9q1+N1W;mlF4RWKEikT9@-HHWtoxyKU`JA(#Y z2Bhez@6TZOpFoP|MpY*`R;-v*V$_WJ%yx3kThZ{O{9a^0fja^=*v7J(5Zx0B$ zLtdV#%n{@<4mhVsvNJ>K;Zwk<0!+YE8~?v(E*Ym0(p|$M6w?9@!8$A1{QT#j5hXVt zS>0)x2ZY=3wEIPr+)9i=>O`Q;Zju22aJ>TKX;AAU+q&lAmXP=bi$qqdLkH`$Kj8{E14P->H%GK!VA3eLGB>hf zWA$QhEc{v3AU^xwZfx~vEkl8%@5m=l4{A}xuSLyix+aKT27`>&o2(G6TpUg-;gp(0!1GbKNvgVN2}j1vUnQV;fJYp3qINTI_B3aM7^|(4N0%){YtmX!1!v=WL5{MCBkJz z6Cz@xgj2h`oW_XYVZgj74ugQ9ZF5dhy1{g>vQnj>dE#WITg{|lrGy=NQPi8EfQJVM zyWP0P6K!-)!jNTZ4tznCE5UkqgTfG2(R;;LJ%O^Fh*hkbMYzSYUh;j0tjoHIsK!HHM$beq}q})|%nh z1*NvQPE9qo@OEqLGcuN4FNVYJCZG(h@`1yPKTRJVrq0Ysk-+Lo6OuVE0nY|i@sK3; zRMB_CkLAQrU3_*oZvJRF?7*BVAbc_csFG3bYvwL==YjF>SL41So0gr!)`|4!cjG zx10IdO3VjobPN@>OA-q=odgzT(Mu>w*h8@7=J4=pI06s!rG)PTa(FoNDg?{EVUQtN zgeQ=SAytsmzU;XT5-V+ecfo`JYLHX*7E2Kca^mOI!z97}6%qiZc)!&$C&j?QfVZI} zw3y*&m1=8)W+sG&)F7CcB+s%8VLh-|vlb*AmDumiEX;*R2pMdQu;A;ZTp3Ms#RP%R z%#EA(=4+!Jpa_9&$hdTNCYR9-lZ~yBY%M&K_W<&!#vbWm7Gbka4JxASee)dEQ!$Lu&4gdIe_IIMP~gHj@JU)IeIUyJ*te9l zw!9_HR#`1asfI^~Yv_IW%loWf`4s`f*oSwXhUY@l*h;dDs^>6~%Fh!j? zY1YEjkfyYO;KMH4fiT!;`AHMJ#DVe7+Yg@zvBT$lYJ`izpw?dDWh!Ym_I5CWQmANH z#{Fsv5KLEUD7fF%1?n$682alJRXl|j4#;nisLi67LT$Jrx=XN!Ogycfp}Pp8-cHDI z19b_;$v#0_3Kc)V&nP&L_ei6wZeC%S$zir%IZfEeR3Kzs`J*i%dQT=oq?rH&ag8E^ z(8AYD>3s^ipfz`Eod)VtKLk7nB39+39HrQpW*wP%ZWon^=_q@v6qg1FYkt`H+aPKM zt73wsczWtXgFY}~8U`vh*y=K?9>BLr`!FqFXeuR^Sg;!EPrgMv6uPgh$dua}G!rJ) zQ#_`aT$Y)+YoH>D*6g-Gs_?}}_hoLWM$ca=;EXsDlx@XuRj#C6`|gK`zH~rz>`A-P zSW+5fsgwQrHYFZdqa^5peu57fi^MSMG;8;6q>T@5$PS%&?ja(GL>T=*yDUhlI~a-= zwBiJl3o^yXtzqYWWW*mfsxf&ND*j)tjaae zM(Kgpp!IVqFWLBy=VfXZWy|)iU34%(4Y+DRz#$TFp=8{`btlYm)|ESf_e-v&-H#4s zKSPH@S6YRv{&-9%RNp9RDanM>bAWpECwAOFCh`*VyMTsbICm6lxG{bbX|ommu#mr! z*{FWV*bJ_H1=05ZK=qxzE zA@5;37L^6g!(yWB5RkBK+C%8;b(FE8C0V`T$XoI?I?QSGH4ZpBaRfa{6<;C41x*=A zrpsF}qd}y_g49{36wY@+jqR$jV|*fKD2QI*yYJ03)DA5l3KJ!5d)L!4wR~==YfVga^{obHU(=M?m@~ z_q-msCjozLemx_l2S^iaDBT>#gJ>5v#bol22Fdu4E|5}m=T^;FZcO2US%uB+k+=y$ z^b(~?d`qybB_oDh`{3Ex6fk6}$V8*e?qr{q4itZy3|VkW41;sykPWC|MMEx4h>gNq z>Iy;qN6WnXH~=(iH*7`K*62%e#1E$<9AN-?035twC<)3l9xTwkfDZ2?@saMlfQXRF zc+f_Lolf-AUGD_iX}AF!|cIkb88C& zWAhJ|iXmfpgmThnW+9dV`@DvvV%4xmV33%WCcWXM5!n?)Q&9CK-%|RPPu!jn-J`>Z zez?=8#<@7i6%Fzu%mu@ot%Mha4AS@XC>QFCiwK3}&fy3Ijoh4%j0}Rx46E#fp-DyS zd?Xl38`*ny4uyw9VAY?v8Q0N-FG zV_3M*iR3St4ASf6EDISJ#>V`%9*tEQt_hp=L$f}Tf^MJoa5kuP>1mNlsciH)Yk&{Y z;0MgA%}raaJ2276GF)$5;PLg=6aql#B~W?Iw2Qmw!%LgU{>?;3qe=rJQM=&g{uO~z=l~DC`&}y4M5?!irOVL5r9f#bZ7y_7Z!;%sj-M4p9heMeG- z-a7Vep7MN19p&4HrNSl7EMrGKaPy)DdO{zitq)GHrwB;z zVxz+r-U^A#D3nP_rNpR`iQeSmn5b4n8H)xNrXNg5+=D_%bV=>nq7D^M0Nh3Tp|zIz znk9U0ZJLZM_vq z4ma)*tTA=WOOXT9S8p2ujhtAjbqL=$2)j6Ay`#;?Wkc2y3zAguoDMa27DXgDnqp{ zpodRX9xxq1pBro9d8%}{fz3dSPRI`pU?rPcoE5e#L2kAWbV}C|f;Q;t)_^F0pW^}$ zPfYeFP|^HB?al{%d>y7yhlI`)kR9vd4T#E&IA)IgR3mN;5GA_g2Gn6gJdI*Us6IQc z72ekEM_64B7&{X`H-!9Kk(5E*yA?JR;Qz!lztry6*noc#J<(-?AWc$Gls{{LK#wQ^ zCVR&YgEMdjbd>J{u^l`FUlFT)B?$m<7W|%TB*f^(jUs=gv6SMK1JZ~hcJGNdo! z3m$MmcR<@+N0Zvfcu?3BsE1ZfVV4VEAsi**TLs>EyC=3LefW}KOO@ixad->5o5O7w zDcTp-(&cz)f?^9Na=iqZ=Lc>b8v=|>cK=4!wG>Wy-r=c;#>sz;S6^eSe~a6I_r9{GQk!WE-oOlNPx@%^+@uC;6hGC zamIX*e3~PP0b*8q$9S8NaOv3T^hPQg%@ruW5$l>CE z2?Qud2BS|76hA?Mc7~$oRl7TNaCt(&u`~cR*6SPEe{=&Fj%T?K_!4*?cQxZv_z^`4 zj*H-#$x>FuaO?;?F8$PWZ0KMDa)2A{DL^GE#TvImFvN2Qi*|Xx1O?it#Uk2GKZY@v z@Tflkp93=jJJ5IAr?3bErKZxrBb#Nw>Hu5W@2HGR=@%R93%-%V|0pw|2d`s*pIvtlS$1OGcAKq*3ufdJ**BKGB$!(^T}`^^pDMurU;Q9JA3JA z=p*V91OR2ESPz%e9HgoN-tRq*`b=nG6Erl}CY7za#*Ws*@%}?H#L?PYXp1?9xl5gA zbo%CiQaP^2C}@63|7Jt;0GElnz&7X~Z@o4LTYU%}gr%~tx66_^iM6f)3)ohi>o)H*F9@>IdfmNCr;q<-eAK6aOrCiuQ11YJHUS)W?ONLp7 zW8xwo3h0o)KImE8K)Z=qS(9U#rQ!OWdY=1K^q$5m2sJHJsMmEASP~MEyK-Oub?P&d z5LTtC7Zaf|cBkqcrv(-sn%Ck|@L)X;_G{vAC|`i7pg8r4r0WzW#^;N$ehU&qOa-#R za~)~;BQK4V2&y^wRn4|^gHvrf1f&QO+|vQKlo>!~dS?4X^wk6Ox%vj4f!DU?agBr8 z6GQ;ujsan2j|iC6FzRi;Y$DH2KLfQL;A#_#|raybKQwO$C2-BCePsIv5^G6n=qcMQTTSM$m4EjWIB! zw}JbuQC}ujC1?zb(e=tDDC!FBf$rYztF5HMw=wL944knP-I=EYR&AH3cqQr6fZM(Y zYFme$KH;_y)Uj8J&}hXc?~Q_T4~k&zRj{i5;Y{j+7Sa>-RU6Q_Z695qnag`wtF%Z_a6W^*(32Bz zn!xP&gY3r&0QyN15N|zE0BZuMEB!LiXqS>hl5(Py zFubo$2Ruj=p&_;ufI}*Y@igWT@j3k!f3G0Gj&dr)Yn&%23Cn;z{D424PSH|eA;qZC zFT*(9`vp4IZw5ARQ9C-F-6uLhM{miPIPtr)Ro=sX6*`SBoZVKg^qHJJcgTvIctEO6M{4p>X>l0c5kvM20<6{z*^W9G7y_Q->!wnVnw<^^bnJ}H*yZFR4 zQ?n-Mro`w7Q^pCB4<$ZB?W9PRc%XEoKn3#|o$*0P3O>}j$Z#)p#3A_Vea=B4VH=w) z!cnOTSi+^n(rcbNa;|gjz4}k}k5ppfnmc>w^>Gn@VV8S}u2W(ZTUa6D0$|j0WJKZN zvDhmxnCDt}!#a8IhPo-DcSjdTCs8h8sys>#*OXu^8r0cFVB`pC;A9OTspAz-%iBS_ zP6@UOf(ncFcmJ@Dj26Js0_Qy{$Yhgd>2^hHu-)#;Ah2G;6by255oqg=oy;YtU3M_7 zfZy7{%aM+lZ!tP9z(#Zv!2#QNa`W*X>PG2>h4h=fcStVP$5HFC1F3e{6PH9MVbirh zkr){<#TlpE57TX<+Kbkw)mv?1 z+B8xj*tIYMwxbL3fZ?9=E)XFJmZTP7Ox=}$jdsMLiu?yAmlaYQ z`z6F+f@A|>@N|}vG%t({2F?E}jh6T>oq*-|&w2Gh0qQmDW9dKcFV!r%QWFvzz9^R` z0|Bl~qoWD@f)@se7>E;t7lYwJA7jfxCIl4r!M1`40xCT#G2I;085RYXuL|YpizF!x zoNrZ=1Kb&6{H?nDr3@o8(7ucK4j(X9^|>uXfVW?K*^98aF7KncGV(%l8*)(6n$t!b z0msEJ1Tij$VOhb<2Q>t^9Hjvl&IrM0xE)N31QOMu#K{S~1`-fo$xcjo_%TnM+4(DSuO%fjZ41qHy9=?ir&{3Y+eb1O`q6NZD_cPs3gxNu zX!(#Uu#Ja7DR=jIfA0hP1xQpmK3-PEkZkgd@Q}lDnp$YJXQT0_fy0~XwjjWL=Ddw? z%pz$Y{G2RyNarb6;NV4CMAjGcTlBd+B9wk8=yb`zWq+V1e(=^Q?GXTE^a*}2nvr|^fJMbNV>rjo-1CP;5;zL5t5gR{5{}6# z$((S|Cj(oi_DUAJUmp2N7;N1FH1mpJ? z5@6zzN@Xs*+N$KDNePMPgu7-T+dUka6ml-DH5NZWYCTnR)fwd&3QLFz{DFA6b8^2X zQZi5ZyIkq64SHO{=^%l$GsVnt$%9sMZ8*i1KFJFbv0Q|Us{2B%$(h}r0~?@S6x@6V z3tTh&P|u0*f$S|-)8LvyUMJdOb+9i(rh&9@H(eWD_M<}96Q~vN1+suaPvAh*06D90 zzWc=0_85%#Le6X#_tGSP5w`H1XnN)B(RR<1At^tN<4;8C(U4mNw$6H0me zFAUWDB=HF1yuwhKpWwe|?YR>)>-aWZq|S9lkfm`4%ev2!W3fkU)L6VWBpK)!Gtr1} zgh4PMqeDD_W4E`3#*YCA+^;;9M;l8@yy@$X8Y!)!tv{($dTq)+Kf zR!8k4g*yD8d>7(;x>T?1Am?nPW+UcV(ajbVhDe0{(Yqu=Y%(^zn`YnDd*xl*G zf_Up>``!%C7CZ*9EsPUggaGlu-Qp1irV(*{qYbKE`&{wfCfOSvqp=_o?g1eYWWS@&Y}ehUcL3P6E*s z(Ji?S-?MFbTn9@ZZUlY_5%B5wVQwX!+#PsDfN>vm3m4n?ymgvPWW&RhzR{_B1smw8 z#LaY@E=<)+@10#ms!A+_R7%ix} zU}>vGxQnHE@5{kc6Wr6GM$RgBd~OM~78H&uw72^I5Z>({2w|?FnrF~kNj^Gg@l;S; z@vSbWPQty)t>1Bi?e|D@c*nc>4w);p4uhRBI3P3859*1iy+WGX@ZFTx*m1Hl3- zwvIhO-6jEUjormMP8}k;i+B>CH$!~8{;tDRhXD>?Ocjk`4(~cMJB_I$1W@FuK!cyd zx^*1_0f+FmHz!E+^!PY9nL#ug`t7*{;U=TIbID_9VabmOZrd0U02c89cN@ZWWj_G(;XtJ(>`D#<}CKK`uoWP#Yjp+eVl_>QwKw*v4$yR@LOpeqLBL!Ok zH-LcD=%?!J`MHLlfX2}dD!Q_K0_*FD4%j7VUs*Gri)VI`S3wNftthEVcA)wCWRG^_ z*wgeV7Xb~_@)d0&8w(v%0MHd#WN768EIa5zogucvGmj{z)P(sm>YD+@7Z;DChT)vO zD6KDLyqbgcAnbJAM##C)0pN09r5kjLio<4WL{FlBN-To_cXLrmU!k7 zMgq|)OmuVMblz2H(6?EPCDy4SDR$v>y9m#~FpzN^Jawdeu_T@~JUmj3U2QV-wR+4d z&w@x0eiCa-Zp9$`dT@YA&A+|mxm6SPbX#OT>BP;oNq(GVerX7)ouxXgZUieH&p3VI z#be2JeY~x*3oApC@@od79@9r44V>I;X=81aue95xYiM#rMx&xN<{~&65Dr8eL+;@U zDRGb4bghd}9Z!ha5o1YNs8qUBUK1k}w-JOm^D>KMwBx!RyTozO1>1@VfeCmpaV8T1 zre6z)1nd7qnxhO(zva;c>M6<0CAg&GSqW#!PfJZl6-A(;DeNXnYZ<3)TcG9!c^r%* zo=$w+UYt#Z{7;@D^RmRYC~X{r2L~7Y04Jm_={@F3o+Cwt(7G3napKO+V~}*FVB}hS zg5``J1Ec35p!|5NNAhtkpx91a9Bv&kX$u!g9ux~A5;7uAJZXCtOvVn0ylFdLi)fp$ zIXN2%y}BK-M^X(j^sN>0?+Juk0R8LUA35kq!%$ml)M*MnPzscpz$3i^!+Y&??`l)d>bxaP4r2|B%Zu7zs*S zr`#ybaooM(c`zP9JW~J4(RrZ zVir4e_+Fc3^)8$XqN+5KmsQ4#&?kEaqLvD_LGwc_~wap){S8uzOD`Y^k=-^ zC#)5bEu;ikcWpQ)^Gc5Uj*Q=2Y!((noLVBRu+XO|FM7gMeP!=H7DcZPju%3*MeHT4 zxXJJf_*50r95#hOR0f9We>Ex`69B9$cBdXtjIC3?I9qA<+JFeu3mB!D11^>`E@A*Z z4$6K`-a0J_&~U0vp9vRUgm_5V#Y*oQSMdyeB-hXyt&zV5LSMCdN!gWsnP^W~&Acc^ z<^E+tF@*jdjtrsczp+6?OO7-FQprF?v{a$4M!|>Ngf1i#cjU4i#=<&=Oi4l>*ecRf z4$nHc&QqvWMmazNBH|}^+yg|T#S3^t;X^rY&bA}HB(FnMLI;LL&x`nEUKCTy#-_c3 ziN^9@(gE$KNMeh!W!DKdbgcS=!ApTqQF{jC9guwX;kAUw9p9dF$7BIEyWY@&H z)uD6)tx)mDi9jc*zR*Rg$PXYXLPa#O_nW5QK;+p7Z>bkXt6_CQ3|%DJN#?6fByZ2W zttav!l1vE>BZFrIPGrz9=?NhqU{Q{SWW=BWkliT-dqi5v4p5FIq@PptKw?vw40nv6 zh)3y&y>Fa%M!cUOPEdY6&O)?MXf~6O>oepx@i=~5bWa-7PDzwZlirD}3M(4ezmu*5 zU#nk6|3=SIjZ1XC43XS}wG4rURpCn)O3&9mHSuMVgz_4RfXb*m&$M39XFH%`b?Kq| z6t{)SguqO{t`XCh!@`S88QNr>EW!aV5lhL)Zr$b zFC^*mG)(WtlG&hbsTJ5Mcz6&7S00M|&o}kKBn1n%0{Cp@06GxIRR+IKKrZxopjs;$ zR94r4aCdbz^d4=0CeRy&4yT@sUIP@)!={8G7(?zw4VVw$DW-U`lT>6kaMQwj!k)`q zKKjfOMsu?WNeDYEtoK(#cRE%axGeL2=*Zvy^YdnBJTA!U6FTtu!61@nK`b_M+HxVqur0V84V0y?u6W;bCnCi$N>DRzE)Y@am4^YhjA8`K}c~R6IH^I zhYp0z4iwT8PSdCk3WB2jxJm^iS}!w;s2w6Sz`Im&=rBu@&XB{ViV-{vnUWC-H=>~k z3_?y!L@f{mr67{McS((Ybd&8)oGmnhzMYwc#h4|?5vFlKhsO>A8j!lENKfISzu)wj zM5tP3pkKRx!{4hs)It zFj3zMX#sJ{k%7?`2Tr>U#b?wGj&u;FCu6H}lmBopv2cEBw<$lg>3Hfyfr1B>K{y|t zN!cJ;bPX-9QS7;u6Zosb2Ka40fzzi7(ZZF9)l@8SrwUCtgcR{;IBo@iXtxM98gNsO zXr&grMRy?Br4)F?>B`X_^$LLgYy`ako@B)a?BV7z8g5-ngI^>Eng#TCm^acHC~GR5 z()9^GDvbP9LP9#i3Z9&wWDn>$TjAARP^E?X_4>bJ#DLJw4Xu6&>0wknR?8Q=njQNX`H|(f$)XPlz|ilT^!+v zeL^QyoluCH1_Kdd;RTq)r(Ia^*|)vd#Bv&ld@4hDL_>BU_`+!@hr*Pim%M4qU=LFB z7DJ|75wX^#IhTOKK(zCF&_7As>$bQUExr8$*T6UcQOzIdDN11u=z7!bW)4U-iyC7Y`@W+aM~P zM*c()MDG;4FbUa+oz41_$6>B5 zbo>)2ALC&I4LZG!n9v5wOwnfk$jj{n?lV=If`dE&6vko$axgq*DEd?w>5l++hH{#$ zf{cWF;fxLxzrNgiH%vDiBW^O}A2p$ZpSTr&ry%MY&L?{^WJ!W^Odiyo#EXZ2Db^R~ zM8>gstc$+rvaEpQo1~uN`4N%;-34Dlo|_X}KOU_gbc|{K7_^UT!a`Aj2RBM7 zlHx(ogW=o+aso_~{nSkWOkZNb%c$G{E;#8hm+%0LYv!jD*qI$*sT0wh852V+_%aI1 z2%%Ye>1#1a*t#VN(1xmRiefB8*N6#T66ynh{byxKBB7axP!ads01tLfR*A5geP|p@XI~h!bA)RL(s0C=rHAra3ho)a*i03kDZ z@JWsk3g~^77+i;!XP+Pp2)hGI_YBsI?lYpg;qWf%5L-&{n4t$+>K4>Q&+_l#UI4vO zyI&{njJ`rLhOmUnhO>uZ4P_1Wq5`m$Vk6#A`F6zn7D;H3H#-*1C*2t=LF6#sqhxfh!L=!?Am&#kv7#lErjlfo)5RnW`CXQs86pB%u zlqiInZuc+;j}>kI7g&3xe+SrUzyu%g(cmsvf>l>s`3!6Ug=)CGO0mas<%e=>)5d=ANd7ZHTFcb+#;MmEv!B78Y z1A;>ga6?Fv5!A>=8sIdS8-PGh19{LO7=^4UMN{yRldw@B>ZC5?Kl%wc%VC^64K6OQ(eNvaV%2z} zr4Ukw5xFMJVTKJwHhTs!U{{F9D^6Mn8)rSHYFW`cene8k!cpCl0s&%~o=}4`ERp+7y%L6C?sg|1f;cJ-^O~^bp#-5;nmGL_ zHaRh24X-6(rPf0<5pk*K0XkshDCYPcB(4y3FJq$|PM;IBf(* z4Ao_kUx{oY&;fU;FKB-KgyHJ+yyiqyP_0(%fyz{(MPqgW&j_C*r`SAl#QY-9t; zRlu*IClfx%DJkFRGHO;iNxsbRz$^^3dxa!8+`vY;JO>zm4xEGO0@Ac)Mh4As(?P?( z5af-L3t9WKe`o65+TcqJ~e0JK+NO^3<@O`-FGS5zS!(iK{V% zp9lkk;js&6!W(cT1lVI#(kGk=okDnUB!w*sCScyzlq?0EsCJ+`Zju<9VR}j1OgD2` zww9xKDP5xxrYUX_L`5vCBRfQ^2#UaygF@aKvVuT}l$_xswX5^cN;aX2lI#~W&ISf% z{7Hp)HMJ-P4!{tBgiey`o9c#nQrgK+9x-5x4Lf-FV5dY^%yF`K*z%tsVg~K#sj+ob zki0S^8U@>>Z9FIu7Q~0ZFhD#2$(Q!n6hcY7sSUvhf7m!e!!LsJ7l3vlXP*kz?)njO z)VRsitRDFegyjKL;pmd_lB)qN+DTC^)2tM=J`55)$4r(D3aO>>mkXeVM2`X7h>Rsl zQtYlV7{21=u35{l%J;N8Ne<^q&~?Z)P^8aMS*oSM;j^dJW;%!S$gTD99GaT?3dCBj8iP z^E&w~SuW@!gw5z4o6MYVPGWBU# zLU2?$%rWUD>pE(x!g4`9^{?w|*-x%a9A_qdVKdOjp`KB#b_RzwM4#*~kum#Q4cTZt zU6~nHY{6VM&RaVK(f6hAeIN+(66G4!w7Y9zt0Yu+D=f)^pG}&!T}ZR+%Eh4;Nmo{t z%Hq_`iZvaGGOK>`6WNLqgp`FmZZch52%yXi%s2ZWhCnmw0Eef#CTe z`@l$mfb^=0jNvcTL}WlIYpn)JwTe$ULGLRGZSG`$s1I6 z;?9*eFti%yGiVrUyBb0AxRW6Az^PqBbi+7ocTmk*wZ7CfuYRCSLK=+q?RW_eQ5@1k z?T$9bJa8Z*O-_);CIVqPq^Lrw-OT=Ri22r-uE3KNYf?64N`San=EAof3x%~n;oZu5 zdNvP8i4yCb@)tg04>f9*(Jtf;^%vquP8l_{teo6}3uehxLwLxvm}vZ_LouAA&Ou7O zNcjzr*8$AC=``&mm|qKZNUL<31*cWOi$_eKj7_d!(}crW9^o*1v#nE8XA| zabD)=auU>IsB>GIpyIdwcroy}jpJA9sUfc9;Nulp;-=KkOB*hbdq#FBkx42O8j3qm z_V}DhF0fGxyT4LPtIj{9=)D_gTFR0M;=$)SK0^%~1h%A^MW?1yi`2HP^XCi$ZcZYdpbs7UpyIl zPy{9l%K-&b2z4plPMW;AODl2=`>r3@Uv1FC((nuqV^G2oasyHgUQ(?eE6$)>kb|Ir zTwQ#IU(0%N&{mj3K7cZ;CA?*tn6b;6Y8Y~X0ADw=N@{564sL^01Nwi;#Ls>Pm7HVY z1b-tqwf|lA@XUBl)<8Nx^sRIFLk1j(Ybz`bCCsp%zX5oEYB~dU2=wrHK6~q~7lt2l zxDO~fKO4ZxF(YkK+y?VB2dt5{(owBrcOoW?6VUtv+Z2d%UnWJ+eo;lBS)JJ?4NIW} zK12h%?Ay&7f&d^ubO13x&cAIh4Iyzxkc)M@LNv*QM`ecxnE_*faH&zikT=d{DJPz8f5GzN;yy?Q_ahl}Oe@ z*>tq?<0^ZkEDKWt5idf%Ti`<}(;j2bI(QJuQ^1#$d_xAhVft4Fx<3d9D`A`Ush4A* z2fQUHLE6c0<{a*k_$HU-uO+yBE`kO^Pi8Pf;5fB0p9bDm{GW`i@+yj6(EDFj0-6B41^Q*pz_BG9yNN=%H<`vygJ!B|@#<~|jCi&< zWJBo$5dPRo@+Xkfmp>=!*rVqyCeTooLziRWkAE2iMJ939$RZ{3* z{zK?md(2k{{zJBGx3bs{@*MWG(;p$G9uFC!#}=%KWSDJO=PBPYa3 z)^frlDz%&7(Q4*wudt11BSOC0^;ll5uv(Ox%z!njxl|+d08->&;ImpVxQU{v&ISsY zEClA?w9vLN^7$P$mpWDHVD(O4v<5Ul;;I0m){F}ceukNIF65lT01tTvkv#!<%IOMP z&rE_L=CXAL5dZ~1Y&H_!9xOJ~{x=RVJn?&Lfwy)V1Uht8;AB!`6vCZ6_uRyS(jX$N z(<78RB=_7Xh$$?Oqj%}Ssd$7#JXM8zG~<1UmwJa&hX z8xmgtAoKCh|14f>T;MxwZov9)3_lE&GE-Ma}6&Z=a&{sXl4V+D_T6v2+JN|j*PzgBZ)5nMS>a8 zlW}kts!F;rIGZ+VeEnNcKJ$()0E&ehNi4hb1VFN5i1k1Q`YA3bR7g_M3q_nVf=Xyi z6%>mCIdJCIm!y14;+}a(WiziEP&P9;2*`DlY)&Mi=yPr-jT6Q6#WPq3j#>Grq?uyW4kQe>!NkEEr-6>mI;uNLSsl$8>B}^72AWB~-;2~F1aq-=14inUD zQ>Ob98foBjS@bBjOO#Q7xMt#Hu+(e7qjw0{!rSFXi0mYnD}l+HrlqmS5#VCyCzWDM z6Q0Ukjd{sPA{9l5z=1a|b3X&b2Sk3Ez@ktbIDZtd2D22BG zM3e?NW%752uYcjiz0*G`yGxpbX8-A)gvBmyWT<~%*5=}M+Y;ivy};3j_f;ESR-6Ki zMJV@8b5B~c6p+eDigLq_5mo71JMT5HK4{j#T@lV|T-5nFOv?%ylb$z)C2eZ)wz-Rt ztQrxNQ4P&9&9nf~rmxe6F%>|KY9?C(IwfRdj<^nnc@bh;3Z=z|T#E#OEc^j64X?n3eDyhK(XyRDyfb7G@VX zIarbB(NfjdT|iWbu?nu0xhs&*!Tp89Qx3m$t^~z={pVy^vpZGqd0k*A(OIXnW%&ZSWSAyVR7CIeU?(0g|?b!Iqa8rX} zJm!?5ps}NNI6!J7o?L%IiKZF&0YG_y&qAPgW6zxRhO?MfMR}2=g{!mwee^ zGl&KzgEahRPyC3zs*eTjHA38I0T6igVh)VQ$y^-i1Tm2-p;0j(%5u~`8dGCj$||rr zgDF6iT2Li6DHFko*)j=~$F^;qU?{8&mKiWzf!b9M0z#O3dD+H6BLs-tg*h-F<;DYf z!Lp(u4A!kcZN)4|G6ve9F%_st^1ic^!^>NwCYfWeG^q7&Qw%*fH?0)>sG~_d2*MgO zFv`U-$lk@ht4fNS#(|!6F*8gY23GLUL0bh5#+5IRjI7wu(nt-|{)Rhdf7m%+KAKf6 zROR6S8mUcDJ?{O8Tr$zn@-4RAZUaR=nT zmaJv!`UH|F?%{wl!?gi4P;XQs?=AeNaDyd=;%Z!#uB!ei93)GiO;E8hLr8oyGzkH~ zA>wP}?0C(|mkYo^d^>Yn%MX2(i6KSHYvek;mD_>bnV6Ct6*VZ+@ZGrJM<00&A`vsS zk0Esu$wJUSAHQcmFo<|s(hx<-3U-7*Vk0sN7Kjn;J=(vT-36&aihTT2?*J6Eq*Lz` zLj2D#o`yOg3Q98w#SQ~a)B7nG=wH=Yv%LKEClKX;HF0E!ZC6jfU(VF5!$B$ zm?oV+=_%><_cS(!x(HPWT!F<$VD*QJ9q^`Q9J9b*2Odzofi6_eN*_{#JtK^ib2a48 z&Jq_}RxZUqGfqpqnoi+Hki1hh_=5adgy0|4fHEVtGsF{cqK$}#lp*c1k_GW=+;}F+ zrTU`}*Im<^TJ+7+ITt7(g*P=sz;TDC1ZPjc09^(iLLCbb;uZhez@%Ot2B_1AHr_|u zitZjb4^1Xf;fl^MxR!3d)}gxB1WcGLK;Uy^5{v;T_*3%t<+aJztnI6q*EG~DREwiN zYyqqUV4bL&sGq3$gFZfB=_^3w)_ccQw6bBoOz{p(QVg2kAKZ&3%j5q6$+RIP1KU<~ zEB7C`HpAq?U0%AC#{1jwL_&!ZKB|$ajV;HhoNzCOf(v?pMwHQVyNcRCM$geG)3{3w zZ1ZW+`oj++9fcNgH<2heN*U5Sh&Tz!slV+LYz^`U$-yc}w4I2(kl0-1DSu)vP=^&x zOdJ4<7|j1OoS`v`ABjuO{F|dh=;6e$;!rqB-G2b;qSc#wiA8{p=V6{M0+VvUB>+Ve z7?-WmQ$p@R}i_#(?C7bSAz#52mWxLmF@KY*qCPavi8 zVw4@t!Ak{W)?)Ojg+{>|T!?NP0EAHNQ9gJQ!LMRC85to}d=TUsMJ3PUQN+S2VNpVV zLvJ!{2Z)6(m&Z|z2{rP4jgeS9BLYZlhwNO zu~&j$!XVe}xVw@dHnlLrOxBk`CC^V$*N_wA@2mwxA{S3JD?(is-ov*)sIdSPh_IVa z43W(RZMQD2ZJhXKPPWL*1GA4s(f>=q?2^I#lkkh!X8O>T28t z#Y&Xc0QH<%BfDLheex3!3wHkSwaJY5Ox0v{ZEI5yD|DzFFkv_o6V|{UO)RU0IxRQ4 zdqprQjo^|FJ&VOx2Ra|j2h8|HR8Pn1sh$~-Y;4~g@I|`s!4|?4C=>6-u_J&L6zFDd zthoh}RIL{9pL%?cRqxf!Fcl9MA*@+oVEbCO!`OLJ%V(j1#R}l2xNM8gqaoI|V;0y3 z4t(x4oJ*vSzq8cHq#|Ts4JrjG`xwg^umEm+lVu_#t}2mT1VVN>rDLHGJW8BZA}Kq6 z+>e!yb}ARNwH=20sv!U1&4xapX!+B37hKQWd1=Jb=pV@tgi)yy1+^AG$ZBdcmXjK1 zRe<#R3Er>NtIX2z`osDG{ugXK`a%Ulf8ZxT5x-9s)d9o8I%@$&U~&Bw?`7+7A|HSJ zmN*W7`hX>pLMhVlx(x%s;Y|XaCE(7a`1LYr(NY08UXoQj3(<694|2zl_MN>i7-Cf9 zDcdR4;LZfqGVfc3D|EamA#hAMRm^{ia)kj`^h)*stb+Xe$M;T}Q<%6$>9cU4sz+AMyA!PiDQ(RL4OmQEj-F)* zFJ}Ptz1Khh2(CTjbxq-C%vZ${(0c#o5(HF;wr_2CZRG!xaqPOD;P7ktkaKf!#7fO^ zP0|lFxf~{D0i2SBK7>$u(% zHE+)3|G^vqR9YIGzxo;YL;V*-rO9xpehnE)us9}^@5JyrO87OkfQSw*ErDTOu2euu z%I}wBDQ;E;ayh+@3;W z1WrW~wMXF?mNx`nj|$^(28S9RcGP4zXop%l!h+sGQ^7e-OB{ zXrU*RyMrrcjOP@g1siph8OJe~fLh3hQJefdo3g3@>yhrIQ3X6Mq&ry^4%KnPn$$Q$ zi;|YPNI$`m1c$Ai#$I>`xWW-V!CGMg)++c`axLaFl$Z?gja^=z$f?sJ3J7K4k%z&I zYL#sZcIYZLJf=+%6yo5dIr9Wudnqf(U^~h{u2G5=whM6gW%4by37Kf*!iTQqhb9i7 zNeL5&muQ6SVLrgmxJI2?C9s=FVd;*12iM#VsmykhVa>cq+52 z{@i?P4DRp9qmt!@27%492P>HtCf09A0ft<#nGqNnTSRD@*`DL0usesOA!5ksdpl~) z?LX%Co&ImRNN)HeI)+{^Wy^M*J_hUj7BOIg0J232b+u}C(0WAK`lt#bK1Q11mx5+1kDfk;O(`98G-m8Yz&b{=%e)pZ#sD;L)+ek z0)EG@ae@S@bEsJCSMPM9N$U}x!TR8U98VZL&y1O%;NH1C3gF?iBr>1)3VAD9T?`CF z!gO1>sJu%;;t_thX&lL!exQ)bAp#VF7l9B~UBD8A(+DFB=3TDVC#h#u`q%St@`Zt4 zWuWfTGz@g$>hQFP(1}6Sa}049lu2iF&?{(1iOZNVlKrNgrdANvb=nI) zMHe-&>dtPkx_1QA=Dul&qgh3n9k*DclgE`!Gzv(>MJquPy~iX_Ga+(KIVDUg|C|qq zVa!?>PL5tafc&8U7~FI>2^IuM1AiGD2CxoK4ihkTo*;c`k|KoXAi%flzJ7#2b4FX! zNYON@y~5A}Z_qkK+Sc=QBDZtCzEY-~npgC!96F#C#QE4aLQ#+P%D~I>ome~<(Ae9* ziqp~=*>q=gDhdA{t6N4#LMuUbOu6uaN|fOLO%Skz^?1)9S*NyuBPJLwM1Y~JX0RHB zjG7V`gb^(2U7|*+>Q8c?3KRy-P;w74C=Oh;d}?GLSdAJg%VTsQf|k)xd~oQp3uvEd zMt|Z~3|Cc_#ppu?nKTj0UiS32`n(w;0M#rWWTQrc%Jt*);i#R~rvT^{TIoS!Ik%wa z{18Ad*nySF=Ry-L*^iV&k&aprm?-46a(-4FhsNf~YbgP2sza2bo{)ay0TVGcCFd2G zFLIqQQUw88!<1oFSHlXpfc_wX0jjv5^a+$>1Y~BOP^~1@DG*?hr=*}iNW^xeU?zAF z8&6o!l|qDer!nwaLPCBI2AuYbdfwxngVNDwLIeYSeMg>8Mu&4~j5QXx@$1T!l#YVJ zF}*Woiy!l;AsKb_AD~c2b^hP_Uxdy%gV`XG*sz!nNqRVNv1}emh^H$?02wQtEIo#X zB4g~BiJ)c}LwMZA-Rvkd1Yx(Y4N?Mnk4vE)3=7Su$e4H`tkXV-q>%O8L(SBg{7IiB zQs6*iaX~3iq)yU3K$vLFnas9)%GC=^!r=uT{QRADCboztntP9RpL>lWA+o)Il1U)8hn|<$6w^O_xrEE|OKnoPyG$EP6tm8s6qG0QB3U2?DbwlttJkMs-hf58 zN+fh7&C&Z{*D?V%pwyXX>qm2BwdEc*G*;45W1g;4mnX zv=W_cn1ajA>PmWj;}m2;SGhwCPRh<|MH?v@`_4v&yiibp7(5aq%F?R^eYxPwX&9R! zDyGOxAt|U!R*hQv+y;7dEGlHoWp!uj3+TF11STv1psex10!8Ny28@uN0G_vYQ!aII zFg6p2GsG^((x6Hz0rZB5($@!Hzz`|8bZw%L2QIKNW+k+OWsuHvM-hMU^rV3x0Y3VY z`VxOUNh5BJVzHeIN}|hQuTgi5Ag?dr$)@G0AZQva`L) zOWl%?0E(c~p&^h8NlsNIMDx{qKI@SP^{_w8WtdF+mV>K1Qr@jtTrv%;R&@{_1Qyeh ziuaA6fU)5K!}C{CUm*)YfTi&?+^*Q;%~0g{e<|^LSEyh9+_w!kC{M|+6S@?&${J;4 zL;PE6LkP066DoCky-p;K)$i(ujECfzG91waom@X+Hl*xx<6d{Bv^rsyMGoNdoFM=L zc3vA{_$r3cDguX_`NkMvE`u8`KZF#wFvJmv=I2S00JPN$Qg+mxn&6JBFt8aG5u$l! zSk(~!Q-|JwxLoYvz|eJpec1@*d-%!EK?B!?(8oYgL=>)DJ)xGHV|pFv1U(3j)+<)H zDusvPmQTA@h-|(A0FR{E2XTI7^Kd8WRC9QI%_#HAj~RuY3WVyn0olpo42PQY&{UHA z1f_6Zi5A-1qFz2fKtv(%L_BB0)EJkQPn61mZ|&xhq}2v-?&XZiQp(A8yc4g8P-)Bq z?ZytEjz$PnDAc5d)rAMI4Nx_y)l6rlKukM$1X4h*sfyIAji9fg69P6R!U-x` zmTuE0xg0KW)LGXR0)v{&4f(~rOFFgnG-9SAQV$UL=!tJ+1u<4pYK=>aFaN;7WfEt$ zE&-98eWW7&3^uHwSsaDph-xMYbZYM{{xJm$Ku{$7T_Oy@;H_K*NFo0x@#$Ty03tY2 zyArXGPht?=dvyZzTS?br+syuIMFWR?C~6F)-S@H)i{ywQFEuk%`i*`vX1 zc7`T-3Wd6qo2UNHmY_;zvg3&P5+4GDU7)J1!x}MnMKv3nPk{&)@N%@d`0EvUg-JV$ zQZ#s)&T-!wNPu(p2hp6VwfD*4497S`6MVZ=x~4TCYOL3VIj;``U*`fHj&$cA^lGXr zsQd)4=aGN}f|OqSVlz{a3A5`90*ifUhO4XW&SKNKF69=|d~> zBvTf~76`X!q=O{7`naInl^st#;h zYjSd3J;5LSm*W$q*C|G?nMWEI@z@YDl9)C#pX!yBhI*kL&Ph%ZCrO49F>AFSxFY-r z$fox@X+HY28rFh_7Bt~JupKIRK&0+obGRMoh4&v!Ylke9R6en~8xAJ5@InJHpv=XK zNmTeELt!jh_P~zsL?JaWDh)gsa4-#qXSooVCao2%k0k z>O;otM?9=imKHI13JHWkKQubW?C>dgepTW{ObwjG`GV$EK)0TVnwS`#)}1+_4+Z6k zrag91!cG}wL^C%?@+=OCvHwuGiZ!0d9I)ukOA_AhL&ft9OLVO(@D{%_mdIs3iR`IL zQ=7aj^*iYlUC$vDVv$^!AQNAVuTmdyeZn|^MQd5ehP@>O^PZ!s3^8yYbVHMYqZ3AG z6s0{0j`Ag2;bu#6rC1U{&Lk>Sz#^2YVaym)@Pg;{MM%F_N|8ii4E{lr=z{eaLZIW8Ee}#Y<|J%q50{ws%Me^KkTdCAMoyiC}aU&1n1PvmasscEF(XMpa&1Fxb!C9 zuXdui7-nFopPmu`5giPuM5VN-BBdzObZ!Zt{h7ZMW(05|)RJT)k*X0Hs*2|&M?a++q0+;UC&fvL2jT}8p$g2wap#YIf^iBG zjHb{_wbXk&@6ZDQgWH)Q714}#`X;HAL(d&E5#23j!te+aPf$D zh5$6e@GA{fQevaUR*kRRM@7>i2GWyA2s%l4W|EjFgfM*)Nt@Fvy5LQq_REKC4>^$9 zQ;h@J&kn`;C_Dp;7-tprLx z1uz%Cs4ya&JB`82LXz3R#5d%ML1LQ6a|gmtv?8Ty2^7KBHwtI_bNEfQDP3|1x31{Q zb{b$Vdn;EFLrV@$p8m>aUbwhAT|6>?gJLCze2#D&9|8}+B~x>KYos`VX-_Sw)B8#h zo2R)g0|o7JLZkm)MPXpv^g$VRWh_I4!QtF=&r66ZgjnLc(n)acv$%1tqV=|f8_Wsr zX^~*TJq^Q*h!>nRx_jVWPh+<&04?dg+**SPno|a}rNCct(SX{{sH$t@IX8GeIP@`j z<2c0L);2KaXK!0R3HHA=79Oy+`DwN3qB+rPTR=Nm7OZJuQ#~YG_W~dqM$l~;(r`a^ zU@gBIWFaz`fDBZw-C*NDROmkO9|3m`rV~E8*&+Y*q*|{q=5$ifDcJcwo`4E1B)k)#EEM z{k3Z33wIJXaZjT<+>&F!UWVd)e%wxN=_6k@j*Ear>&PJ&uT&$Gz1A`havEsiZ~ zV>Ty?@oNykBQN(mHH2a3LGe`%DJUX#NWEikJWW=B%{w>6Gw4CcNX*$`EhL-ChG3}d zkU7B{_ckzdl%s96EpD#V%cffuog5VWG5#rmwAZHVc9kNv+iL20LEb^Q9Y{OyBID_a zLB{VC2I)B1*$f4BnS=mU9pLe^hhluED#P?`dzjHjSqEtR9jn0iJsu1OTqQM-eviG~ zBl$z=wC8J*+R3#ARa*243UJV6ha@JEUF9pgDVoE&zAC>KuutKPy3&KF(7i8dK zN~%Ex?5D9SYy4dTLcJ&H7K`Y6XCS?<2HJhSl7mVRe;e7R=8ycihi*?CKVP5#edf~P zrM0iM6wd+S6r9~M0B;B(tHQlRuhbih;5;AUD^aBZa)eC2p2{m-RfAgGMSi9tibng& zAEW^;Ltg7Y4H{`Slecnr)Rdn=gJISJ=m83*`s8V&M9_83DMXMb^_lC_#h5D7)pTwG zU17gZo#|V>BDxPYnSOuTmGC3*51t5P5eLlMvqwMsL$E0~e zy(TQ7_cLV038!XI8=-YLlGXZ8B25$(K@f{^<*0AOSg&eHYfE{=R-snx+c$26O6B?D zRg?t^Hk6MN02gN5Sdiy*5hNM{NMT5cnOax@7@TJCz0x5y&dGRMc9`O z0JWXNViPG!7i3H|F7tV>VUz@H=pqh#Lg;AJQ0Fu&aH_5DpxBV*9?hB4fF-8TP{Hj7 z=vS=VVSAH7#U^m$3R7}GbkS=UHRp&3!7^piU$TG$BhVSv|MZ&DQbM^4f&AH zuziehHl%`=E9jpGz)Eg3%xq0OQs1TBOMHWENLULr$qpGI2Yvn~qa-nes3f!mCI4MR z-Py(=sdx_O5Z*e25M>3J>u@)2KsU-yX-m@arSCL`Ima-Ekt$P7yE!c2zog=^1mj?2 zj6*9D$Bs9@?=e8ucJUDvfgs=)y|x1e4!MEAFgPE8z<4~_ z-9(sAzu}o2MC#}{lJ3e6{GRi+&}PuHRs~~W&6(>l>Tv;P+Cur0npDh1s&KStD)w6A zaLlQg@qE~_9l`w?bl!C6KBsWXmXdu=-vci}#@LSHl=Os!rL=pQRnDoC0>V5i6QYz z1X7!p7e9M5_alK8=_*iNVF-Zmes8A)xpa0ch zTb)aVzd--sQvMmg_Yc}|Vo97LAh+=7!WY@Cd0lEPBIU^(HrnZg21LL*DBSSS+B- z)q^-ooP4m5P1nw4*$?|c*t&b^8-2ApwjhFHdCwme85wpz?$8cLjr*Pn(6KK85O>v= z8K+PnX-q0or7Zf=JcVdgjXg7NhMP}FhPQ7)>6}=WiOL9fV_GcrF-QhT4~iTa^ce*# zGm`dqGPXA$5OsAxN*TuhyZCk0QjcU3#!l$y+gS~|{ZX}NEiGh{qQI$%_+kC9;rtxe)c z;Ls_Lp6h+DI6LAelBS5fk+@QCw0f9FT)jgIrD_Y|t`JsEcCx3fWsIm)x~UWclT>}3 zM{F4!V{;x2dj^=-*HF%Jo^89nk;H1HJ*{xcRs|wYrYUF#yYOj>TeClc9zpmXY;?n+ z$JbOuIF*5pAv7^77tWE*)H)%^Y)=!a3ruPfm!7L@Q*nw5YpFJ@d4%UhvX;SBOu&c| zOZrNPlaRS-oPdGvNh-eHnZp`UoBRvr^)-`&qZyQyF*UHsm%i*wcPzSLDMlc}(a*?rz z(nl;s5DA(9T=r}?H%v_y=YpmT7>Rie24}OJ!r8Yd9`Y{Fb}EU269bSh)zkUb`WhLMtkQl#XvqbNFhcl zRh%AU#X2eH*s;C+tSArRp^%S#o1a1xfU2V2r%#@j^C>SD;J*q)Y@4v*;ynT#JQY%$ z^avEA5r;LEWWyc6We?V(02w;*1E$!}(b2)^L=A&5BsCF8I1gl3DD5sha~R-9v19%!JQF?$U+B{lfA!iQ2O z`TLruNbIoAXa$a`N>T=C0&u1H84(h#>hR>hy2VRIQ5is@GAREf{PEom0brY}q}V0I z&lHxvAJD}mt=MH#(BfV|(!$PQS5vQpE$A_Tv^-?qOj@Gs0BR2*@2|&4$t>sB9}D zP}*QF!4d1T+!$P6i~pT_VnkwD7jbcr3brr~qwx-SrEfYybOU{HX7C6p7z?mNh=49{ zB?CNTt|BjYj`}A_F_Mb<2ulop%ne234x23B#9!mZcbzfi=C}qj7Oi>_gy#JQ7Ig?) zpTZVLntwpl0&e-s(|WJl*(Ar zk1M@4h<4dS16b%pORuMSH|m~md>z47gh4hr=0H_XErbG+x>V*m5fkUot7)cuP@)tz zo~zAr!xdKkQZDk@riK>3~+S zwVb(>$s!A?_6l7fx0VhE^@{X=Ffq*zmct<&_n&d*WJKj-OAIk63^+ryx8X#%A_b8p z17&ZaB*_8JeXM(22^m}Rj6_`-^?>`%0UQjZT-`iM8je|Ow|;$zNR}v=w*SIk>`W*7 z`NXgrSY_j*K9FMGXChuYQ7uM(V+wbwG(520V=WQP*njaOYyqRDJN6F9o63ky5`~?x z$Y_LM%@qiDoF=OK0q(_~V2J5Vm_jAB;VwQ(%;}1GFA=zu$)KW932BY@OVyHl2~Lyw z==SL(a_^z|k~vrCqqn=i{Q>BzQJ!x3a={K>kst#+P-7rGE9^gT&u4eP|$=1E;3J;HnYETk}OBR53 zt+n&jh|0GY@yR61)jQc?KxIsVNpBTf;X{ixAf0;f?mDq|WIYy)&Kg?IgvJAZeQ#=3 z{ZqbTk(If}2?!vhaxW*d?cEhQK3k@XvREi}9oKA8hX9Arg7Z>AsERRm)e{1V_;wh@ zLedz?Lj5^OY~`aHOwYo2;A1FQ4TxXBE5z~#7)K;wK+z8xs({OI1dygq2VQ)WoKqI| zwJD#PSL#!*j3oLYlrl*npVFP+h!jLRj_6}QYVcDS)Y84vKaPz(zNav4Fmleqk2eB} z#$Tt-D#rs&(YqGY5{dlIhoBVdji<^q89Q}@$P$}rcb#l4JZUel7Uc<60y7o~444CU zm|AxNfl+KDE0RsdEU>(ZjlB}R2qI66@M5cl)f{&JddD0Sa4)Q5O~DttbE_$*-Skou zMe|OljIe~d(7Hd@@ZT4W}B9ko=wxn0=9TEn9%ZdXPzGSX>(6VsMnn zwp6f+qH03ta3#-E$?EQX#OQ|eAbI7+|K+ubmKLcQBV@P9GF9 zHK!Pilsp_pw-h_VI@W#@=2vkV-A{pdC}fQa%RCZka%pm@bExH*d!4oJ${#s*J>yU- zsYB~{CLNIe;|ozYSU#&>w&F=J9CHG5L6l-4-nfK|eR2s029Q6s!sZg_k%)kIB}nec z8HrQUBLi9-ZD84{?^feLzsSUNzAra$FDS(8&&b6Hw4OkC0tm$vBjjR~G@)QqOt#-! zh#hz){lW>O)KZ-Lm2DnrWSvZC7iS1iLZt3te?{n4e5rN07>Hjn#15im{Bwf z1ilutL0|)t2rD7<35@}*N0_gIQ#9)L5FEhLK<9t*$Wgk~LasF+G}=l&l!;r!TAm{6 zn_&emj?5|`Gbq-*9XAU>gs;_6Wk1Hh$$i7w=Ixuq{$W~aFYvp~9V4_a^IpJj!Z%In zVEB=PuEb_()r_&5$hul)-ZfIZI=^UyX8d!M_KHN9`%iP)iId+cj*`_Ct=%P-@F|tb zI3~WJ&!~55L?g)32DNKRLyBMQ#Y0;I8y;mFyE1f5CnIki)ouhub)H%Y>bEE_#llg- z&G76OQwQ9p|W)Pc@KJ)~1$3*n*REvFcz2)6X31~lRhJeL83-k13i;dnSn zJYhbFbpnZFwKpOf^C<}S`{mV&SFG#|kq8IkWRX1*k(GwfTCWAEJSn?9ytXg1|Aix4 z>QcyaNkLjf0^jDDcfqtZ-5nyxxaQ-ABM?81R}ijauL>9)eumhSA=!dk>RLr}APb)% zc`E~?fg6aTsVLVkoASksri{WvskOkmn}<-bbF& zV$%0xh$(=Hl@5Da0H%aaE;)L+u?*OIWVwx)lf^BqZ0!X3O_dr|Qj}rr02>dmTU?K` zBUUce<;G<}tj?o+CtBP_p6DPj$+CxO?=&tqC9qs$04)eKJu;5uA9LgTqsx5Yf>#B1;l`0)rl`VjyxNLpAXMIhV)nOPA}(Hg1e1o!Z1b-X5GgdpF5 zlH^$~vK7+t&bEZTEP+NWF$g;V>y%-bS4s6rme7Zo!Thl)LldK`%t#w7I;lrdRTI4( zicgZYbQ}*LB@>6KKn6bjF?Rx3iuD=g#71BOy=DR}0t}r4Z_})!V3K3BM67RRz%e@T+6KZ|%ThPMt9_?pFt*;CXw%Yv>;OB3NdU?`etr#cAUN zu!OfH$~gL6)mA~es9Ty$IS_Z{b2<4O^sUcP+L3YM z4memqsTK^N>#=WYPlMcHWDDEp4N)!i#a|#K{zw9>MQDar!^{96s{==r78KHY@+?|+ zoD394Ed(SFirQRz)$h?$swVuG!UnVm@g+ulK&(rs;;Uc)73mM*B@hNblNt}L7r-6H zQtUI_AQiLtULdwQYC&FCj3y{H!byrCNd_Wi-wFwOuCs1<%SkU2li}rxCo3Jf3~FE) zj%W~`45U@wmE^X?$!&A*sF!o;t;Y!BP(<+inkI$ft&tMi!6rxF?WOaGI^6 zs5N2ckfQ~krXib{@hHYALat$>^t(wL5X@5&DIqa?WNT?4;170}Po-+JOg z4$&=kq>;wjU|Ij8*JaGB=|on<(+>{Porc62WVKzBG>XZt&Lm`LAW5}sH9KFGB!G+A zzhW*140@qMQ)^CS{aGr{e?m-WA<}H9rz~Mh2`p1WvZi4_3KE&Xgf$!lAMa1;WfJmI z!C4gi4&=foL=mQL4Iu2bAv!uV4JbFdUtTD`e5ukRmlhs*ru-8dhjD96aEn7Wql)7J zwq^1W!b~-o_y{zm2-3E8>PAdD z27&tQ=p2mbGKg0Cqp7B|mFs)GhCI0?-r(*&rC_UgrpAs*bICSRrml0uK3>U=^El*n zuv?(f&oC!M|0WDL$ zwC*+#O-(&4^oxg`XrzlpO2rh5M|zR~B&&j2;5XBVj3}md)dftAEm3WjSk03OeB@bi zs5R0k#IVL@-C22wugzAZL(M1pUMJPO3_(zBp-sc}j{T+0I?hNcMJ0Pqgx4LH1c%^| zu~PF9`?-OY=5rKiQ;-2RlGu@XORvGF^I}xoc;%zY*R&Mxixlz0M&NcLsHhl+>8Fx9 z5)l$C*%!+z`Xd?x+_UDBCN#u>h!=h~2o^|4fz-v>t}l>rKQ4NjqO6cLsw?E*I&W|G zQoA3+hSrg2#f58vA~B3C4vMeszWd(jAEQ`_4S~`~I%2}cq(c61OgLbS@cZ#>WfyKh zvAC9)xnn}=bvzH6G2#L~2al-X=7>qs$OB%NkU_UVorS0X3?<5!ef>lERJStA4M*G; za6N~q1H|j#m>Jq5b~M!wKp{P%AlQ3^-4JGq37n4^vYn8bRAlHH4}gStBsG{LrXuVQ z3I#$%yq3)lXwV;M=>BQbf|3I&RfJMHSTgi1v7Bd9xZUIcEb|`V*cJ)x1tF~pPXr9K zf6io6ihPE==FA)pDJUxNq-E_w+$oU3O7JB`|B|zq2x~TM7;0A%<5q46q+zoFhE#am zv~+0@3S|SK@69)+(9JVIVS){S@VHlrqY;xv5-E5MVVE@pE~1dSLe#>h!>SWzFn#k= z7NoA3mnCAX=t1a&ATiTa?!oHvNS_F6!24CSZ4Z+UPSpM(jkl~R5JOY6=$4*t5%Wtt z=Hmu=ph){d&}~OXN7{LY8N;)6RqMPrNa>0D3luvvFHWmV)Oi~Vm>w4bhrlVrBIQW< zzhP<iRf@UlLIqV^C8~|eZ5)}c! z#X8&zC{hZ=o3hlm>5~#wFm1&mxPCW%Wntxo5vHAKbkl;f)Cf0Ou9})JtY9yxeK@yj zBUoLJ6HWEAe@!SAs37N7uewSgqzSn4i{b|X)Rx2!MVPl48WW-5c?b!;T=1BKeDUox z?bOXa*aZs!;2|9B{s$V3)p4mLjF6Ht6*E+QATh15)R0CD@VtI(448o>BQeo28WTW5 zlsO4lkO3X4asVU&*t1w>GWpy^wDn=XYNig_VUX%r8Q+8kDI79Dkp@}$BMB0bfDAX9G^jj#`C+e~{pUL0H6%l`AMidZoj*au_|oi|ix8=L;Y+r!r)8 zoOV8i8oSOpm;fhY4n#@bj~?TI#Kk?jVG->EZ^~1jDaeNN$fIU?wvh4@=c!2RQR7$q z3LIwR;X?I6Rw$Gp5g(7eh1wW@3J{f9b2?cw*ASlxRoH}PD*@7MZ_EDnNci?g$b^J= z=rWjce3s^rf6_)AkLTZzsNY`Fzwp%RYsp=+jwC*3Dt|VMi4QWwU?nOz!qPG>hm4lY zs2(rGDKFvX@G()ZQ8+x|b~5jfi#zO<<9M;`MX0GR`|To1_|z6N*vSfRp_I-%`1z4c z_|P%lWHQr>t4bzI-QZA$92e4?RD$J|n6r(sl#R%DVm2sCj>OjawdC_5D~{Je$*f(k zvH7)@Cf0J)?&?oaOxiZF9F2*!t(!{0a7xwTSmSrKl#j#8qicCpffuzulfDQRTQ+{u z*+}HrpdN8Y5_0WOR%ep+1&m39QvG123K+@&BKk^V)bp|mUP7q2*e|>}G6_bS8oD7c z#^6VhFr%v0UI|kq%>)z#P3D|J83<3bxfLF?w^@DPfCC_+r@{`}X5=T#fe5q^k$}Q7 z#~N&9Gcq>F2@J9)qHb76lE+Rdx<7X>UY3AQd>jej()kRE%W-mAO~OC_Lz@;4en9lH z8LqXojabysjyxqkgttI|3YiXFBQqf|1mLPTfXhiLb6H~IT+QVg<>Dlafq}{@X)%(C zj@*D^xynOaKI`2y%){|3i`B;4B@d;lh07p$uMu6+Ou)#}1QhigYzq)D2=UMi$?ZG* z6Tdm1pv=A&`@tl^6F~NGdk`RCf!`=Cl2F9dxP|=8qxqsv5-ZjSscaEav^$?7N&ps6 z=JWsxz~v+@k|iIXTbmkhx&!X)1NZVL{g_QXUj1sQ>!C^mjm9D-g&^4}bUP+MB0Pz} zB3&#I+9Io@>0|hO6hWxyZc3o8wmCA;Q7o3C&6Z)sgj$1F8WjfTomOWc{vdRRSJf-Hx+%}U z&a9*-y%J?yiBAZ1`q^nC*ZbeYM9&r!fqaf1K@QIkKrS~xm%V)Y)_MSQ=~^1ZZkEn; zI2v?+@;{V09ZsaW#P`H3&M)`?H9*S0YGk`w%>Ci--ssIBVl*~|`Y6;|&52VerKit5 zB9vMRGw}ED4L~EIts0oGn^E?jj5clu2ZUmkSLIhT!C!{cdymG`nBc+;aKx9j5V#C> z8=f^5tnjUUsOhVFV$y@e=N^rxZ3+#iI@55+3xR2ns+b>UHBDTSG|b4qpmgU_=B^K7R(alkjS%-Hj0;|B)>sc3b2Rog2QfAT#b8K@lTNrY%5Z2?ogI2tyz$Kskz3QUqy` z_8F%~bdw1t#0~*Y7`Ikzd^-^>1!B>QnZCdyRlryMRE&y zF5XrQX)*1p*5#9w#e0|MgDsi+j-7yWsHMw3!?&Hkb=06h znqG-_qH=6FH4&Ugp3BxmffPYOP|;V(?arPq1b=e&Z`B$`8K-bt!(luDKdey%xGQc4 zo)~Pzo&XGqJSe$%xfZUTQK7_*ns`YVlgh`5;5d`P!drnEd5LKCo3I?rA!2Rd5`f+S zCZLs7gmd>GZhL_a^IfUit&!l1{#Y32fT;sRcC|s7ou2TaU~~&jEsz^xS_Jg!$nFEE z)$0(DlZ8$Yb(?LGFq4h3)7W9&j-`dJqwfH>ZUMIFi^%v*3IE<~0dFY78n~#v7a{<+ zwNfZ#LxTVxd}>4-EBQGVcsR&8!gMpy)0HFxNOWSP3`ZlS#L|3tyd6s9Dg@slJDJ2I zQxfhG4W;G`3~21858`#C9G6r&qc{0nU$9{se!m#s_HqwsW# zD|Q3US+$2xIWuLOhSmd=EhWtSg_DSk>%QwxgsT=?yR;S}&v-W`Q(MR@Vd*@@gt8VOfuw14$_jNJuNRUL29 z1QNpl%xyvil(AXqiZ6?z@)2@}qN@|cZYtP?cT`gN`KK^g7t_p4EhwIk^bakk^KuLb zpa39$FK!kLK#d%nZ|LCxum|aDZ`P?O&A^ zB8d2Cu2CLME+=3E?hh_PJDBZk`N8pRB!Uz;kKaeO24&zt4yCm1V1#g4MMRWXFFlku z^??%=rkj2)ymUfvmHyh5rorbCn@neG^!VL0mh8m~2>&BS)gyo;4Qf&-2mXEY&AmO) zn&097Qmifj@biQy9#*!w7VOc!b*w4p@OT07(^6;9jY*oaCgwH<&CL28SHr*yH02Y{ zM#7=sR*FV<&O7aEC3hMO5ESA6r<%kjtSTaktn8clqfR`p`vi#ncCcuP zW}lqRrKYf#6Kd7gBZ^wIl0J=oxefj=3I@0tWuXIDSxp37wRefBJYZy`;cPtW0a(L- zs8VSMS*d71hjs|1bfq~MCvFko0#2%bh3_-vJ)Kso8po3wh^Guq5~XSDA|3d!Ap)dSIFTH+Y$b*Ln(7m%o@mxzC5y3;u&ow}QZzB_z& zqBh3=+b@DIbAEioE~EqW@o)=!OTu`EGxS=faBG+7wP_6l#1WY`3WvW$jc({wuAUr5>_aSPep|yH} z3suDo0m_FHOca6UpcKhMZ(3~H1`i1HTDHs+1aaR3Y{9vfTUR+_NZ-+fMtkuFV>jE{ zuR}gzb$0u(q18`d8Yp#{xatX*0$>|-S-@@NV!#Zaq}CYa?>}`&GaRCS?G#fA$|p(;U5kIbwW8=T2FWaZU@W}1gNTs=ZYxC^f02t zfS~=sdKluQm`qX;iSfK0g_8=XtSKtPD&fcHpUN^L5ExVw;Ag#0B3$$12drMNy{ z#oulgg&1(u{8<_D?}4R3HYoE|C;lyE<1MWakpa=H==|b#*jYE&crp=&**NUDf6guoYcw(j5lpVGQ1*%>^gFsYU z@Xx6u5ZbrJQIUjuury?x+Q6+xoF~&V3ygx=+_b-^;3F$hgk;fHfS-|cMnFeV1#(Yz z0x|%iNXe5cC~T1=WXjT}os)C0bjR8s+q=$HsG1r9Va!!cGjf8sG;7xlL-)D>gC-om z%7Ya2S%6~y;KnJ$pRZ)BRkD4Lvoy?zh4BvXPv)m;e%UJDYXe|mfEW|;6eLc9-%4hQ zjS;F;Nf96hNT zENqGV-Zc|6dc+n~ccg=wk4g0J9HWb*5w7f1CIe^~ zw39sqD^`u1pSgdmv+UyL9@&a66KsUWT_}|lo(^^Zx&s_2BJe*I7&JIQL;30nTd5Jq z%K4z5f}8e(i%KQ9>1Z7QbAYbU$-p4_%7kVkOU8fRncM8rjo4pu?J$#!dP{+V0C2qt zN#{ue@l!uOR1_ktBhGo7c))!WfZH)alwY^kitSksy$#K$#RO|*RB0#AT}SZp(+1DN z0x}U4#)?6eK%|aM4EzAkNQBCOBYaJ4-7`0)diuihqI$(D9I3GBNWufSoGXBQZp}rC zc({Z%ZZ^S*_=E+NV2(fpPBeL;{1jkQOd&NHrVyqwK3Gsl0XEewH@Ki~OjoqUP8aH3 zL$s)t;b@u(nZ)h}y0X3SMV4$nOE5j%fVN6%bl`Brv!@gl6l>LEmH%e=H|O_Gkxpa2 zVW%LQkn!cD{ymLOO-@VRYuveLeg6k2R83Ytwm?)N$%N#2(?C)TI-n1ohKGQUA;5lR zq9eN@$}sb^Ih}rBJk)0$9aBS!k{)^VI8ikKV)6IOlh*48q)6e-jyD9ZNR`I?>w0ex z?}BFvEXW=OA03)|4T6b~EyRzg3kE}}(%5|7Q|A0a)A!dB5?h{p0WWc4NeW9uX&O`D zbj~N!49(!Yulg@NP$;Y-u}Fh`XqOfv87!7hL<1&hR+HM9eX z2F(s>bg2((C?A?iNK5!BIYe}h*w5oiiOUC1(vVHz~1uI=13_y|7h6> z=+UZGTCMftHI-Jb6TRyJkT}7d0%}D;31RCj&;}P-!l3wRpdocqxTb zq7ji9H5x7%L!eyCaZ2#J^6n# zpQb?>e|prXZH-9FVAU`M|5h^m-^|F3?&_hg6g)IVr_2CAuUkNrIxI6084)W$sfD-9 z!Vt778mO|nW6qS72ZKuQ5j zIpp~2OA?#W6T~?jHEV=bW`TkUgMb+!00LQ@uaGvm_8&quBuEZyKu?iLd&p@7tR?1> zr>ogz*Hdc+v}!9+?3?r0BCUJu2Zt%uqSF3~T=M5qd*@D-r{5dca=1hpkW3~T<9mta z+ff>gP`m--j)vV3?!+Zw`t7$tBg+O z<=RtIF(0PLoQ!s*4NoI-+ADia;VGO%L=8}z7_3kcXWQ;Q;)76|gplJL+PC4URD-od zhm124Z&}=mn`8a8n#i)!1s#Wr<^XUV#xqLeYuWAOmJ1i9A*vxv3f)f2$ArJ zrEIuZM3Mv*D{6&!L^ru{T6skaA)^J?PQ|KCY0HHBJ zTw5T`gphbh)dkWZ6>0)RgqU`OcT9XnG&imUP)v`S#T*N0rBWZkJx;_SwL&SG`7z*s zj9w;Y0Na*@R{m9d*7-_rror*NM3%Ozn9eK+dmu1jn@^8PvFsUv)0e?9A{R7g`(jMC6E8{(=8(5N+6!Ez57M(8|^ckb0o$Kp;-3@TDxi3w2N zvLnt7c(^RLA4Ai(1RxfIQQ=7Ht+JM@t#pB)6ylg#7vhc$Gc|D6?@1rUvui;9k}Zb1 zMT*izShU$m745ZJNX6o0D6uBoK+f+w;(u=DLLY6X^_qlN&GdMr0R4Cf}dDM__mwtUD;pOpq62hR;DFjzd1Y z;Rz=QMg+&(ql~SgW_^44w`$=?+4uk;VnY8+GV>T6;nwmVhTMF9gO1}qDfOT`Jc5Ow zCTK(HGjZLVGy4Sq*`RfJ6%mEN;n++CZZ>!d4VPjk94LUPdar?|H(c5(^(->GV0jYC znC5?rL^5d!D?-zT5TKk_8C9Tu(y%~@0SR3n{&mL`6455fN)}vvgz+5z#J?M@}CyVI&b>Eyt>#$xpd{K7OC_Y9O4}ke?4e1BB1#M4$9+&8n4` zzPdf20fJR)4icQ+zqB$BlmS}mzi&@9z-_)_^*U)&(iA>tw^y>#(G7r)9=Xz*@Bb*iq~f~;H`Ip`h+Yj5IWX)sv> zI6p8}=gSC&4BQ(kL?yov43Qay3b6=(A~CH}#^2^-Z48$%2oL4D8Q*ajZ$xlJf=>&a zFlOw}c&Uk2Jm$*&pfFxA8(ADtiiK~`2P|%&k*$Z~tr@)qE0lu$iP}jRKx0P;Te?}v`~Q0U*6FLjY=ZPWm~4O=Eb z+>=i)DG@LMC~V>|tk~bIx`L{8Bo#OCQGu#N&ZfT_Nj_G~&A85`p|?Q?)JU{b83@hx zgblzN01LjLN&t7(4z(76pf#u7mN_9*B4L%QAL0U4;z0}asCCjd zP;y|j6zdJaUSem(6&2S^IhK9XEx!l4gA8y<99&2KS(E{K3&cBsB*KZNaZLjt^(5F9 zE0R;FFq;0=BM(W!R^47H%Ryj?gRrT0nF-jaXlO>#$#ghLm|UA|{-MF9;*f~|i6h*P zga1vgpJKLT;x1l15!&iX3QDs8_R}Gfd^rKefHDcZ6T%3BA}V~{1`|Nn3^eh3Em_?% zyuk>FvUS2DICZNAA-yN2u2VK6ODSzqVbxXC$2iIltd*)HUoM)!1l}Sf0kghZ@9aoD zz(KmqkWt#QD4GVDUMRDZE&{Dq4|ZTB0ziFZ2G4Ls2oX&Y9*wrU_%bN))h;TauL#jl z5`?DX@f7=o>P+FeFg4j~CW_Du`-l50`*Edq7pV}l2 z&tQXqDjdx60}XuH-L^zTCSdXMc03&Ehs(Cyg@Z5K%!Lug{&S@|VL_?$Cn_rpa(W&7h|@))33J zoAyWzaYI}95!)`9!7R<88Mo7M@)a`%jtGIuAkt_C^CcT8r2>v8&G7W)#1I-hRDGe{ zA(U)}^A)(HSf!HCIU9fy@_ZQwk)DohNS1_%3vN!kNdGPP(vZb}++})mEFdwtBf{b@ z_>@3t#sm$}J0qa8j7!U^kA^!Rg!Rs4ps!OHpw|%)U|F zN*QIk+apV9V|5kVR{b)HD5CVcjj%}h4+s>czfyMevms8t)>^qa5OK1OtdDFkIE*!rLv3(5?&v*zvfPe^lR*tdfJ5xFN&k z@|{yh08ql@8o>()l{C+grvQ|&N5NT1NS8Q##6&}4@dPr4MciRu7cFKZzs6wUp8zL# zu^N%!Z2wvj>pCkt+6lpr5G=z!=7^Y0+K2`l!Wdc{N%)i)g|$*Z?T-`N^*FZEw4;*P z2D|_hbZv9dl@w?NY#cX55qF|A7bJNak>@&^?%9a*U_}Z!gORPDoQ>W zQwrZ3f+e@R)h=I^2`3?$gn=76!wIHYg$iyCGk;Uy5j^8O{|gh&;X2w=mTRQRMDT_6 znoF$I*i1FBOJ?k6O$i~jO%3#taBwhIwE=I}YP>Jwgh0boYK$2Jt89Ne3z8{oCeRCH zSojtpdst~K`4t(^4j~I8LxqFwIO>z4`d;6AV3^WHv`JodA?vihja!!n;2HMh(eOYH zxV)}Z%Qi5&`91}og*v4x$F#Wd`E4Ac2s@~0G2m?zI$$OhWI@9>uM({&qHXw;(>Y?? zeLneGuH%N;-V*G_0nc62D(J{p9iJM&PGr14AcQ1*VP%Elg_;8m?wH5}G3rupYNeh= zI?Sn3$Eiy~(Lv9{8p^JDHK2y_k9JyaJ!L{`#YD1rlxNnPV2_wbC)?MA14+c1zCERZ zQ08xHgKcI~f$TpR{wPxo$bdsVV`Kyd#YI>=P?k;5t>8#m+HkgNTF8e4O4G8gY2?)G z($R%JYbo1WwOwmq5M&}P*{TUzfzZYKYIf71z8h{FCq2c+5gq2o*Z$u@p;5PpR3CUf z)Cxd_araoyLWqRN+8D0=kE2due+vy~aqV3*92~kesg1ysWO1)Aq^Tq1A~UJ@Tw%<} z`wUViJU}5Ts-0ZW{)d6#h#37g1~e#HFAOyp!XvbwQA#|y{VFFp zK17aw{GU0bk3jp+ZWMfJ{7@o8R0fd!5C9X_%s@dP7K^C~NZ5;X0L#_+~m4I&af%Z82kWMu;>$JAdP!X)U4>+)occ+!K+nI6y;bW`3hunDIqBQgEC! z8h~&UZcXBiXzN(T+LxdzLVzA4G&-*^GSgFWQmuP&Mz(bSZ42dKA{yZFfIef&TMR*Q z0EgxwIKFEixnPRLW-}^CXmLkEU0KaUxLO(fSq}WbFvn}_DGd6aJ{v?Q6IyeLYT{r<7?=*IRG)sad*XEvD_^*$2^ImMJw4}( z6t@c>z@Sy@NT;Y~$A`iIxK0TtQCFYBq+Vu}IGr#J|Gsb`p)@W-3342rM&c2oJg{vA zc%r0xt>ILyB+Vt}Y)coJnCau`)HvkPBZwqP#ApOY9pR>cWu3mBmY1P!Wxqr$cIXC& z5;hc$Hy2i~WiJzMm*Xr3=T}s4p0LhF;GZ@_Rznu@EX71y2rS`!HhdSS@z1u)sr z7$=}*&Anl%Ck7YF1VA4+#=vP5lcF9~NUF4@+BlBW+(=-l^dLbKkhTdL>rAUy7cKT+ zkW83?1)k@~H4wz(M?F49@s2|4^WUt-QRM%BB0MU$qvC4r&^BK&lyZdxUs2)NikrW zBY;l0I%*sy`|LGv^&?}wH5r@+0OCfX8xF%nEHqt9okp3%p}5oTW5kCdE{+*UX0P~K z41eTNes!&W!9~VfKuOerCAubCtrZ|rbO0E8qA*}y+18#KA^*zmr6~OXS751hlP1b) zBWHpgrah1;QD;!_NRdll*!5&!4dXyHP>NEeFOZ0OaP|BcWwcL{6^Sl5gW^V*BHUKB zT9hGkrm>f_xhOM@Gnh^hhQ}IggE+`$ZQqPCMLoTR+?Zx0`JUNG{jd;^PYl+A$MMjz zHJmg&r(PMDyXl0M;|xpCnq1FuZ^{cwZ#<(oFOEHmnkI^cDyK)&+^&ZDKt>! z6B6R&V9XO68y;pS*~~{^YyJJbpvqX|oOyv_93v&pH?>ZvZK@BTv@jt)nYcm9bfwMy z-Q&T#(*$jhfDLk|d{y-Vpj=DssdaSJC`b2N#4>{HPIhX)`W{OF08#mRG`!3yPUO1z zE4mMFD4mjdW<7q>ff&{^eo?#}|JK`40wF~lLY`~P;-CZSO!~Z+2t4YL9!{J=t;sw! z@I`$-9BQmA1~B5+lHF?FCIsuj2q?EE98|&@#Ab+Cn1N97cxlicKZ(X9$dxdIBN1`e z?O@;|ISt8#2QwfceI^PxxOOw-!a^FRR4z=6I=S66h%t)1bdjX>hr?$lLm|z8jX`V5 zCU!Dy3KKO64JWj*Mxt5NoH#nu^O4AcD2_mh$&gNWtZLB?nveV9a6XxC#v zYZTKLVI!e@HNN0P#{1}-@Ms&1g+&ioKzK-AAytzT3KyVlYRRC5zb+e~;1;u7>Do_2 z4t5h#RIV?P^gw5z=Jo-F-kEi?5Usbh`^`-YUBMv#H=fQ=W?1*6SGq0R&LfI{728d? zM$rc*+S@`MYMSAP+{i+Uk%!D2QamIm7PKz`RqAxXT)2>6o4gFRmW#zyN`#F!!n`w^ zboDHsR@=|gZKD(8qj65`LnRqCR+y354kN*@8;mehB0nFbZW1`oQeEt96LqCCp)u0?I9pwu}XmCXG zxOe~9gO{1`Z8-@R?6Z7`+wBc&0X4^3SFaLC!1fOy4HH-)EMGiG@gu~Tm*r{M@e6&x zGWFtQwlreN<2*@&e<4+^JV=y&qrKl7wW)CV7)0kIkTft5?psIy`A~8Y-+bXisl?~v zkqXv1{3YN+`S9RJ?Gno~o|-4UEtA0w6aHx9Z4brAY*)?GSR%;9#vl~yl5^WZGpF)B z!ZyFfAf;WQ2A05{+rE8mI3)Q!jU$8&si}Z4rp5@z2fx4olsAuWnL5OuSxVgT~vW+$EWrRVB>^9Hbk@d;~AdaQJ3R> zW5rNz(DuS^cmWEhCbJ35z-0OSrhy@BnxoYM2#%{XM*t2` z2ecL{7I-VuL|BhUSSwQxsFIK(TuK8aTAL8$RM;1>13A8WjX7=d?}(v{vb*!DetgE_ zE00`i8)v!1Qy%7v%kWk6-8Z~~8118yS3zb$@S%V(!Ry6v03TOtjMOdWXf>O4^#N>L z5tZy`%?+EtU5J-_YIwsDYnZR-ME8xqm-ZqJ2$^O&Gm0Y{6A2PgZ2D1cfjg@jz`zLO z)$q5BeEQuHOPZC_H1U&VB7%H`p+svw4moI?0?7eMx{MamY==(eq5#~Z;zg|pn}^_& zj?sN@9)_4Gg|mIpQ@{Z>J0y2@VlbD~P9D>TTR-3!p$OXk08TUsWyHTkp)&H|*o$#@ zlTBZii4QG!YEs-Aej!NbHY3?gBfqU8`67sxrNP%bM(_1EBS zdj{PFF$ao7+&WcHbBtp=#R!^%5`c^Hl3<|r0LO`cdYTf#EFcdg*DUgF_shZjfb^4H z-GQ`Cmk#`;zGQ#HOR|$%A!8-vK2+ z85jP4eE@Dw6Sms)u99quE~OAt%23Csk}`os%c~LcrJ(AIeFC=|cvM{i-5gE=9km23 zQTar66G-Ksr6fLmbRO>T`BZg1pRXP9MPp+Z$0 zCziZ~U=eCX;#kHmPsB^%c$3Bp6F@X0@?kd#A8RNiA$b@Z$bgK78%|CGMZ&WGNK%$BNiV+lBL?*q3{HPA9t(-Xr#yl z-e>bHcj5AD$@z%xA`y6ICQ^Wb2#U|R?6m=7$Vw$kV=|bd=D5ng^KMBR+2;CW04ugE4(okXI17VkBX~^ZK7nkW9%#b}+jufuo+4eK$=1*v%4M0Nu zcbX3^K#_>*1H-+Z=IV{AUlO<24xJtpH<_q>Aguf}l7lw~4guyvhjf>+7*K@_`^@r> z8>x@8nul_~fV+wVxP~F|GCnNOZ1n){O{3Rx<9TM|12}1|mfngIVM&r5gs7nsl%Gcf zcmWx}+bni3_lW{JF3F>dYg8=U{22o!PQg^LD zN~v&=i1A(Z69$YnBP}=1U9Pe8l(*P0${`Q{Ohq?tpKOv9wsz}k@<))W5E7=rU2+@%$%f*R9R&P>(Wq<0uZM)F%KqmcpSTOK}c=MFja@)blJs#I;K7O3MT?N>#zCmu`92~vpgl(G)E5T|+^?RmZ;XTPOiBIB*uESoLWu$TUOmPz^!BB^^=Fe3^?RCbe+Uu|) zCQ@G3C-!sHGeQW1Ml#}mvSqI>rk*sh^zzm#sefkli%X?{#N4G21Fgu|VH8^=uu1En zP~V9xdQxyD5^xh%Yf?{MX(o2%=?8$nI17U!MCalg7;d7yO$?U>P9aS0*L^))_e!*1n!wyM=YSwkpS7FOS_HCGw*ZA&B)Ji#ZK+6X*L7CEk?0dUFfo;!K^6wzkRABI07nUWCk)Nl$X-o{A;vS(#M(3EK%}YFTKVUKN{Q9>qs$CkJm(!A zM(jrU#e-ngj4vh)IDi=~yZR>dJNC))mH6bZDy3GZ_c3_X1m%q8K6e|Vcu5lY{QeZ^wqAv0P*g_O78Dq%bj-N=RpyX#=TZrZe4 z@K$Y3gc~4ihH{7OoutHT?O;uFPDg3NuVR=aMsyZoeqfBrH!VAkWj;dte^1ghP#!}4 zRa%21B@u@*!~9APP7`|H{&;NxYXInsKOkyc!Eaw5o!nE1Fp(R{1lhPFM~QG9Z%EM? zIm&W8UaSaxTD0VtXV~j)2Tc|x)z(Iizyn^vDKw0X;`CpD_Q4ifpAk4N%pU!~asSB48Wnn-Fh2e?`A&n5w4u0VU!%~_h z+%6UQ3`T^EVhmN#`sOV$41sVNgu{U zuc0B29G-m`Sz06YW(w0E?mEiTI|w{byzS&XhGed@{6c#xh4i{l7_px!Ty?m`CO$x{ zZL+4*lF=U#zMbES6IoP+s%M0Nz==d#i@(=&Y~`d2V%-f}2Fk%rp`)@0j{8zk5IvKb zCy9a{(hw(UMF~3xAf4EayTj3gS3|p*7q*4ey&EX!AyA>M67Rk@$8>O|TtZUNlZc#^ zn-M^$uQhr+6!A&Gm#BSK02MS+oh}b300QO}4xxQu7B9cl>^oOc&@hc!8@FtQV?fB< z+G+XG;uM5W8u>)V?VTM)_mnnw@LP4bx4YB7%e0=+Sr)lNxxn<3E3r-#MFZAJZOU^%!E4;0Vi zw~H%|K0MH`_2b?#VNSAB9=)L6Yh`rV8ge4NU8O(K5n6D3P9!TEEyNpcQnA=>{uFGW zM;Urt;zF5ZzwkRK5#E4NL#zUT06L}MR^dD$ZL7mPO63di7}$kS7)98qb)ud_sE|8u z>-)r)iL~feVQmrw5~7zPtcDm~-kx3XwB`XXz)s1*YN*l#1xPA|ej`%}7Ca!*W0Sbs`GJ*g+*QhO`QbMv2W5ovuVnKPfliwF3iA5)OLdT+7H*{Mn zjt-Z*h(o|{Z(sj|f;@oPC)c+B`Vp|DK*+iZGO@%sJzxIX-6F_I_kTZ&E z{m=lrk{XB6_|RiI3xn7~O&X! zK#dWK+K62$#EVJ`RCvmxzv@94pt?axSspW)Z8AYbJ|n&ZGOi|sy^-82N+6RK7R&68 z^VGqfg-X)Ll()HOs9n)kaew;xubKOKW{8`RSS&?^KO-=3UGWbJlp?m)}TJY3Xwe?1gSs| z7PQgpG*aL{Z}@;(iYK-pHKGswFFXxJw6pV3L_4I4OjwXoYe%>8Doe3xb?`iD-_A%*BHp7 zMu7?yFw`K`gC>6q>tX>$7j@)wvP1%O@>$1^_gKaSyv>LhDIrTTz(mC8dL+D=r2Sd}dzA)ZjRWjww~ z8Hg25<{F`%r6kA7LN%lkwxolMmRS_a4VvpCiD-koRpw>vfO!Z7q$smELi4I2v*&B( zS;UsM!59Uz#)gzwBteJokOf?kpNbUpu_bOpbR+~_rw9@VMM(gFI#C}Y$KV1z7jhqC z6^Oj=i#a>)AFlZ?x*eJ=l^E0k3V?V-IN@XD?Pvm}i*GopAmv-PrKflJoc%sO%{gy}qlcEnqA5eO)CAFAmcS4iTKQAN6^+JIv+DGh)*hiK6x-Um^%2VDSKmvjYBlu?ux^XX`xUg2yuxmXEr8a;mGuai%5)85eOl! z$X8M9K@ltwC!F5Mf|5?IuGA5oq_eu!;*_qshmr8b*Zpen%@zp|WtDUYY$lvitiAq) zNF#?9ud=4G5l%>K6!B1ks8{477eeww6BqbzX=uPV6e{Ay!UbO9I#@^|6o4zPF$>9? z7Jgcwudl!?v?d8oK?3Ru4^UG;(qzEg+Q=Q^#|%DIIHdTbaSRt9>I*aq!8^q?q$%P* zC>|r#LBxc178LOxXE~#5Q_E@5R*e^<$zGHKKN%Rb3knl?-fcne!+6nDN1oY#%V;#K z&DvJw*;R{Oh2B59ws`nkH>_3>BL>#8#8esvj7LcQs))oc7Hf^gOEYWd6V^Uu*O|Av zidiVLXYznh=Jp53!0XdAhbbqL?4C}Rt)TIYGCw%BbJgSg?mP1fj@uPBC*D2txC)>k zjp#lUhhPEdBXk(G7PN)InNU-=l?WqpN4JrDcqOS!tMp0K-d9BrTk5a=!wjP>0po>54VE)PqVs3xue-Rixw4y=A%r4*|~-YBRS`;HMs5YiaPBa095aec+%FMFN_V zM29L&inZs}fwTzTygfvM$^J%OmU7;J2N#n_)YTP~rpx!L133W51l+qVMgjTXyX98J zB(FX|IpIJF&cku*RAcZ@XAKHv`w@Kgt(LN0 zOGx(c!bN;c;Xc$flEpiUaA0-f-qFPF+pqHpwHsylq&8nRD9i^cSrg-emtK|*0I!hF zkL3U}7_#Asuy#Gg?4_teN2Awx@J>LqMB20Gf*&HLGO`ZGUKJR#r4+qbZx99Vs7W6 z5Alk=sV38Ht?2_*&@j?%M1WFM_xK=~OxGez0D$M>$V|)-7vmc{p{QX-Ip2n%jcC6- zFQ*Pcoj@5Oj;EZheWpiW|HpEWma55O9(J$Ba7ona@#xYnuJh5?J_%#O87#EVH9qKHJ8|u_QtFf zjI4cD2Ll0ZY@F_qAIfAYE$@FaDh{d?q@&EE0V;yS7%3$%CL2CeBY|K2iu|V_>HNSt?!dmW@C_rU4oq)q%uyNPz-P2SEV)+uJoJ`2Hevg3dw}8C~

      q&?RPE=9w1x!YBWbt!6jtga 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTN57F_W.svg b/assets/fonts/PTN57F_W.svg new file mode 100644 index 00000000..36106026 --- /dev/null +++ b/assets/fonts/PTN57F_W.svg @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTN57F_W.ttf b/assets/fonts/PTN57F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c48b4a6a4be2b744bc824045106187e983961010 GIT binary patch literal 384056 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�#Ith3abn?=*v+LZ)l5jJH8{$rkj0lG^L> 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±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 )5}bR?W2-PAuflSVyp#zhyaoOW^<1K?)dE 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⋘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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTN57F_W.woff b/assets/fonts/PTN57F_W.woff new file mode 100644 index 0000000000000000000000000000000000000000..4267d7a88c3387d1e4032b2bc905a5226e09fa0d GIT binary patch literal 192168 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

      6W_$eoTHaIw(HG*H^?A?st7E>< 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
      +=fK+tE=iegIq4eCJl+?)DLuJMU@TT4ojK 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

    1. W(^8e`NiaGK<>aEkT=PA3?8VjY0VI0Hj{#I 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 o<_2k;^o`0&cY9ih0EgB(g5~K&m|j0{{R3 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTN77F_W.svg b/assets/fonts/PTN77F_W.svg new file mode 100644 index 00000000..09119162 --- /dev/null +++ b/assets/fonts/PTN77F_W.svg @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTN77F_W.ttf b/assets/fonts/PTN77F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cbc21827a773aa1d06c0b37e06adc6fc2a09b522 GIT binary patch literal 475568 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%0D(ERsNJq1B9?gA91@$T@)y=#M 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

      G9H+ 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 HCyt`Y|zj2Q#h3n~Qhq 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTN77F_W.woff b/assets/fonts/PTN77F_W.woff new file mode 100644 index 0000000000000000000000000000000000000000..d1fb8f1bb7f5ec4dcbfd11bb50bdc7163975c50f GIT binary patch literal 247864 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

      |I@Ve6$!2XSekCD+16_!*3q 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 aZb%;JEt#_rAH28jWFe${N&?BqBfbd0u_?tTm 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTS55F_W.eot b/assets/fonts/PTS55F_W.eot new file mode 100644 index 0000000000000000000000000000000000000000..c8db3d028ed2934f7275370f9f63eb2a1f16a52b GIT binary patch literal 189134 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

      4Fxd`4GVql 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 + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTS55F_W.ttf b/assets/fonts/PTS55F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cc0d9088aa4e06b7103511d4d86a488ad5248bae GIT binary patch literal 430808 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

      dHRRJ?Av*sEJ0iE%f6lG_hsMC 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 z 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
      oWOFWFi9LvM#bYqKuAb zt0MO|$B-;}Du0UP{O>qShQH06-XPT2mUoxy00Tqi%p2V0KEQlH%^jlGM{Kj)%pBVl zMCC*qh!!y${BTjq*yhE!`uvGSNum{{rc zky75~7eAPmHD3t8*In>_5vOT9O3W3jhw%+-vzQEaDF0EX1e9zASazRhoS0>YsT+B*=5Wjzt{tuKXk)ka*De5Zs$S9rM5ZwbJwneB=q%^xZ6nD!xXkxQSL7%3+)xZ_xt}+_AY=?oY%eh z%1~K$%L4V!y5?KaG=8ES8*j4?rLh4 zrQ*BpN%S|uF1(H2`=8VJ;@4v7{D`F+^Fu)fOQMd!HBoPZW9i1>Zyd`-3~8|e>B5|8 z!?T5+#j}MsO{B|LLN9Wn_JryvvM$m`k@QL3*p7jq9Rd<~+*yO$uBEjfZ~FBw3YrA?KuF-notFy9 zN-LD6h%O_;a}=&b8k`E{A%XFrTLjSg@xeh?$nTFt{Qi(UJ6E9mp|7IC=PNHqQ0RP} z^cQrmb`pdy-Rxc^?G7yfu@%}B-=~A_(?R#?p!;-a_sLaRv%{YKoU%O#H-LRi-m|kKceZElro4Ht^j8X5^DW}~Uze9J)@@iLQTTD5c>loH;@!h-zoCw|fxfoh= z9*biH;j`38EHOlcv;Yyo`H@LH5CA=J;v}YG{sa>wmG)-)YP)U}6Eh>~Nz9*k>@m!x zv|>d&2GD2iFJSIu2bAZ(1+D{!<0CX5$|=^a!wLcPfS?D?(H&Jc+qtvwG=D<$k3_Qq z%^`#9{E7WrIDrn!_t-~qO@Z=|&CoGF!SwKZ$fOjQ51CdJ${6J!Of~|SPBqgjR}C%Z z*<86;^;Jn8%{(Q288-OeA_mQd_a}(8fPtVhVip>87O-&}u4JS!ne-0KbSv6*Nln1! zO5jKAk{*&i3lljbiE5c6fP&HR9~Yot1VEC+#qAD59=s0328L=FQ9rJsKtckNEZc-@YFs!UMfnc12l*nAQ%p;Z1VF_92e%`bypBtmglp<|QJdIxLY8{|Ur{S%Y}U zRn3x&P9yxaGdD+iD7-1s1N>^n5!Ggtd8lfO!nf?|k(&UP9sOa$;9$*{hfdcte*ND6 z^M91@&TX;(SH}~KauMzTcWP^<~em?JpDPnGhX=?zI(3)dMK=`Br-C` zv2@KVQY%>xg>)SQ8%AkH3m0NS{#FNs(14BmB_Y|QPND hf;EQ9ncwgvA!Hk(lw@ zcxLxW+VUl$XC%ai+9VX2{VCBqM5f$Jz-X$T#hKKe>+$oJJa;n3_4KFFEtUMqSNA%jL34{@-U!QKb+z{#|(css%%Q&4~Q`&q%o9Ju-v z7`so5xufXu#g{%kq3PClwe;EXto)nWYgW{FeUkx0Cr?_3?Z;l%!TCb%Y%g@TZT6WX5qgD<;9F%{MEXGU2pv>bj4NIA;jQhw`7^ z5@-5C{<<*L7I_`s#GUVAS6uOC1e<<<*LerngJ9cX6+8&G3s&W3uoEb+-gaY-sFzbj zn}w5Zc>$bso9v-w@@!W$cHl_Q?*6#NHm!UHPCCbZyJ}V?gPPx=o&64YcYh-4 z1X{$q%df5W0z1Ick|@L@lQ@~o17>d2P&0>63wb16%zYl9K0kzaGraI_vXkC(U1rRJ zzs7Mh_q}(avzrmW(yU*NbfV4r-CU^yBmQ=%R?S7LAq%$PweEvZ-kmFMy4?_M`E7oI zLA|@Xao6yt9%&i!!WR%**>{`0JoU;)<>9fzfACqiZSJmSH~@z3PONDxU68#4@|@(9 zzbD3PBjVyPULQx4-=uL0b3szBqDN-ZG=+EKI5c3Mu*Y0ILJ+LeD{WFhveJNWr9sI` zgOZg7C63EK4gHc8OWxH`1<$ckO^f&Fob6Av$R?KUYjz8Nb%5 zhY_W03%EM%c%`?21;7$u0|2fD&{Pd_uGkxPH21z|cjzC`AH@1ISk;d6)#S^Gt%b^Z zKNyE0cYtjNOMt-zr21jh9b(`@HHxdb!B(@3#uL}dJvQUp+NFO8kKKSPZ3aWBk&IU# z$J!%Uu|~fT7JUFM=tHF-ApRaM(9xEHR`{N_;KF^lu#cF0o#^+;9pxppjYi1*;+C4S zO8M*7WaZpfN$5vnRy_YIlJ}3XzIOXU4)Frel(kxdmIN|4 zpAI|+Ow~Q`kki2O0dr^DpK;XZU;M*$KRJQcARDNt- z>$;L+-^y5>`0c4%S=TXG;`a^2YuleJkN7+l&2?*66&K!ObCt(}Wj=3ZTYb2_+UIqw zF7!tDTei`&T&w)9Fbu&u|2rUAjzkm1v%w6)Qc`K3W(fI!-iBbe?FE==z72+=8`bGUniB|k?CFA=>)^d`}Jydh&K z_8?>D&EofpIoZWPt35<9q86e)qRm8PM>`fq(j^|hCBrIL_A0#oJ@N@Ns@Nwj(yfo^ zPeE+9;_GYm^uzSK2vzwNdP}pH0`CSs4CqMg2Lr*HAc^<=A^w10#b<3M#jx0=)gf#{ zrgeTMu|a8ZowRu4WhIG@mUFB6?dBfb9%G=5|Ry9M5 zmK((Lv&_H8&(EU#O+NoRS9U5FWn!6DcSCA;N$<<7v229^`YBLJYb+hei0-ruAS3!! ztU6=)1{_OIVHs)FwCnFcTlo}L{L=Do*s&JpLDD(O)F0r6IwMsFxw*lGv)j!IALDd{X~7ax1?8gvO`! z&*@*%>qatIP=>NC`ab<;Jze7sq*?|_Cf~?pf^?5iQ?~@)uO3XPaOExz(+=H{c2By<IX!!)8A4P3YFJH}Tbg$tl+ zp}LsDP>@5pyl$?_`v&y!r%Ydl9tNygQOUi}l&ev44a!2AvF&Ynzu6LDc1h> z;4ymfuoxF$FP4sK-e(359LXZ#`4YUwFJKiSVbw#ElBS@JZ%^a3aN17IBy!>GjIUZb0p+mB6^K9ePeefz|w6dwkGz(wr$(CjVHEk z+qRvFZQHh;%+0y)Icx0?{R3)sS5ejLE;6 zQTe?0#su)dJO`DC##EHn9S+S;=;M8Q!AX%4iJ1-F-FJaJ!~A}tuY-$CKh^T-10dO9 zhN5l390M~&(*A{Tm;(YUnJyo^mv~rE_d#&?vCG&Ad|1cZLzd*f!0^Z7wn29e* zAa^OHGELw>Z&&Kyoa;cc1hpY4;&|lki*`|dei`+cI9FYHld36B$<@{PL%&d%rmbLF z`hZ6b@#%1mU9SBu@jiZiAaOO1g|_FiaAes(5vW70>e9btHBmF_l;BK*jN&7)=+-T8=iVC(o{iy$ezEgcbiCm`}~-o{EplDl+9N z{%MGX-xZ#?*lDKw@+)WN$I-)Rk#+jvne}&xZ+3|xdb`3h)}jO9x#T#{V4P(t9nkf? zbolJ&JfB-GK$5bzBJ)}c+b7kBnd~L3!dj5G#DvYRUFSg9_c@O^A%a#{bhJq__R3w| z@qpI{tn9~gK!m2tGIqy4wFS#PppP=S^)WxakgWNtQYq?Cq|>Zm!ds-YL$kCxjj#Ki zbZoDXOA9oWPYqD^3zY030no;q6y;$-PDoHEgvirTQCb0u2WEZnM6RzahO>3a7E8x_ z6q%Tlvy+Cxuc0E(ceK*V_&^W-0)v&Q1Sj!xf%4$620o*!p|?vP=;zaAo-j^!NPm^} zLTmRgX0s3ict$lgqpl%a&@T!2Z4WP)?A}^GM{;4whc@iIOU~~Mvp*J8d|RG$Q!jnv z09EOGo`;Zdlpy$>-q#!VpPM^d-nH6)9xD|M?G`W&=vUDTScKa5z(A(VOGfIEj3ynX zTbvIQEZ3@CR6vNa#>COccqjTq-debQ-LVGxzUB)dYtft6@6&6jK-jVg#=&&)2{{D- zDdaLi8YKY=-0;IM-td2(tJO6@$c9Odbl4emhrAdRs}}8!k!u(64L)j<{_$5#kokQF zpZrTI(x+5;C!NcUG)@OiFlhp4N<)(S&4A_AG@)}vnNmvvt+0oFu~K#3+3N{Wu^U+_ zBmKJZp0()eU`JNe7;~4Nkj7Bi3C4TCSbflp0S>sbD94bd^N0?~kN2XqK{L@UmF`ez zpk>Ns=8aLFyTSG~{1o%kBl1=L!qTM%p)rX^T8e$jB7JAdliv)F&JAF^O}d+q2gmD; zs9x=X*vK82(eMvYlBiH&nzJn6LR{j@cni3*8ZCH7oBl4i8yWs9COyXkG|wts=}8}h z-G|qwe=(8(CRMC2AXGE@`KA8Onu0O$0i+Jgl{xgK$#9%xSn$OAK=ev3D^Pu6u{>#3 zt=HRSNn)z?7yJZ$z&NUm&Or4^=E5`0U`W~examoQ+81IXx8eIwiN-%J!;@=Z&!0U9 zqf|W0j$JXW2bNN+T>y_5cH=1BR@C6U#$`s|ntMZv?Z&&&#f}!zCujAxoTkBZ*;Uh( zMyBj!tTD88@huftKHd8tTp#GO+b)^iVRUILiGs{K=iC8$#Xy5Yp*ku3+JG&c(` zjOOo%BFyp^!U$nR*gzl>-Q%bdsUWYLUAsE!3;XUk2EtaUyloW1zLD4%hnq;RMfbrL zdhuSrE;2*O8H5(1orw8i-#}erAxmcS%V7-9!04-?6*#82ZMv_oJ!m~hJrx*(A8f>K za{pZfj;4m!I;s06hRp<)6`i`Iaf3DLI^mOIt*#G8SYWifr!mP-Uv4xKKlv z?jA!vQBDUd)`)@^B?Run)Pv5)%)|3v1o@Z%-VJ+E6+#a%`G|O8QE+GAmd|txM#5r{ zvq?QtPQeJNyfNsteg1d{fk+WkRS%+w2b3k6`$SAJtFMCG&_p^$u}Sj^<2h zjB4-K3i z`kp`yCPlPNim9086H#pZ1w2xK#=xt>b5>Zo&S(T9HwwT&SBP&qNMpoXDNt6pK>C=W z$KCh77(=%k>;%XVSDhCYHo~lJdTNB;Km^+Z28&1Cb}%D|RMKA(aP}D+!*TItCJ*>L zWn0_e+R%uWK#b!gcIGjPX5^>eHb@c947oy9da|6{<&dLf9S{$N^b_yYnR~;y1b?}=ewH6+pYVG z_8b$}>gwia%#_+>vv$!=V&9k)>-z|=8hcV=5~M+vn!Rj!Jh*? zB80|$5$3EdEI;>HTANs2_Jli~aDvro5D;;BePuJ0B~vNHYO{YexT)g4(#hgDx2g7i zgc|<+-9AP+jeVJhFuwKE6uxrwxd$pTI;GIo+%l8NO~zJ)&fdsQdYqdIi{rSxMS1jO zK_~%adIz1kxjFryl^%q~NYv9RdI*AQg>#ih_H@$*(?p~Sy%4~(-E^N$owK-l^B2lZ zY^LtarHrgvH#a-9f4=L78P}#Bx*u02toCWde&4wfrmt_RBa0`cEWS^q*wp-(N~2uV z)_kNIoB2w-syV}f7xs|c$>q;~r;z6Vv&;F{1jx9^k3MuHK{#?EQNW@7yrAj)(EJIpdl^F4hfI~rTB)kaP!G}q}zk@eKaZM}{NXhGbH|O^ugyPjJoBJ>^ z1*%r&@R2}e%y;Y)7Tp;-bUaBJ3yFTc^|s;~g`S&MZd48EF@`s@`xWBc$Czh4#lO0_ zc9LJ?`FdbXmSI9O^b?0U>9c1XG^15wUZLWqyM^&&7KMd2fF_y4SuSE_g{C96bFuuI zd*w&Ex#FYXkjE8q61YY-5W(_7}zUpO_P>E+b%838@6UmrEfIy1<^Q8OaKtnx425FvOc&Uozl@|}rS&5YN1TMp zhKm+u#N#nUck*bonGR>{$pjdC6i4Ez2mK)A5fbhU32UB+xk$`hJa#q?FMhHxveJ7S zBdD+4m*Tuq;P4w$<8dIDEAT!SV1W*dh$iW;X-f`Pfxk~qlsXDvj5y>+jxFZQyH_Gw zswOY*B1ly> z#UM~+=~Ai$OI)@$QvwR4cO-wXV+Ij>JOp1=QkpwK+!9gQ)kp1pRQm%wW7jz{Hrf4M z?m6N)lsOZ^fijO@f5MPzz$-&2UxOAYYngO%@q3!N=Zs*Mx)~wHV+a;n+R6obXpws_ ztnP&;Oy1FO8%m=?++?NAW7I^j?I`T8|8{zcY0SE6X{|`Me*N>@w5Fk~(EKCi)Eaa# zaT&bac~rj}G04*yd1+-WLbZY1ZSvJKe1DJU8obS0w~Q|JPNn%-C3vL_oy1inNkMXB zxP~lQk&ih1iKzlr?>P&(lc+$QE11scH#ZpF5#MA5o|x1k81Yi-XUH&*>;&j`rfy>#vL|`F&#RO?TkJ^xNonLTqU0iS_aoI+yD(fTIUESAc z&V(%5pytaD*_6X=3#(}~t~Bl~z1P&dzhB$t6HyQkQi+Q}pHdUz6~zh2J~dma8$0Ls z0Fbi>_LTXT13_<@9*2#3W8WJ-W!`4|p#qU5(|@@`$ctW&q_k~PzD#r|xWVI(i?KUs z02#cSd^l?XJOMzWD_?>yNHoUZ+Al&F@xBpTzuZf8L9e$cwm9Y&8fMOP=etV=ny4;^ zN9t#M7c7Q`*{2LeZ3cy%|C+!YtEe6g5HIL^;HI84Uwql;*nci7h2?6N?!=&SGlUrD zK{Yz7dSm5uzD!bM+DZ5A&O$T-{=1YD#(9q`4o(gKzgEc_W2(#62L`@3brR?IJx;Y( z_$f;PTln@t;gIsGxoPto{A8H-#AIU!^hz~TzAk*XDbR|7_bg)W$o$6}AX$MLp}ez? zcY=c|_%d)4%>Sb)nJ%)fYnp0J)n%b^fHa><|B-=avlya_Xwr)*C z2{`1II_4hP9W!{Ic@DL}N{}cKI^IPFj$Zzn_TH#X`Gs|0QpZ-*BP zy`bcm@XuKmT^4azToOhD|9V+*vUtlq5?KDtb!>KYVo_z6xJ*GpsEJU&mij=h&GVLF z&<(lP2@B4R@`RYCOWDWuU=7bo_>lBH@ygB~7mXW-U_tJB**`P#?7#z0(;Hh8m}o4I zqdg}X_!11dFKL_su8otECQFupL6MqnhQzpPYx-553V(BLb0Q!8ydC_<6YAR<^{cF( zYSE;+KN#!Bs=TF zH96&y{ggGXvdou{3`ZDQj^V?8P0#OVJ%=I&HNhB&>hTvp>-2@jMc=s(T2$8v+Z2wc zNG@_%3%)fj2Ua(ESyA==(W)=F(#M`|!J+SOJ6ia{X#rq`@L65Pfy!;#}e9w2CCU_aI$gBOp}5=E@G3a%hQFM}4gA~e;|Q9SP`YUpV# zHFs22aI5PfKdiW@Hr3KNf2a=shU?Ol1-H_Y8b1$Up&@xjw#)Z&HE*A})>d8E)>Cd9 zKPH?gn7oK~Sq$a0a5j=5$8i7=S^*mFfjmGZHtfTVI({fJ{&#`vpZKg z><$!5SY%wNz?QLP$8F5*|3+9EFEl8@Xex`6MI$fD*bNrQ|9s3xbXJgV-B4C)ZiE!A zp%#g;0mxMrP9-mpLYX6pI7JqL^cA&uxcn{<5+RGgpdU*Zls<%vGh(05GVl{yd{{Rp zB_&<5631Vh3JZ8CtQx#Hz2xNVjG3-6dez8QDuuiWhF2#$#ceR~ONW%O^~aN8w2Plw zX)$lF9K4|Ur9*!AE-C4?jeHdARb0#~XHhQpG4ZsJajd8Ot@0N26J0COI(pJn>W_8p z=c-IX{u%WQ2@2{gZ-k?F({fj;ChIF+ZkMJ|iY@MbYO%Un*XW;fU=PwCX`#~LEXotR zqCuEalOwA}wg5LBZp&oh@i*6n_=`VaLWKx*&OE(o4>;*cpb8gMx>_jB68uD1*;J|8 zMbw$F*$Tg*gVqmjLGJ2N!OUYVinAHkDm5Q$;cS^0F=2ip>vuLFKoeQxv2>loVWOYy zn}1GVk>~QkmUN2AY1I?i7ZhCjxbBA75*6#0VndBFR|Enc4F{YtCDq}L1<*|u)doDv z3%Os?a&Rk1->M_PNHdi>G_uZ63kr9wkFXS`meOtg& z`1`bnhhAV=lZz!-kpRN6KgN^*Refr$KdI!!ukF6NIB|ZxuK=0()#XKAFY~K)p@FMc zuGjQVtd9%ZZo9Yp58LXAuVlWHi?E-Rl9Ts>2EQGoN7aqrG*dET&>W5*2V9EfxUoAq z9~&>b>uz3Gf!^youFzMWEnDuj+r}&|8!>ewQE%fvub{HEQD&SAhU@!VH(^S4!C$;o)fh?%E~C3?+pdnQC~AMV ze9~Gt!zj!Hi@=qCi1dnV3#aCGy)n{JC32S@{0` z^ljSAmfTw5eray3ekoFXX&vwImChs|RAYemUNX6d^mUOVbb#3wPsH|=UB z-VZ`cDspDJoAaCD>wYpw7eT8fAn70i>n*+6$?S-Xj$88NH0e89Ig%H&;m5FKGU=Le zlGAPbOq{?XVi5@C0hv83yRp#`pOob8-bbum?u`mhYQ0zs;9C(*3M_zjz}Z2QJpivd z6X8#Ml_OB^4%=`-(#kBsECTp>*h4p+<`$w3T?#g1lg(IRu#qlNELP({V1s<%)B_d(9Te$MY{eO;R_m)xzkOwyvu*mj)P7^< zqZg4{%Km044Zlnwm8KM;Wsd)e;BB83R?LTz$BLc?Ohk3G27^S%&7%AKtd0Tx<{78Z zb1eF}iSK@l>54E_ZSNEV_BbFK&* zc*KdIOr@#CW2&i@Q`qx0Qvgi0Tr1at&1_YIar`5q4e`1}6N0%>;kg&~PFA2#aG0a# zoHsyjVK+yYqfl2%qMu*$OdC_T9D6K8twi;?W-&U#E)e_^&;$Oa!O)Y)Fdky;m*e#x zgaiU%C;S3^VP8-%;1xZCF9d`tbPSMZ#wx7qawT$TW!4mHwQF+e!62X|1;S|FzmWfs z#ytjYrdf03q?L^55M_Sr2n>WSUTf-;m2@ViPi(1mCg)psdoZgfziYdTulURvK;O7!#2TF^e>ShrgG^uv}zh$6mRuU)wvMV6~6?nS{;EOWc0 z+_MfBz1!dVaH7s3B`DD3Vf&l&Yy{mDPdpXH*4=N{(ueq)UmAM@nvd@-QJcHeLsA zosHY6sTkUaLsJ!p%s*-D;Dd42LfQ4E1`o(QCQdNM6r!=R{HRC&e!7D931NR9v_jul zlfqz8w2R3gX)5u2aVr%Gpgxcd@>l}mMlAhcEI)zfVv3Va;1GLf51Wkd)ZFw9(tqde zC(FF=r)(?pS5q^Ix?dD;E;`B6MRCs5dhy(CBSSH%hLh%z-fCkA6Zi|k7CRX&+I)SlEk*yH#z2Wn}@urx}o036HWo(Kp7ZdP`GgxH?*{1F7SX z@Q+6)J&Q;REdZnI0hQV_(B0NRSpoDON~kpISc>=2=Pe17btlM|4v!w4Z#8#S%6KY~ zDu&tcQvG=b&^r}>_DKrYkNjbs#zV=Rn4{{q-|oIo%_3>2DOshKdVA{mjD&fiYG{P~ z;g8l_XKOB4qL)Qx8xk|3xbP|hphW}IYl7MuNlQfkn$8~@&92jKU=QNA({x%vImy&+ zzlQ5XeCE@*Xwm4=Vhm}e&uES*;*7SLw!QQf!1FtyR~WIUhIOiIe9(E7Xf7Ni7d ztiKl;Zks!bY9lmY$-Jv*CG;Xs%`$tp3@`8FWCtx{%6K5RvOqhbTjV~Ri^;fI#>gm`y^Mpo?&Zsq2hY!7LQL%dk^>k_#`=-#2zQk?q0fQI6_8cqC z^VvI>?#%3kFXZjjpAT`HF7H9PC*a{ukRXXGTmNQC<6!$j{4nr+k*@sQOXd|(d zK_#Rj6QM|wY2#v4ZW7woik85qrSVN{7e|5fnvzNpp-jd{yfbiMLYojWJQ2sL+mAI0 zL>ar?YEjAEG1{q|!FHYsBzPxOupsvedx=s(e;E0!nVgrKGVJgH`-P)B};EmoApYh3lP0#H^4EWSGVLRcOQ z9pPn8De2(LJ+3!j z>#4pC&*%qn@=t&y2Rt*VffJq;julGV+>9K*Ku2_@=Q8AdY6XPMqkK;j8(C^SE@5Z1 zRp3xBcQo4QoF&Ir0d#Z|l4v7R9~!=m9n^&+{)dpOQ}f;`m^8P6fXQ#8Ufpcax{QEc z4u=s*b6;9C7o4*iYLz<$r&kalOTNR9@0AZ?sz9znKSjC$suGNeFpUL3(#WOrp>4zr->ZOjOt(N2 zWJ;3Vl`xD?JCk|lU zepk*2r@_kxuhI33;9gU|3*eW%heG`XwW?q?i=fxP&fZPZup*;Zx!p+4lsnYiQ*0S; zrA?a(QopXAXCiXMFCp<6gX&y)-c9n89iGsj-IdfeF0U{C*uqS#MF^MuYXw?QBG1;n z$wx)2!bD{MP8$c6M{ChhvwWj)uvjv|U-ancDFJ2Q1-~_xsPfkku!hv6w!JhLeV6Uu zJNCqTo)}=)yUe=Z1DM{Og=||ZWtW6sH%QwHV3#^j?T!>`bi(S$fxGM&vEdZdIvS%+ z{9+^zK-~wt!(;0boZq|!|M&2ngp-C#6JF5}y=C#DU}!GpG`~Gx7JJt0dGg|?ftC%+ zO8W&A6I$8MPsxS} zyf?E?OYtRS!|Oung5dN55c%2q$_e1URsyuq0dbePnHuuL@sr`Z8q)hu;7)K$7FV0p zs1iQq^Y)ox1A@HkDrFyIUL2zbF%IG@+Q^UM!+Ve%rv+IpDM7^yP(u$Ju8P z^#aM$f5Oi-K4Fb4_|k%g$ZC_%bjOUd?CRnQJQhv z0dkr>K{C8BGsAzWHHuckw+TIR#b?e8fNhLd+whNS=7(X*5HMI9jyMe(r%hp5V`VU> zdTc!>o_PbJr`HM`W)9^cKnRMbFU2(I@8hx`I!&vs}-kGnu<5>oTX6)vZ z5+I4Nc%0(FSmVW?+a^Ja4^a|`bo!xO0dN0e98e;F=2@j_1a@`~YfNBlUB3aw`$NVP zZA!PMFa=Lq!J}VWe>o|n()@hE5k8@KK zgWC9Sq6lRYurP}-ZkP{-LgW|ht}_w`Sf8QBrHZsC>Voc2lN!VGI}0+>Hn|UWIHWBt zc+Ok-2QDZh=9aE2j=wZrXD}Cw9~Rxo8EB&L%Ev;K5GKVgY+SyGsC8IXp*(p}9`~*W zW8%CpdRR$#4WbSajTPD1_>Z{qKc+Y0fT&YgBq(9N;Zv+S)1(#QpF{zFDVBdF6qx6awb(t;P*Z6V zXk6P}n%VJ{UbEp0*CUhbJ*Mj`(jOTXdQ4YVCEio)6rU90DfDJji?MoazS!#rnqCdK zkfn?o-eKU3ou3$3IY=4{o@0paQK#f{7BPhidcCWNhz6`snoAPQ{7r#uW<7iFF_A?g zW^?>=@QP7PJLK>15rqG+dJ~rkE=$=FMs-Ch*();UJ_!^*Xlnc_Lr}nLJdX=<019#) zWn>P=pPS7RF{&zQ1&)DLR+8fiiMH_%C!NtY(N{|<4PDMxo7(?Ij4AL^|9J@U!?Sbq z(tW!-D^jauLat!_Gg^qGqdbXjb_!p?dkw;Ie(Mq$;>F*j5K0P~l8my$I_ zv7WQAj&N&4K=VK2cUKf~YWm~?+bcS0{Pd=ZM^cZX{{fNI<9|R&cHXMH#}?lC57&3E{$VL=b2az#?qFcp4KNO^|_vF`q zv%7EEi|^3KKfR)0j-p!D4$Y#Le@wZkO$_F6H;;V*=}XM2`Z-L5|KD<%v*QeRVt#14 z$0;46YWJXe#C4416I?_;sfadC!CqOwx1E|=SZ`X!$d{3~idw`XY91D^X82BZI>;gf z!_tM_fYpvMM(urLhfiq;rwLwo8)s7|&yYnYu|sog9z;!QOjgcrRzFO>?X9ZYNM!a1 zWUO2tB4xyTnM-5e%Zv7F9JJ28jLQUmbQV2=mix~A6h6FV)7$Ya<))3D>Za{HuK5{x z8C1Oy7xzl zA7JL$zKdW*=$-#r|C!1l?y3gx@5#QH&y%>wu&Ov9gp)exu-fvkC2J;dBdPpQx8*&L z5a*zJk^kf^Q94%d-aAhdi0|+fl1K|@pS=P&b0%}5OApZZJMzORJwO#sgroa+%VeNO zHkxTG(7|38u-vFqQ%40elH!;t{#Ymq&KC(w1M3p|JA|L=6d;6)4^oRwM&vICt~G=r z@i#(T?r~E4+kkx-;xbYwA(WbzR;SUw6Ry%qdt#=z(_cN&m!uoIXawcz+{g$f1gUxu z(;mNyh(_;2ZEN0iY%e68ZnDIguf2yq*Jw#?mS3?1^4yK*OhrFcdYN1kl6YlfTgvBd zKCfN9;B0B?m}{L->3wwuTJhDlG>pQ37&3L++tp1e(_A)$5x=d9LZK4Fh+96P*ivt5 zlufJ|Nxg*fgnXU>`!k;}UixQdxuU1fU%nVF@nzmWdVuqEfN_ak{-yoFdnxf*ZROuE zLIv>WNAaIuRe6nr=-D@(k~OI~q}w(=KHvZ5Q%oYC*PgP7aeuEBxaim%N8DwEaB)VM z1DSlZS$*Y>#c$vODMX|Br1jWj=yqLZA*kNg1AK5aq;<0@lg)pP|W_04sLogRxr zPLRk#1b)hgsk-0c*W2LZ4Zt zA!lb-h|D;zrbI0|D~Fo-T9>iajv_}vKc4`83@I0m(;Dt#4h-t-NKA?q;el48v*^$%Gu{_>f-g;`?B;_V$I&*5+;=NCXu*BY6r#MFt?vSz}{!>}m z3}yUEU2kgjUh58&+1JYPm1|G_!kY-%IY5$Fr!j2KPGbpp<2_r17U4KE0?fng7oiV^ z$KFFD#t4!~OrFab*jh9YqfdGl3wzaC0x_&W)d7{f{nqCS3%9HF_EB{Y`&%h`M}t4= z9z`sDE~iF)UrW7(et)UfB%qv;xEpPNKeaZ_?8Q8g?C$RH#o{u@vppszf((caL^AFX zJDq)qAA{_nuM#ITyM|7w(LWOuen_ks18p(1i1=}D3qODgW{X#r7$uUbX=nAF>V_aW zQ}UWxr;lTpgHiM2^2U*ppojRHgbfKDATAH7KLcKVzRwAJYtxRLu8}z=6krT&9%x=g z#|{s_7R|`@fE~~Vx>@6_Ga9_N(M-Mhn_4s@{|^dh%c@PEGAfqci^PjY8s9U+ieE6f zJ!Ii&dC&GDW+gwgZr?3?mAN3KZ+>02-45sZxXnwKL7eqZFrrx0slnuICN-?Sz9Ct+ zf3gx!tzxxdBp65YtJhEzbSkA}rkSz^qZOtLG%le97(fAg-T1gkhNt1k@qyG1V~5oT zs4RzVH|HJby1dl}e^p**WaXIYO^XeyMq8e@1^lUGJ6G~;{s zMPh58_h*XJ#Y#l(=oZX4KZU{zrSmLg<>87L<2EHS)QmM^Q;dWD1H@soNT1VG4xOW) z3b+K}{1GFA(P0~Ssu;ba&gNBw{#hO*#UI>J5bqJ|)4W>bio*j6=bUHPe88&6AcA%p2($)mVuLFx&T2SwRd?r>$U2YB-a+|qqtVcIQH+l@fi_Bj%`MD~Y z$5#zW7_hW|*H5qVOS5H^hdU4YNk@B_kQqtk+ovr4Y3D^Z|MdxM6l6@j&#!q$mNO#F zs?L3jGkjYG9RV7Hj~A{*t)&18+wO*IJKq-RMlPT!!=XXcXLqsQlDgm;1F z!-v2IqoSxC&Ka2vCpjG)se2TuldK<$vV{uZ@vC_!s+052{d6_@@jT)Kv>*FiYbo$N z_GXvQSabe6IWp0iYcA(ob^D&#*q}Q4F2Qwpo9Mged-t*wv$l23JB)Rc{^YkfxGT_! zlE|Hmmf%S3sW@PWXt(PH0LJhi!aWV79%NEx4Bzd$MQu%ch1$;Uu%tbmV zCVZ9wiIWug$(|i}DpPbp+Riv`WYv;d4MCNPNa|Rwq7A>JsV6Ird5SmDMVH_S=}Af~ z&nhNQl|lnimTcM4T`@^-9G2_lq)EEBRy;!Gt>*9#*HKhh(4D?5)US6u+WAa)StFc1 zcJvynIT+R|RKc3b%rPm-AHP!O3YRsSPiTv;$sn~E5=ue$Y=*|6CJ6l^Z3{~q&{|j9 zCDtm<-*b{1C~WSU50d%;+qTu?L6zDTlN5fLc5;g>mz#A}d&`~~a6NuI_8)A46rFt+ zFIa??npA=^-Q%t+7ZHlCRhL`KXmO}-V8ya?Ghf>A$^EAh$}(EPI#FY~SThCVk&3wu zlH@IAvl}23m;u_W_*|g%6myIbVTpHm;?UN%{->x3(5H83vj;SJBU-)r6|;j9CoSpz zJNa*R&=^rpCQ3o z-(USNP_POq2|&XQL}lg(MR+SBJDj{@X>u-dcOjdqYwh=y9kf>plqE0=cs^s744Mr#dIozYF+0qAx?Xs=V z=%FFe#jCqLyD5KNtEY1jnF0pm4JMMKUte0WIdoysnE*&`w|TagTFTP-ZuHsN`tkap zLA?tZ7w^RecoNz;?_DdmPaCt;GHXV2iqRj_#J)#PoFAx+se|4ZTYj(H=Ta;X>!}K% zNmjC2EenaBJ3r4y$K+#qwV^lExyDER{cZy><`aG;;fe+EQ0=?b5Xs(GN7WQbsCQio zuoJ=I`cbdTCSd3euUzVIv?VmTj!2$HQT_4k4Y_-uPAOtBpUe>Pfp(}-dpNPwC}}22 zJU_egpIQiXg6mDe=(PZ^u^S2g+o zn~Fs3>X3A-Q&TVJAX|R(dQo!aYdWku*rBJybz%W$f@6bn{W7IKLvEudjC-z92vS(5 zX{?x79Xd~wT1*L-CHl+GA=5zXMD9))PDrU!g)y87X1Yp>oYK7@4yntOt(z#Eb8}Uq z!P1PHx|M+*8BKhH<&;nt?bCGR13Me*pQSz-JS`)BUxj7+2;C}5ig_(ikVAw6t%NT~ zm#6p9Z}jTS%PrwcO5L#rD0C_i9mb#APX?lpOaREu?`9`GBSj-&hLBq7k=slFe5W}RL@UMl3VwZpzW5GFTPD!tSafHvP0&XiWs&Jd-NIcCkEL{l3p z>z9{Fp!@zSbxxLO`qAx(+3y(`!3988v1dj^{`3bg}hItn_bFy})*(p?BXoeALs#vC_TT*_R&a z&B1ka0cj|x13ox5F?ecvS|)~&L`?MQBI2s-XHwlEol)m{u5xI;T|tSKX1W1cHDPg> zM>sgdWpz zE0!a&vv#1^lXt~^cLEA&<=5<$K#I3Dsl3Klme>F%(Wf_tJ+Uc`vcW)3?$8v~eF66Y zaQ}iP=~j8CDDbt*zTNs=%%DA-puyGPJ1_L(-|rVKi+AMk5Ym&cnP%{437bw2;P+~& z)ifOj>v`@rfoA`<7b}o+Yk597#F~f{))bVHSk$!HjOrBBx;@H_E}=rZYiAw)Y_A~S zuMWBSue-1w*^Pzr177E?ErQA)6@&L>tCk!g&TXKmQIR7r3Wd|CKh>vvcR zY)5{XI%Gs?0pKJvms-Xt>p3-tglxL6Cc{_B_~XhMdLnNmswI{QhoMdv zWj!P(o>NK~O8crkPBjr1zit|hE~UWA1`<|OVwFY0E{cGk6M}SWfP1vUK9<~f`8_(U zALyZHpYSUuWVm;ATIPs>1`gmbI^k(0TxR~?BzLE6Y+f+G8<%F}_iuaB`>p150-fZH zmSKcn(*q4PmKMXANMjNo)(AWwf(h=AmyKGS04ylb6V|^VIz!kPLjC1m6eh~u;PDx> zZSwqE{_a=~QyLu!u^;M9|NKu#&M2Ox04TSxGI3poQ{JEcNi$sL}_`P0hkBXVYoY*0Q{=R4+FBQ;Qbv4g%)@vRJr~{PZXlh zMDg*A}X+#G9es+1UJcV1-;PQm+-j;>6c;a?tl|LsjMPH)H+6Ie8@G z9Y;|>Oa1sDBglszSM-Zv#xG5^rkNhf>WV#OS5z@ueIIcdr35P`P^P~tsW;0$tuE3e zyvsZDXlf*AvqLLEvKd2(th>md;AgKAubZeK6%$V|@wewxo2lJtZ0so^Y417YU~#)K zEfxd*X2eSvGKIJrLuFvFVcMQO3px>W@r0t zOXW*fdwf$|{1a2qKNIXd(yJKOY9Ao8Y|g00buHM#hku$}^r7K{ka|N0VXf5O$gN$Y z1pv5I-MbyRkyLZS@0_Eo66+pYsdp$!5ZbWU^Z8?_OG94;c|NeG)DRPd)F;i8MgSC> z0jb>8Rrw^L%7ikB1q1 zaN!x1)+l#`vL`{U`l`E-5jc$wr|Sb*aL~ei=~2dxz-?CeyIm!>Yd^qa%%-Oh`W-AP z8V5OP90M_o1iuC1y@><~b{YrM#I0bx=qQO!)Y67VqeirGBTb9NgP-i9e`P}R=yff3 zub#u{LHkc|Mug10$gy1Vjm;;ar8wE!*GOUKcO3yZ11@8X;;#jDNq;z_0TyaZ;*c8K zz|IfMx^6#S!Y>JAxhPFz;e`tF!9!+ItVyL4wIgY3m$f!#EFq-NO&4L*doRxzp z6HqyAqL4?X4r|EB>?Yny-KaaF?oJp>I0f4!?uG`YkJ!P-Uz;}}3BhBdD2@Z!xbU>< z)CQet4{t8~lM|Zsnrgf%aF$#Nj@>8O5ge||gb!tojwCJXmCveRg|18M?%fP=e*eRP zx9250Wl{>CfLeFf19tdTR4MoWm^!B*%>lJrw{6?DZQHhOPIDSFZQJmsRKa9cNMf2(n1bv(_RONm{J|*Vr?!$#J@3a%v>=+3+ zl4>@5bg0y+5qEVdHDpe>GcwH6+lsei%D5KjamvuWwTif5m%B(ljGrfrMUxY{R1>|- z*XS%BXrOcYG$I*f*lTFedQzD=FPvZ$+E)`v7W-@k5RY^CX!_jrW+gD58mNIM#*>8B zmoECjP)BdvnGr%o!fY~CXUclH9EQMb-VK4bLOxyVVyx_RkL1$!RQbLX)JKRPwHzt> zTD6=^IG*J8fnQs318(;n8f+EMquHJi{$Z4}Fj zE6P-j5KxfTaz=+or=fzXP7$ADgq*|hVxuIb*3x720uQ-x<5Q0ns%B0Qy6P1s@Kv%I zyoWJeoVoY_13@?{H8u?f1vcZ*sih5=`*8~eDkQgGt%nIe=5JK_h}K_)M&V|a6%5nX zScOjmVjtlM$k{|JQGnJ-DG3*DeX|MJU>ND9%o7Y1X%yAfipFJu-z1@)L-I4coyb;>&`5 z))4Z5(F%ll-38GVk5mUjeNTi3JUj&?aUVoJAz}!m^C}Sn?&L=Q@tcEr$2}-D)!*b? zm>nR1a_eE?KP{yeUef%O0MlJPv#VaAwoC7Vzd*AkkU9xm)s-IoUYgnX}6D* zAK^hPG7)a66>?!Wbix{bl1|ur7>BD$`Z@G|{ONFh0SJI7I159M3Gu84wGywAF6=JN zdz&#izFn813AKuRT|$gMHz4uOzt%9g3*=`s)X6SV^dJQ?D3`SME9HF`91tm%8n#XT zjwJlh!@p?&5Aa_NRm!1nO!5D&T@F-{^*tx8 zQkC&b=^ya1I94CZ13$P-i0s~^DJ?i)mEZN4@TqV&5pY>H-Y8dMw&BglTZ)fVdP)Ei ztbjGHgwO?@Y*riTG+E{@<$DebP}zx~EG_kS1?pZ%Qm-$2>1*zhMP7##lZjiH*&P`) zgh?7{mPg5ehqA~vATbp23K0l#vbZj(l#|%-@0?RZqrb-ka+7WA&)A7`kfUn_#|xv^ z+!0|Jrq`@cN-jnKzL3Fm3T~J%#rkvCr_xN_4J-Bp>%$tC?I>~v-L5_*>AY1_S2pkS zb(@3Yww^t?3`|2c|64-*>2(&*HgaX9xXSS6HnR&`L|+iE^M|c_+WQ_^{>OYj$;L{8 zhTSKo#opobJDgyBa9qd@=w?J+Q6rQ(H@|7G>9u9v{IA&mTmVgUvA(fxa0N`U!OpI^ zybE$Giy=-3g4z{*Tl35fLf|AN5(W$2n!d$*g-7U%2+Fv`hAlKY1`Ldbo^PZi)viji zK`2rTY;QGKA9d_Adjumw}Hkkj{=uC>&f>qVe$>?RC6OjqLmw(?C0{m>gWw!}floq1UV zL-riz#1=`Bl6)kVU56R z{Di*Bk^T(FK4MGdyb``$ba_1}NKIZnv|__xzwV^Oas12P-CH)$>w1mcmGA9U197Bh zu<13mf+~sJBz#v;5LXsd%ayA+H@L;+JF@1UYpLceerIxIFa$UsoINv#2*i46FM^!8 z4t9lwrsEVG8EfjKfT`H{nY=D3;y4z0C1b8yoX6YtTL$W;3noOEdjS^*j#~D>19NBP zrA;I)Ew(Ewvi1vpMao?Uq)kyy7G9JWG0`LEuO@}MLc5ydo6+06Ryn=j?qjS4#^`>n<7}0 z{f?)4f3>7}wQfLmxsa|pPm#|wr=%K7OPe7h)=QR+v-mWi=@7{Bt)PeMt8i!}%fNC+ zaE>8Kpz>_dJvE4hL?=?oC6Szy1N@uONPJ|kg76!*Nh-5s(4c9m(e|M5S1N*Oed(HP>dtfugVMk>e?Tob+pQ;U4S`+s%79{}GY% zg7ADzaG@dOV7Ksyp3i9o-A;u-%P+MNbE;qh0R=~*CFNz+WypV9X4uPZED7KvSdW-voDgR{C~keVJgA&f#eNjh&e=Zl_5c zaDzQzat4!^spYmu#-+y;YAXKT2rZ=!<-JTnDPw+V^_hpqt@7F4yr+pKohqSbKqn}% ztva;jmL(ytL*b4`k*N*8_00HsRCHcCScQx|__ag^Gt)~koCsy(Q-wA&|BDW-c#&?C zjyO{Q%Z7_y<17@8sFVdLstrLZKdLWdXqFA-96pXK1&<}B_n!RhX^l&;marH~0fmmr zOi~fp^J%k`B}rCvM8V{brwOsVfDj=_Oe9QObQqbGEGAmP=$ZF$>AWS{K>U5lx7??`h)ex77(f+4j=Yld-iWnf%3sg3wegxZw!0Xe+o0XbU%Hr43$eq z3q8yARM|`5?>gG^rznkY_T){dP9d3tsY~6Vqu|$Ksz!dNp7=V3vU#c$wXu&TSCL%J zC^D1?F>{iGEaeG0Xcba~LAWvKyK1$jI;Wy~*ux`O&1Ny)dD>+Lanj&Pe=EWrD1HE` z4GD_T5x3S}<>N^14a%wW&@HY-Ze^eT~Ls>s! zqz--ig^#g%#g2E?9?zz}z9g2bWDxPqNJbpRJ8DuF#1mGgg+9|*D(o7MfkaGNSlq4W zJDp+6$bc!X-dpoPZ-WHu8qINVUxDk2>VqU`nnB>2T2o1HaPi(B@pLT6scEqxUrml| zm``P~vRY}figEP2SLJ7mIgNj+_r) zNX6V#UDWVuQBo%5^R#ExqHts;*Ci)dT1im^09g>aU9cUTPnEXY@ zQ-Hiw6IdsBh%Tsgij9p4f7kJA6ok20(5@9G>|j#t_x9vpmB!kyhV;Rb*sSPl_R+p2 zExQriRXqM!t=xvB*VHV#D<4w8LZ9hJ4-{)c1G%M)JeriyOP}j50M~h;q%<9}AEIK` z-qe+Q5%1Xd7NDTl3VK9uriT<$Kd5a}!=um$(-X-!7W785rCO?6OtO&)}sSC^ZDps_lXVc2YY^@w5bc zA*1*y4jA+^?UbEpfdqYWQGK6AWV4|ze>8QgPW^IoeXh>k+srof^|xZIROZ2>;l{{K zWJSpc*+pM4B=>iYcWQ6Fh?rS!*gk|oFE!mGsL`yW1k76zMgo&8O9wYRc76cp1;D{O z8&nD)0Pe9prSYY#h_NpKB#S|df$7VvhoWxijb$6N4Ia74p<`>;xV&mrRX3+&IM%2(r{^R~(1>lLMfC;_)o2{apYYzF4%dl!CD_sv?R|c;(e$p4 z&?l)Tu_z=4T7%Eb%VIia@ zYRb<*&Sj?5?cn9M&JgLH#1g5b=o@B3wQb4R9A)rLP;dqd2ui#7RTGFa~^#t47p8P68dR%e@ z>|n3RNDW%LjyZEm+mSMd`m?iJ=djG=Nu&-;RtGr0mq`Pt0od#umaBB-Hi7Bu+rDG) z87QUCq7Rbm+amWxPZ(yTKW;dQ!K@V7Wsr&-76{QE^86@bKCWd~M>`!d_` zspTE-(4%#^l1m}$ha)_|O2NSio1GhJSdeM(U*XP8X3U^i>@p(3D1~0}3JZY@ow7K>R#V z#KTO)?8Pv16Q}AS#^{WIYBD#l-Z$f930?lh>OdS@W_ZQ)1qgtfXBIchxt5`KG-{|4 z430lT%X79&UzG4{<%3jVe?{VyPefNcF=^@H!G#RLE^t`de`h@>5x}6KgM}%An$cA5pz&(cV9M9{KDL_P8;b^LNk#MRYIP_t-(Y{@5o6Z7aOi^PrY@bA3 z!Z(~PLc3Gk2<|6XchO6t(Daji?P5To4ACR4USNOX;3NswiS6}bsT zTFR11f|P)^SGGi(b!nV=c`pxTRK8ScXHsNR`tp-8k%#)33Tzd74MnN@M$fb*?99M= zLI+tsM@{Cp`|ZYlG8E8wNCu}cx8jT!{+0Oq|BF1>DSjy%rx8wDg3h&8zBv)^H@0Do zXcxg#g^j_OL}y8tH6vfN)OGYP(`^n$CH~IfTir+Rlijk}uYd73g5~@VenL{}xj?Qj zaEEzR`_8;}{9z;bBM76?uGa%HwtWxjAHR&-EXsbK!?z}bk}!)fxkae7MvJ(qvs=-} zVM#NW=>doIF3!Zq#0_v^ap)7Sed5ZY6a3UeS=MX1?WuF_mq%3Thg4c)Fka$OOhAol zFiSe(vgK(`vkKXsEIyg~)v&b1!d8S46a~40dZUgGc#yp-=XIxm3 zt`=H>__7==s{{^QhH|JscCms42>R&})T0ZSH@BYAXJ@Z1TV7H~m_(SuLFOM49PYHq zyze{Q*Vf2LT5OcDTx@^XJg&UV*{Nebo;L$=6d~+-~=oaZbDCtWR%!Ny2)e!d%EtZs}lp??wZmUI{wFtdTx=}iu4<4#a zMeu@$BnWD*7P2fnt7}CKA=eu|o34zWB}+V?xTF5SBqRfKmu?_1CERNK~i2kh;K zsaa6d<2R9ouCW_Jng#tBT*WE*-$mL>qIJ<9a0%6%Gzlxc$9qLqCUc_-n=Zpm=hJeY zV99LamEN`PqHmj4tw^WWd#WxE?>|rJ{JzZ$^D^DHr(-yQ2?qFFaDjYJF#h`F$aGT< z6^Y*WJ`&esVs--Vsv*(=&PO|n&;m-&Wym1zcbBu!^qpVAuSI!2@&TwtL7F3<`&n;q zD+zgqsWHFxdP)xadWphs%j$yeg2q5}gksRMXs{UKPCl16Pne|{{WWs23-Go;x-8(B z;|nk1#4fJIW?$E|ajW0uP}8w4R?*x49@JzNf2K|Ord1+(ptD3Rs}b8ebsU0aMd@^q4fry*=wP98%ZeF{xk7g~Ip z3obbL*w`r1mnmXPQkYj{NGZE;+fj`sy z0)piw*^fF-%@y{}hDk*^gP9M}s$tGiDZD#1g$PYg=6dmDc4C@v$RlZ0ENW_V2*Pk&Lgm&`igxFdP@2sN?q>QQeRpOAedS z$e+6tX~uuXld{273>w}(q<{!V9hZxh59}P=Jdh5+v1$s65odJo2f(1#Gg1Yg#^aw- z;f<|ntV3tof%!}oW%1j_h(s47zhxTCy^Uk zZ?L=WV*t?irsgM_ zPIuSmc8n>5%JnPUM)r5upqMm4EuKH!L#{+bV+rx|T4!18Ko@Hi1_do;Z^5aS8dkYn zlA-11J?6p9+y1-2E`%Z_GS~L4aV1LlcSAoBNWF#o6>e{sWIXH~ z+p^o-T;c|$j1@vLo6!s_jO@yUJ&hm?A9CN7U=H%W`PpmktO#tm2HaMexjA2$h;`5{ zn0s4lS7rwlkMJYfoM*WIpL;mxA{dQ7C7?6;{=1ohFSjRKy`jL= z@#6@8K-7U_Otz#(JdpK$=~YG6VsrfPY&pA%`x{j>WB*8dOUksySjy^T+fv>Zy>Iho zo?4_z^BGsC=?iiiU-QB=L(?81SB6veJ+oTD70OA3P=_jV19<>>-KEMLN@=P#Ham+}?02l5s!JX$G+dN9-jV@3-Q1K( zs!A2-p6H7$H-+vVMX&32I}+f`=1Moa-t={+)T-J$_BiaYT{Rhqti z1rlTUFC!d9M5AQ=nCoU_mK6lBv1_<1*g2zD?^9kWRT|6M0}w(c=2^(H1#{7UU4#_K zVQBl-()mBI*ucBHuv1sj|896p3bfSMXV;b5%}o!6`4o-ZwX5FS{DAR-PuGo@YRft; z)#I@R+u*J5Q_<)=X3A3^50exWxN`vDsa*eKeNMLZ_)(vr;m;`rBD)UJ3 zq21!b$X~%3Bg;RTy_h4KP2hp<=K__A_x;)SdCosv^_XCQt;*b}l4to@zdUFDk0hSrzgW^~sm*h!tf)2Oc_EH7iX{&H;hK*a!B>F|BDxn~2^{^1fc_LJ zy0%eY&X-$KxDiMz!0pl@6TXkT;Q~QvM`~ZzYl6HQz4R}A)2Td9k6J2r z%S-r+h%-y~+!HbdLk}jcyYx}!u3tV7^lG7}rl!uUMGN2M)gUV?iwU>{TgtknaC%BD!6437B}F_R%O^B;%7<+^ z1qnz03Sd)Ba+SpRvQarPh0;+C=Ov|OL?~1EoPa)omI!z1vWk z^$7yMvFlMi`={$rMaJ!W>EVtvi8oG~eShL@`@ROwV=ls4CF@;)Maab@kinZ_WCd(R z;yh23UjDDJWAj~tb!_}t1qo$lOlGT?Q#?DKC$AQBCnZPp93(fgJdW1_2y6$o-*_+V z!EEDYpV+-&2sWo1kLE{Qvk;avcjiZO=EWSD-Zwqdn?CwIL~b)Cyg+HfHIp2w<>7us zi(3B`(uaxnw>=A9BuU#J463JDEPR{-QByaosD!i}`}{Ebi_ zA&^1wueZ0!FAjeRBnC^ueJ5n^Bs@)>NG3+>E?G`X1(!?Q#a9CP{E~_RZ*C1{1K=d} z&ohm$#SIG$8TnCNB+Q4eu(!pE_qYNK^f?X^8Z28EZWp!CyizD53Fchjq6cw=Kl@y? zj&5v`Vt5~eQr#H@e9*2{pvUXMM)t|r>0Sm!G8}sPC__5Eea*rMwi>kEvxAvJOg3Yc zE>AodGr6KtT|mzWtI&rG+ZOGxXCjF0gu!RIu=-u$o1Z(O-yr!b5!zzW66)K7AOHAQ zIikMoYxx@oVHAsRh>1# z<6?SscqrpmWolD@r~VQSi_n8tAIpy~hLdpjEoT;Uy_dp)$Q&FYW&-n!5nCF@l|-W% z$sib5X41+fNH6D#_wr0>j(ayEl`dzi@)e5BU`c+Losd2HRi5vrf5x#Mz}`;9b6%h^ zEgJqOzMf4!%0FL@iqeM6hH_oOEQ(e_4m5^5%_c=?P&>i;%L^Dm{V|`$lK9hZxoDQL zJgb0WKD3hJl`(N@Sze+5nINoj-6 zrlTg|k!03`8HitUS^;w z!=_Fb^JK+NrZ0^B8NI*g{&(YNiA9=dt0u;V3?PZNC=DI`}tGwJYw5`t9P%R7i9Qir1}V2XWutL zu_V77D)+AaIpq(|h(zkmx_~0Txnof1pet{o>Hak$S?O-Us-ww}g$A3(LA^UKB7tGE zZ_7GEoJ{^5eSN2$u%u<@-AQE;7>(yoV8=w@%o9m z^k6-$kF#Ri@AQNe!*?a_jzbnbtH*PclmAj^5##odsY0=p`)h|xQ{#+>Y@g$?*U@;| zQPIqw7i0E@sd6h{ic}uSrw|h?_f~XC@w%Ae1u7(?aM#(p76D|hWo6+e&>z4vHdnc6 zwy5Gj*@Oonvn(bv>S7^YZzeF!39P98BEsGE@R&Av%f_?RZVyW`A8iq-=e;iRTP(zD z_JAw%Nd6u{`&xk=mjl}aOG&ofp?XVb0O;9pZ5ccKs0~#8+9+^qRyxSn|D~Dk0ws{DW$VcBKv%0_g8;DbP3o4K{hc%%??pVlsVM#Z1qj z1jZjCJ0^*ghn$f=VFcIwEWZ9!oaM2zzq8W#U>RR7FA8#4$s&;yz49Kzh16ELFX-Hvo;9;8hCl1S+@?@ZHw zxa@|*%v+iODA|1O0C)!Ru%-Fc`R1Z~Jv<9qyZCl}N$)+?_q0pV{S^#1+sT?r{B6!rekJ(9DQnn}Fa%>Ij`RMC=TFo!{ z!iejTSLtbNv|A?-XU|dHFCbk9MV%Q<7#?UQ_taVWf^ae^cvO5EP>-TebvR(rN~MBf zRAw`aF#qIO{^(n&j)aF51s!A|jgo}fP{&?||Bb@r!&llFu05s_Qzvu`VA(XkAucSCe=#lcUJyVY*^rJ+WscV?XM+69Y_-PhdkG{8*Ua+QFU(njXg17AhiIr( z^%VU*5YE;@O}rp|pxlgfyQPFd2?ZVBWXzMq50}RGTimuVe9?SrD%E^j7_uk0L~Rf# ze7g^hApKx!QH#P~;ETE8ukKmrf4~^;Eb+pAVh!J6k4h$LX92VRaFvJ&A55!gt6Zzh z_J*Dktv4Y~JNzUIqGKiId`X+MFAIxu3H-t4epY6AEZ%^Gi1yl5n&q#~OIFSO@bw~> zr|?@o+M$2sMbcL9{DQIAYXnqI>2B>L4B>r^r(N)g4rFDFXg8B=@nA62mWHbUshd1b zgyVoX76gu>5sq^7j`#ReVN4e&W8hkl#@#%-CLk+r<2VoEU?GhX4b|bKC)dZTmb*&M zgSQXecl8v7qy0}bgK>fEDwxn?M!PBkt_|*ZKpnPo#WxA3 z^_fF{bSWzGt4+Qor~GdRoI?jOMrQ`0yB*yuDh$XyA)->}EA8da54+KDwW?b&1)693OG~2Y;bux9( z&p=ZN~_u4;w^382w>1Tc=Gvji{NRt(15vFxM}~}wJEz5w(%$HB26lP z(|1uAB~4Dp*5YqwiIs~9Y9XhYWI9VYqztP?)YQH^$rN{H(S?O5ZAcZ9 zdVkWUjrrOpfjR^+%Ok1x316D1d}xO4so>P`x7i>;11K-r$O{VYo!l*$wP%b)cvSxw zRnFoC$ONd z!mfnz6o!JpGotK+9WrasXvA;*dT=;z>n6d(lFw=0I!sNsxniDkXV98yOIhZCP`ALt>f zAKplX4&FqH3QsVU5}eJw_%K+DCH`hv*~w%|jFGkQ&-XZiqBe(iMN_bYzfQ_~8@p!& zJ9Lu!%hq~GPDDoZJ^Pyy|0(Wf2e2i$h5L`;>24Jzr{ro7LsqbG&L)}Qc$-YL-l%d# zqtc##b)V=NYD@!41oLN(qxH{wcEmZimiXXW_YRMLT_flx3$^AAa-`6as2~a!9}o<& zWNa=&J7Mg|YwEo~Hl!Mx*=_EHs`ZO zUuv-^`ajB^%GH|n0GoKgq`z))6-yi639LV~`{dBM* zom+z%x+GU@H=5|JUv;STEX9Gh$Fu9*?AnOI+yoUHcqEEFcS|d4eUqRg;h~M94mS0< z3SXuTow{uDI}J>6aLoe=7d~Bi(uYitKcVL09WJz}Cy(b{Db-c^_(CeX`~s6p@&VbH zJFu`Bss9)A1c1gJi#YMU~T&8Xsu1PsE{tV7XLWmCf-)$IqOC3RcwkR zH_9$^frZ^}grdBAU;bKxtr{~S1Bg{&Z+A+J~3XY)C@}>dX*M^5|_0U{xcg6R3M@=}x)}3c2ZjFA+ zpz%~wHHay&@Ou?~f zlw4zcuT?3p|ze`XbMHSxCyp~)n|mptLHSyyC@z_QWF`p}T~ zs$0(|*it)~tKHqPdxwZU1AppifBlSppB4Cbp|A1>faU zU?@H5sZtA?knV!%weCQE zhM-KsL|1U-0%b@IajM25oJu5WioqxgS1-c;u&SSLg#)Z9TirmAaH@V5_BP^w7*-x}tWh#i{KoGEviGw_wg$&ET@ZT4y~^n*jYR_wGyEwD?kZa^_0ELKJC4 zHi4TT3hTB1qK<12_D45E%%;_B4s2{Q_s-~^jip3oRoW+|C7pZ>?_9?+qBgogndZnxea^EEhk4Jf!lI5d8;ACc z%!;-$?8RlV91vkYy~O)#w9rEaDzxpC zq|IqRrq~bxMsYU|{*WJ(UOfJE4B+#j`a4Ru-3_%3K;g zi(80*O&Bo1RIDT{Bz&0bSGvK4-d1-g6eKQcng3fJ9~J2=LfRT>_oHva#3l{oF^{Hn zVebts)$JSXHSj>Fxo*oi@o$If9YUD5rk)EygNozdu!6e+^-w&$laG_RM;+D-)yNuU zYn2g%T&%&aKu}!2Iu#X*#hz47#X=hA;nJ&MD!1~EC3zMiz)@XTwa~SYR9R`G^#G6q zJyt<|M9IcXyJ9r<-fd5F=q3e;z z{#bU9VA+XAxeyz`H*Y@>n=s&SH~h~pa*DA^Z|BTkLk8rW=xrKf=@Aurc`6ln0}sI! zN@#{}Wksc_%f>EJr2p0+*w{G-~i+bWAr_mDuh5`ZS#5x9ZvD9u?ad@mEyqRY zT)g*ru`MF(yTkwXva3H=)cn;1Tbb1e~$$+7beZmjr-Ldj6Q_v_<>j5z&>RukO$=j2)};3 zys0kkmm|IeQqPj-^_vDk5F{c(IYSB)%t&2u6KPTYLreL=@e3V|E`RIqN?;?^7QZm<)U^8(Dq?{e^cX{n%eUjaQ5ol%2Z%DKs?mB`D%&BU28#L8x z-owf_$vOXCVO91Ins&aQ?ewpf<`J#CsFzN#rH$xvag23_-bIed20Y*cqs?nO)@zqi z`mSBdYxQ;9e9<(h7p0T{*n{B&cF||Fn4#as#-&ETm|nf}2nTKU)^r-3z$4^X3L(_3 zG4ypLEHaPZREcA_uu;2s@)&r;8|utQ;!|1)Fa5)octw1WxR?J5)$tqY$6>#qMc@P! zG2AioK}*TDgnKIf>u+LH^7QjjclYtkuApcieXuKRqfkS#rJqKC=#p?HV*GIuFU*)F zS~^S0PO!^+0s5@;t{JT9^gH=XlF78QzI(`|=l5a$(Q#wXw8&j)&cc@RNA;&#)ForN zhFtlduxepM*~~#K*Z2^ytHEMCt4k}TzRlE|0NL)o!L5Vq@@yRM8PKs|niac~GM+u^ zFq>k83+Cjk()g#eFJqoMkoR%15^agpET)J-Af{=^GW;9cyM-Fmq~KTG{3u5(CVrRZW5tQBZI^9_bNq zU^)AmSm|QNR9+}yeCYD0F_Gb&tyme1c;`B$>otg~`1;+~MLwtD=46)&Cv91o0x}N| z!MNt*C*kBT`!m^6)X>span3cy;Mp9kQ5q*K&T@`otaA&z{4|u6t6TrITN)(l_lcbF zzid8~Kb13fJ#lqik8em`_tZ(XAlF`Ml^u+Yp)W!ZKPWWa9L_qm6x=w${+R;Ml_tt*6wV9ztc1b;TG!BX4tg@lMZIJ*bFlOP6M6Lt+sGP- z$Ki;<9s&Lq0PTvIx?x)-o`uJ?7I$R#n2k9MxWoDi1p5FPOv!}HC9WfXOWBKMQYNKS zbN6?roxwRJivf`%o52>y6C9U#=W%b@BOW+_$f)+jdfsjI05a^6qidR~U8tQQqFh{j zX}xE^q+?#hUY=DL3O*o!NbD7Wq>wFrO`}P^IBH_SH%-zGU6=kcBAg=z9Bfi1oE#$V zlG2SJz2k?>O4ow^WVa0@Mio0c@pCp;%!V~LBrFYlizxGa$(+PIS*UxYBq?`N7jlD5XUE7=h0@3D&K$91W!B-F;4A1FH>*$Jr9!Mi;Bn_2vKOfGgWZv)?r0iXw+QkX&8q4g7gaew{oqW0!CTTCJWUX^L zTe?S$oo2n-Svu3&U&a+wqWVf^=vM=tCv=2)3|6Fem=pB4d%-(_)~{%FizW1)x&$J^ zb2gVSI;SCsx&-3cvq?wh?Hc#c6AfGkwx#6nps+i8@oH{of9a@0BQeeV7|lxkTO=&z?4X7m#jIHqEiLkWSaowXPb|psNy+^lltDFlQt) z`>Qp?`Gt!*j{3Gk9km9%MZ2utRs?EBa1~RQPeK14ai% zVNbZuMakJnD=DN4hmuB1P@})rpYSHtcijAD#2L>Jt9wMM8`{K{)DKYp_n$JlKg#$O z*PUkTbgVuWWp$`tENCAs;>!8~&n`gIY0w?y_qMxVnBZ0QRjU~&!oR2sgOvdWv;NlB zKMN8`7~TVK)rl2**Lg+eh;zVz0x`<)910e46-C}$*PK9~C-p4n%m;=NG{q$@O)gGe zYq2kI-W|8@6SIkdP1RgdK%lwvF^{w4G@>%B2jOC;WG|mXHBQS!!;YwTZ(>f;i8&(t zJB%V~5JgR3;Y(ns;SfU~=_MtP+#{6;?LpZJ-_5V>kv)mnScH)ZL}G5)r)UbwFI6Uv zx=|OH`G}brsuaRks}YC*4E47ZQcxQ~4?f_l4`@3tQGssC8-K>F3(h>@t4Ba-UTQ|_ za(HH)LL(@d{FIIc2ZUAJCDbJ}9@K2dF9hqtox$pLA=zD*_2f^{-5M#EX7KyKvS)C- zThpw6XT4jicU&HyD7=k@r{_YfSDJS$sN=D>PaM8q>AhV{>3+zZNN~Hx3An-fqkCl{ zLN}RV^G#r`@w{%h_9Zq!v_YA{ZlF7`-7=EozX?BOo#RqpvPb`U`0i@8F;_f_DA#hB35nm7G(KP#f{;@-OawtDn14h=Dc zS4H;*SFba2_poP_;rg{{bM&gCC1sSf= zWbGY1&8`0V8b|oH_!vl`m~Dsf)1SQhIpq>wQYKRUuo&LKV{6d$Eq63Orr)Epsr^;4 zZ8(JS?=eIZGhXF2OJ9#8J4Q|Zx1k>ISLdpA?zg71msj{I-xtea&w4uSKJPqjKTMtM z5Odkz8#oph$n(A7-mFO^oQ?9ml(=0`zVP6pU^u4y_eroAU-bs11@PX`qz*~@!nKwD zKkWOFG~yy<5gIJ(LJ6->c^o9Ptao1z`({tC{^D>N&TWTOK2t$-~u9oWR zP80JV&r{V-y_M-q!bJ1Y2Z*lbA6)?WN_ERy<^HjUbP`-n|G1H|ea@0`*CdXUdZl*# zBTr3Vz2CrnRWxy^d&ANhO&O!TzA>7(`gdw|2p+xeTh*%k>~QVl#s319Kxw~ay-0@B zFkcfYf*{9KnbgE&lA*o}Ddr5MCW|2#($GoRfBpjYJlI2Ee*pU?4%%ZlfP*X$t==_! z2$|{)0|PTu2?k*~(MF;!qTNJy5*;Bj({E!@8`R=gNJzw1L}R2Z(iR-34u*eKz6Rm^ zC9vawI^1R3j{*Wu+ER$W&$fl|>74BY8lKAQHvaW;8kdbk?L^y&b`k9-I!r{rZbbb4 z+qMgEwSF7dy%&t@+-B?^YQiRM={=gwlk;$p=fRui%$lZxbu-kBQUbxSS4)@;rQ_KCA_T*G!S;bQg6#sk28@eh z{ij|TOF03_awFo)&d6^fx^s_wKt3wd`rV9}jvBBB(2%#H$)Cd3o!HueEpGJ{V3&ja z3k0c+5SMmXv`7bwa2L^oM2|t5>Q-)sWOE-_sg-{8CF^SlY1oGy$H5w4>Uk1d?X;Cz zZry0@vdZ15+pKq4A4JCN<6J}q4bcepDA;}|Xt#iMqDlI}Mz~2-IE}~gcKmWVk z>>BCVBL3>*wHbU%>1wv`T&3D~J}U^1@TdwD$Ti7y;4Bu-a3G3hv^CI?!7%LsbAU}@ zC2b3IVkH%@v<_i89YSsvc;5PmkC z`-xWhl25d|Z(YEw4qpnt!x#7+#xm`{nLpQL@*4KCe{QL6YhfFnS$Jl)dLmmyMliI( zU~DDf5UL(*MX)tA2Pc$`dptEyfwf{*4uiqgr&|36fLp1~&rqP*exK0Z>pV$ko&`Pg zUJXuI%Jo$eYPf2&#w+^$^!K-l?`~DCFqwB?VS7^DY`rah=5jR`0y*;hPMY`~uniQL zo$^C`eWRa7#(@7AgyD#vZk(~KRWbH;jEJl`vTQDmh~#sDGZ;7!VyWYQS_lYt6Fo%q zIOAO_wK(l3xWKn??nK}Z7)^h{4l9Nf$-v#I=D?=F4ibM;Zv=304%@1t^OqCp=st9< z0ItR2?Y)7AahU|e4WnT9xMo(sK!x6%`i}5J;THl;OUvK~zaQ*L*ufeEF6BLHp!T>L z%ibe~uc0>M&kb)IE*R)|gMkBnpQUx~C8F1e-XVG)B~eJSH_$EY#60^F*3TymDXgD& zVuWqS!Wo!{$GVefAJHMA<3vvo&AqTS0XV+6QV-_ErT1cM4erZhD1psFHgI9?YhfU$ zl$XIWP^FWZVsL7}n_(mVR72WR$;_%)zeQ2TuB-<1+RUvfGL(;s7 zqN8 ze|9--DBEF9>kRR-h!U7$pbo0VytFT|PRz|UdJk_K&8w=8l@wLDLf&F~ez|@6<6d!d z*Y)D<)63WQtO!}H>#U~b%V>xTvQRbi2k9*-&3U~W#l5rnb!D&%h5=#8HIf{9$t1uN zWlbo3xMz+Mp{;oGRMs${AX~B5k)>itk-*y=Q*t(KBnLYHiTXL58Ml#$JlaluZ3^@7DVqtM0XOvAGNH!qP7 zZ5b(LA3-Fl>VAsfRjT5^sOzPQNaa^6!ben4M228Oo$$8wNLw^hq7?1f1-8ei!yS?^ z(w*EM+y%|n3|(^*Jj|Pra<-{~*t*NG(5}JO224zwFAY6usGH|x;40QAWT7h?izS)0 z6PI3-vXCSs*CKCp>&lXn)jOJUDy&=FOPsMSD~l^GyLPFy#=7N%z1D6iau%;xlaO55m@)Q;v_%(n7A)$DI;{H3#OS52i+R3k zeQ{;4+^89dU1`+>uer_Yq=%O~rY&2=6h&pQND z&oQtu;Nt)fUeXYl`@Qt+UR5sZ&qP~A5iLB10hFFo1dg>fYZ?_M=H=Cg=86HA;EKxv zmu#cn-IuAj+^wa@rS_N(n2wrchTK!EW;^fGqEmIb>?!AWo!lT7Tks4do4GkhX~t2MtKa zh(jBY^8vI-#_EL<4HZop&M48)sX2G$|HGR=Hy^U=p6bj$AH3CgE8WeGIWOi5uik@r zsF|5Rvppn8GW?%ai%5`0Uk6N>h-w8(0C%7pMksnG10rvZR;kty*dbtbS8Wr?UVFbC zkr2qGu{%c#X{9*`z_{K;nc+9@;WELf5=-Gqw&YR4*Hquvd9WDP?t_`YoU?F$d7Psm z2{ANtU`~=Is~;YM{jh+TY<`5i-47M{1Qy60d3z9nx+8xNY9X5<{s`%&J0g1`fTSpC z_;15gP7VE03ryLd2c|6c441Y>^9z^G2}s)XKMFvS*)NUwBbjFZO0h+a3(kcO>clkW z)PNwILMu@RQ4ibhl__){hgL9_UOJedh65vJg=X8w`G#3kYa?boPVA6w25*WmVOlp$(tPkFG3s*IM(S;7QNVX}+%IYV%!rB^u8pPrqdn zGBF+59Me%Hyfqus0mDJE)!*T#+aH=6Pl$IdrPZj8woJXY-c0$nw8j!z%*Nk})R+^Z z!GRg)wX#=?oZYR4ZJhn2V2vc?VS0P}Er;P&G+F#`D}FhYiQ7o-$lZg|lcqvHa_4sx z?kQ9&K>as^W82pML9pKQ|FhUUQCLJebvDOdtLSoWjEjD_?nb~`bpR3Ui?cgViGT@O zjW!W-K`wlNu(I@kwQ4M`;z(gIpqLUHV-W6Dl2%G{xtK+1R2e}INTfV7W6cXZU~Px% zD(3{Wy2__W^-cB&eS(zGldk)q4UY>dSP(+Ia}a7D zxIJr-_yBU*m!X@&Iw|Q^XWg#c0L;cij^jwXE=T<42VjRVE$jw60Corx)E@5vNKjP~ zSgs?vCq&$HyuGvPNCJt{_w zz*?~)WlwO3 zrfL8h)|QR#hK&=fo3L^Dhlr*#7M+E1vn0KG>r79%7u+a^DJ|0)4n*7g2uT= z>j`LaZhKZ}F`DU*VP1P4mQ>4gw{o1V2NFIJqmdA8}RJ zU`HuCZot@&a~R88bwM-m?T!M;?kGa8?nG-I1>22AL`&+~PDhaF)Bx4A9PBV}A?0a* z`QdVSb-2On<|Jp(kcR`V&Z9zhX%p)=?#?=TaO16Qg@=!<+qI@xzH95&fA`j|ukYUB zu4%9D{*?IOiLa@}1ftj6b@}ud%>e&|DgzHavV3<(^z%HIlI|nEExkyMTq3FU?FGa& z9Yc&24=F9pLeNt$Fg!582lX;e$sSuDmin`q$T``@P!l1jH6P(kTd=hWW9Y~71SI*} z)RglBwEP|=I!W|2(Q}AUiYv=;IJ*fBgPGLJZQ@iku)9pUx*AeVj~ZU>c}SCCFl4|g zy$Hc+Gj^gRks+O2Yq%N%b|*|3CWDwrK4&-s^AmfCCJcYTm;Vc9sqY(pVqn?vZowct zMD#e(w@`bC9tUT`m!ve|w06UGT*8OTB@Ca#CH?_NnE95Io6I{9m$Dmu>;!_es7K~n zIKDNK=K2~7Y5KZ*W_A%`wcjPGYCqRUN%chrBF7?fTT>LM=(#A5s!+>&Xe<}81GrVx z)93sFv!=eU5J{I8-`;x5GdDiIvUKI5P}TaLhT<#AzFgE2&CgrBvSh8jP+a1le&@rQ ztfIQLwJWb$;xlD0&xtfvl{c0+MIY83#=QBn_>A~h(!bf5RJZ8Z4Mt+<5AqhRl&Kl`B~nZb5L!QP2>+m1M8eRvs8_2cq!>Rs0>IN7W`4-XDcSA4OfgQ_Z8vzp890TMxK2tbVGStl!16#UYf4-B(vSmRBF@`y*1I~c+F%DY6I4c)sW=ps0rgw zw5An1`)UU0(`cc5L9x^@#yaT@0kuz6%=W2LV?Df3>(E(P7CFId5Z7-)0CJ|m)F1%U ztnIa-zPv_Mg-QTgn0;52T(SJ7?N!kgvHt$*4JDnPve25Xr;}U@2m_<;ykUMK?+w%o)`BjblPNja&_Bf)Tst zTL6cMMquoVr(h*KEm2<#Yts{532y#_wn4c0duL;NdBq5Uy$5!{tV=39iT_6?-d8zg zVmz0>nfH}KMDRG$yAYV0H8;xl2}FHFIku0a$*m)#;w&i-E?gv zQ#b2XNuaf11NSSD8tP$cqmcQtYQG8yX3jHAP6nr7y=DOEFw7{eFr%EOEm%;biKIgc zBUE7wg5ZFLJ&~Y$Pp%WU(VU#xE#4^}5#>axS==PgWeN9 z!k1^T&0ofo8-*?mpWOgNssQ^1WH}?48%&ne%gWDUK>Y#(YCYV*>oKYjMsg6wDR;%>lxarAz?ch;G^3_tI!s~s!g@3dUOf4A(|71#=wP!a^H&f^{0vU*GY`;q@_(Cu4Y}=k?D~WG zuV%EiIUh%@K)5lBb#bNI%tGu&x@s5EZlXJhj^J0QRn2?N_W{D=ix{$5W`0EWlx={a zd^b$y*|e2>H|xVJdN=Q3$4Rj3;E=Lr-tT#g+pu;aO`GuTm$9Z!MXiIabn^#=S_ z|H&8@*lWa=JB#afjCdv#CyMGa>?U<0Y~5Ry^72=ztFq^$e729f$)?EB^%J z(p&aFLc)~o9@v;3Mx5~1!1f`e>V0f&BbI!}{yt!Vc46-hoOhf3E|@hRf@1ay?rfk4omEHxX!n6#^-S1f3yD-zt2|EIL+!D_FI;N zV4$4WU;;B?`&`ZkIds}~NDL`R4Bx?|{}@<4*h63z$PU|ccF|d>mvdgvIY&ZX`R{`3Z1+i=)BILyswD(ira`;Pm4uLoEB9QNM;=JWD1`QR5v@N)8pzF#12`6(Zro{vE02YrueI}l`1F8G8- zqIRO~sMbo8hwlR)wbF5%{kHD{4mRL&PB?Gd;JobvI}0|LhkzK}&8x{5>{r)UL55)Q z&2?w_E;3c|2QPi_UZT}yvzwi?iR5_pBoe*3(0KPqXoACdLqeM9EYW!`E6kNILxPhi zLKGuvBkCkF#W}Zr{?1;aexid!gG5;gn!7n8HJfp%ZBgYgbfXkRkC3jy97Y6|%f@jQ z<>+5c=xHCIM;*tq7$n1t)zlYYljCR= z$>s+aXEZ$4yyq1vM6*aP6d)u4Cpj)nN|3;%0U&&KNJ!!Z254LrBWOO9S|LpwgA756 zH2`#7dMOkuS32n+>LKbQ8Xz)ukLJioa6|LN<^+rSUxMR79-8q z;P%oOPBpsQ-P-|%@&wm7LXNqK8H`WgP&IY~#&3@7moZ z`L4#siq-Bw;Z@6?TvWXxnp@vdU$-VN5LjKlvaMy^VUYLPQ7M($M(Jr z$q_amY*pvb=_|orh6StK)`-a5z1aS$?b{H>5ml>3bhe@Mb6Dq~OLH8~4Y&2pHBI^! zGU4d4w~A=6ePXz+3~?~qZ1|*@Tg8^00ajFQg4Fsj*j}(hVAnvMGD`vU$(QBVWtxre zm%jvw?mH0X{tOW=8z#6n$+K zDDsEM1k2Tuz(@+gC11tWHXE*EtY=FXB3n-&1$B?*0Ja~rER5|%OE#iwU$(w(JqJ9g zC#@+f|8OIH+fKBdXcvx5Xjx3kpJ3&vfH!Lcw*CdtyIt1Zh~7m~lZxq>P_vwNW+HPp zqB$+LTr_8l{kzErrN=N>ku!^sTUiUa^}vI5NS3R9v$#_>RQx8|DORp(n|@QgFg?Cv zmAH7?mZ@L)n)I(yIf~tgCh1I@plY>BAWS{`Ji_*zfe32%4F|>o<7$-O7^x=XM3Y2Q zi1MS!3sHW(2rldm^lPEFG{XVd#Tkx-=}`v4qIzza&JEMKVLCSqBqUS_9uGrR4kHns zj!VVDZQ;%^%?E;BnPYbB+2uc8q<2HbzC`a9bmTqA^Ener6w*pmOQ?(|r*dW>9Ua3C zA(P`uQr*un;tUY2Ac7&U&HgMTwMK|$A7X#DJ*47GKTT8Lb3|u|-bC7FBKc|i-4Mq< zZ~qGZY_jjbsmmeo{lfk`NNC%DP|ea{chYAsqg|;|JA^wL@jtM0^xaK#sm~DIOY|_& zS24rJ*(9LZ2r@PUHA9#!2J~JKHga5mGDY8<%S2D^!q!P_S;6iEdmXBlN$^9}dJW$j z!Cn;9*JV>fBhcERb91?az}^zJVs+Cp?AQG&>rP`(Pe{@$#IA^!gn za{F3H@GpWri?57XJ`(wp=dwP4uy_<1JDX#q0tZ(C-f5(mzs3V`j-p^%yk$x!kZ&^Rh`b`#fCvz5K zEI$i<=^U|?$?P|mo9W%(f?dr}Y^-2reEgl3T7-W4B0;_1)IvKfhCu34$< z)y18iHAB}tR$c$~n||{f@dAlpKPsyHE#mP1GV@pQX__beT4ivr2l5w0@i0QY#=+pS zOP%r#d&j&qRHFE@52CmOtQAL0Vc!5)n_9Ji>$$*Ss*FLUWbYxHQ(K{2hCNYen_*a0 zhj37vhKMMdFC@>2AJF5D7}LrIJwQ=a_Y)ji4@Jb8=79d>MrRlFrEj3M{sTc6)-)m@ zhLOk73U&|zQXAM9EI|jsdhu}x>})Wzl(Td`uYq&s`XBMZtKukTai+U&a=qEK7tMRv z^eF!^KWYZ%N{QX5NBhG!ON+~ne~?W!Z+KDIlW(=z?A}PwDT~#e;xpAZ+|aeQ%3xe$ zDDL^j{a9#t?v|EOoA_kap6#{DHOW5j02HAPymOAoLxa$c^LYP5X!-#xkYiR2npY9D zzz-7ny;jDhhtw282sS4`Su@E_Cy1UR`mP!Peg^KXY8>|-SSXV@6;~5+9@UdA6xnOw z3qufqAVI?nl`{}Nq9usOljU+Fgb<_Ei$hPKHP0B|L~GuP=Do$pG2L2t@)5yAcVnWv zF>zQmDQjJ(-9YlzCAp^3V7B@TWCCRHm*^5zR8IqB3da(6|12a7=RJFXu>?SCD|90p?pz&qGl2ljJ( zj6uxk1v@=kM`fN#mjS1J3q=}bVl%UHI5sm2C<=;E{a}oyqDG({pqic<)92PDSqDk7 z4w7UYB*{8hl6A}$@jEO%3iaxaWs$^T~J3AHvvnQnQ06@HV@ZgSdYZ z;T&Q~R4fU=Hy#%2S~(QyJ(IEY&iubGGGuM)c&I=sytng8v8v~a7hk;MQ`4`D7tS`f z{5mtv#BmyDR^d;xalR}bOoAQLAckpX0~^*p(iqcfVJ0&1x)S_8X~YP3t1-gEU_HP# zJf?*V)A+>4DPjoiwF2lft(=FPH3f-^5pp^;*HnBi8r8fC7YnXCnK=JT)}3L~81RYv zOau6%u0qhc5~Ct?%QAJHAPt`0+rV!-JL&&l{Yt#>)1TrE>2~+uvE6-3MyESN@60Ux z^Sqp*g!;P1G7=Ui5gnX;KS=28MrvmqTl9vsoX-TdRI9M67EaCTfq<}&1Gqkpk^njY*?@zy^0{SDMh8@}~h@7|LO z(YD|BJpYGhE%xl$GnxJF_g(LL-?i577y6skMZAhG&`XLo{k}=Qt4RcV48Q);c=?Zf zj|$E6;DP6M3EB=`pa zS7Y?CWQTeb<}w#27^bEYXx=K&yixT-Q>8h9jqdZD(9nP9%;a;~odbFaY)0Ms{T5W` z%lAIi^pL!h@Auzz{u|e&D)~jZR{`QRVyG3D#w&L+7TZXvUh#{2%%R)OAO9CBox21!6BCd0GbIG7~6lH}+ zK?yk@M`v-=4#ljHO-9innD#u~&>1~~APGor$t@XsFbnR%u`eSJ`-)8&;_8BK7}_!$ zh^IRf9OJK{KGi)Du@$H$sL2yCS58b1xj|*KgLa2FQ`CfrlWC)A2P(53z@Elx+eX_C_}>p;O|Ulrin~BKP#jQOQmXBe?GLaX*_$$~K#mv1EyD2Me z>#+*ppu{%JHiz-0-wfOiu*(}Gci>C$eP)9%plYm9-4Pz9xC7fqDze}WZf!*#?Jx2! z{l?9!vNPrevfVeVh>e>w#$Mo@dxtCNaYVh7ubj~9%JjHG-Ycei^TwDg%9ib0zGHgs zq^jJytzl(jv1)o&`HpPr+p5TGRxG@}?@mRPH`9c1L;1|=9PZ26G&bLpdsU0HG|j=3 z=aFM%`(*u+{_XGeSd?bGanL!gOOGBtz1Ae{BZ;Q#>`^zO7BKH_dEsC%bet z#w-8+F{B=%-ye~`CioX3sF%kS-hhx`JJeadrneQrLwz#=y9-EYgde^Ko?sm6JQVW* z&)0qAR;FzbzGEJa;5M@RV*@_4)`=K!w;l~1mKo8&uh1-#d(h;gorbG5-?9w;n;7>Z z5ZD5X&_v<3u zdvC(2dff9fPntwA6%CdJ>wtsuLGUvS4tp>P^pq$p#(a)tr!NVHbOuaJf7M3a#@&{{ zi0o1I-lisBLv7Lc;-K97z1YaOKf^_C!*3j!zS1dU?>FW`jzK%6^G02RP1H4@~8Mpqz23eGNh;7G89c8O^@xTIyc}+j2 ze@3SzaT(+8P3-;3X3;iwY8xBc<|rm{j6khjX9!|Q+g8T@#2|F{V0(#on_5Jf3f&#{ zn;1|nokj7LxfWUnb~TP-f1@3W>yplV&S20IVwF6J>7zQ>2vuN?pwLie~DEfvamU$`V!PL z1M;YOlrzLB=05F`UZka$Yxw}xlOdo{1s!P?;N-Q+ymY_d*=%Uos!O3^=go--08=Jp z5hMaee<(up)L`|oHLw?Rh9FT-ZVm56d36zhtsf8n3|Q9{;fY}diDldT`)Hj~+fSZj ztsVqIP6M&(L`l41V*M5V;y~uejBztZW!!RW{^Wvh{j$+AW>o1o#XQBNMoMerORrW{ z;nQ#)*yqX&Zm*aWmp&IQ7F9?7oZ8QZozsybokfZYP}Ovc?J;&ZzN*Dir*qHdp3kKT z_;mbi{5dtnzqDWl}~2wp`sBDW5-PLm-;g+GODJR`&YJ3p57!cX==KxbuGd{R?xPx zrnl{z>6X<_qdkv;2K};@U6<~Qr;RpFNg43Z)L~jz^TE?Q3stH6e8x<}fY`%#%&cLW z3q4ZrVxqaW1@>W8jb(OnTWDX%Xsm7Fedv~hd*@d)9hwbYlABF*Nouy?nv85;39TOv z(V`(HFA#Ar)KfAYQm2lV)&@)&@;#vTq=9859aAQYF^ol5kVvOkbq=CeT}#rA*|4R{s&YhBFmH!AJld7XBzRr1{wD{3L9uz%qTPy} z+*PiAev#SHB~fPcz{y}0`x&`g+5)7ndiZ$w>U z3(mK4b~#)69wr+|uC=ve3x65rm_s&H-`Y^~ic6?-?@2$m^ZK)-Z_YT4l}bBC$Ygyj z!&MP&$Wn}0doe!Z_FmAEw-{vcdyvapS(>&p99Ikt+@1*y$2Vatg*B(cs+Wizg|~Ma zJIHID?M^&)X9G5ppK*3$Cwz-@5B?A0pdQG}^e8r5V1t6E!ywB_dFRRF9ubFqWimPn65bx_@d z{9iTm#zfT>O-(CpD_7Lc8xvmnfh)JFc=C8>_UOXtlU(_e7LCI$#!YQS)32Y<{$1Hp z(pa6_asz8Izh;n=vY(!NK+0Fv2t;ZyOni*M%4yqKtc#YxU5KY~0`iQiW`RB}LB*j? zLw%eEW#Uk=Z1Z!59P;}P%PIMkthObO)2bW5bMhB5C(1d=R>Vj~l1yOEOgi~*bnpw3 zUz7Y^LWe9+9Tj?&{ONf}8U z+;xWF$9)cE9u&B^;r`|N_bm5g5952*`;i`K!=_#oF8B_|0l47bGf+0k&(SZnIwE-I zhYp=%s>my&ghDn-DEtM+YB^k0uhi7ajq|o%e@E%KS@HU&u|<>PP3}C`PJm34>~M;KDpCu9zAx{7+IDEnOvj4AlUYOmhrXnSd<-%0mZKCtmuX-one>)y7hqF`Fvnv*2!!9~5SSY^JhQgnoFpks@Q9aIcz2_&7hW8b?2YBFAOQQ^l>(E#J| zMH8qj%!O|;%E)IQrk>e=@$28e_ENWTDf}I-gy3my!qmdt=q;K_K~4tJo9TDb%ARH` z&FSs=IH6Zq-!WqTb zqk0d9-iq9|9U~5m;Q8!iy5g2Y<}JxHo^v=Z!I%9RDui#bK-EC;m%fiLvSY?5gZdmV zv--bRMM73ps32`W2T&nTl8u_&0)K(h)O6^ODQi|u`4wfsG()mIvn)R`*V)vhT)Se$ z#J%w%6pZ$LBuJABY6{;knOKrBsj}}qC0oylXayIxd^7jC4I2%fYF^?^cJ%ij?w={L zxg+Fx{hU7COzjNyF$Qm^B#W~B!K5%I-5fJOOMED=PlUQfRFL{mKjFeo?c>71^`oI- z`F$9jV|YFq%K+A&EdyD9$ob3^tUsBFis2r1W*s^TpHd+!n>{<45yV|l? z&ykUS$@pAzd0hrt;m?&5f)hyktHB9m<6M1?#R_5|!I0dR0k7Nc65~IFgkW2}j4%2>ho=EEWl6XNUCvxAwWHjlq-t3vT0i%&GGQ zt$k0>%438yTE0dgxVW)bfc=xT?skxZHMr+v8|6HbdFH#9xfPz;3Tz-#NjBK#!{0ft zqan3u^9_FoBOt#Aq&aOM&7lU*Uq|z8m)F^wJmC9Jqx{5x<>9a)|MWUiuI^tn4$T7inq@4nE5+Jdd572D z1+ty*h(`5D?F4+MWl(3K&KJRRBU@si7VAogbMPIg3uTBRv<0p2G>!F5%LUFB4DuGVFtdJ;m@l&cNlcLe-|7kLt7s@;#=}q>9IcXZ!DfxVWE7G5z318$^ z@Z?Avm~)VGXar?si*^DHe-@7*FDN_{BOZ#pPD$|Oyp&`3Fk29Z%p1syGw;$oj(F329`!cchEnHD)>ARLaJ7}U^oQ{0 z47;H}Xb*oVjZT$LqcgAR_f6mTj?2*ZpIuHyf?o9LoNnx;f-cKFh%RfrZyR=zEWR+RZieB?T3oyu zTMvGtM-D+-@fXNL@K*LMIDPtZ#Fc&W)S;LwH?LgTxS3H`68)$vO1v*i0I%c;;FWh! z0I%=)1FKXjklquBL_o#WS@6&Tv?R&o^msT;)Y_T+T-Sk=T=MyRdEg{yLOGGoM@=1K z`dA;CB>S+fJScsFOHx8ZVWH6EWW=4Opy-k4%(Nh8GE(0C>&ok29)kf3V7TsT{0AB= z#n`;o_pP-ebc~9?M3fa(7BS3)(dL7u*xYqrp zzPq+?b|d z-iXE2E~x$3O4y2hw}bHSR{J+%+B|?wr(IAR(Zc0{dbIW~9B&A1$GV~@Tul>bYE^hc zczc+-$yVS|6=hXt(MfF2ZOEdN`w>)n9%?H{E1ZYL- z`QrHM_{O+O@5JjtNV+S|v%{zOk)Ps6eu_&!1%IKPu4fN8jcHP(laz*Z5S#IPcg((d z#)y48XWcYog#3=}ma7Y=)fAX)w=@+s))c7n*N^^Oz?qP~^Y->={nw|@zPmkh!Z+rK z7?7T;q(AR@L!S2uY!D^zsClc15rXFHl?C{~kd6@=u49N{lPwSI7;7`zK`+7orB{*MTiUMl)1oDl7A=|5 zT9S5>-6S0(M@deQ*jkgPGtc6adI!4%?h9Uowsl4Omz~x?Bme^#SOf2BVQ3}#g)NjB zqTjy~-C<#DC7$;ZJhPiv;lcUn))v=(<&zuJx@P=>nk=E^8*DS`vJyp^ig|8rl>S#g zZ~v~?h$X#b;ap$w6{99!^)+ANBm)clg7VMGvr<%fUCcHL_?dOLiBYCnl9K~X=+ROD z32w>9rJqUEZ;wkaO0Oe*{{WJ!qEZ>c6j@R^LKs{K-HJkJKo-~0ADTsiS$s9gMiMv& z2S|>P94C2^{=f#3?Iin24wIxv zPLZ4;IY)Al#L;?XKCM?}DU5>_e*?j!a97HRO(Urn0ykuy|2pe$O@_u zx>QFmmprS|OC)cQd`R*+5OrGU&pR0DPNlX{rFxRtBuhxvkPHXIGxSS*tx1QPg({#- zegs+sMr=Qn1enwP<&#V$o9-ugye-oTMyYSorvUNbO4zmiy06bNpz|y zh!Zhx>Qr-VRcu3y2Ii62all=E5c>=kwH#H%S*RzrV_q$djgQfH6~@Nl&8c(>7}0KP zuNHQ5B%(-i(~xk}kN{Pe8xP7VYG1f}mmv>&7mgM~jYn_Kw5Inv2hBZ$QW(>H-0V;H zaWnOCGxc#Z^>L1dc+CR7FjH{&siNPiL;9_G#Ov4Hku66(e!EHWW#^B~4P?7qcE8O( zBEv~G{mo_97nWx_Oe3czq9*fflQ}mbup7UvJgu&hGNcivy#A`tgq|0ylfMkZ`$E69 zTr$xkHPItA(IYj10Bnt@WB@wX(XGvZmc^i9- z_(p)ke2jH3v-$daz=swL00kgb7n~Jb98_Dc^h)EUpfr=@T9O+{?jZRd$^9f&PWj^E zVEXG@q!H2{l0zh&BqrW5Xhoqkc`c+;(g@#(yb&~6Z5biAah(DEifme`B~sq(cy=P2 zdS_+!bjA~ZgGpvkX{%Axt|><4>a+BWUmvzEQWh0lDQau-u$n?<^abPvY*qK7w&Vu& zR-Ce%tY29rORE)Jkg_|$v4YZ8=W*0WeU7>3PK3U10gK))=L2*$h1$^%!14k*mRU}< z4fHH+NtCCO_v9fr?GW7R^Qg9*50}>)kH-^mc{}1q$>mKhi?4;}dm@fhby7*B2qCyn zpFml6s3+wO#Y2e@{S99zFH{*Khs77-H@h;;y;!Ejx;tYAE<4@W3Tn99NVbyf6^+;o zd(P}S3!t{5SyrhV(3rJpY8__Pxi(FRvIFWkRJ~C!EogI?F^9==mO^cYdI0KPs9T`M zBRc^6H*|;KzoGx`bv}p!xow!(n$uObDX3bga%`4NAeDMO_k-Nea>0I>3n-J^SS~gH zBy62k<)PdMsxTi%P+Pe3^|R$@d+`Id={33oXmP4S)`HpsS+E5}1f$9jrkop>){I)z zcga*)TADD=aL%7SW2tQjdCtzT_8oOqQE6$RzowyfBJZ)@t<)*MB%4&I{z>3H!6pqU zQa@yvBVK?rAx64LJ%z&bmyyBkgtb9cI=LmQ0SkD_bOy&K^s3o54j~P$N=I6YC}`9c z!|=T5dL31bNOs}+bZvcqVLHd8dVpaKYl2jSRx&BnXY!wHwHyMX<<)lT_MQT=#7sHWl@hlq*qkcn`AaUxPaz?wApZw*>I5AaFE$xW+)f3 zX`O7tu(gpM^$3_ zR0F9lpTd+CcKoziPJ!+2?$JCxjysn7sDZRfM6S!hv6|c#-G?xy>g&ok^=hNanOC)T zl$<7`m~LK(aQ}46LexHNKsD5K>q4XuEyRxA!MK6VC>R>(~%4wm|UN2j~1|sIQ~&!|REA5-9w*8PF0NJlnCu{Ho_2gqPloI4h zZ7thdMxE|fJ%_2hn|h0Ou^hV{=q9VmfuvTxyc`&I-P-5qx(QEyR?)S_kP@dc}JLp8XyCvkKbst7NqK^2ILu0bGs98@8H zpD{n~!xFa$xO;$~py$28x*cODj8$)#Ve~koRAA*x+B8gJLnwpa^{?43?iDefn=wd~i_{&I-w-qU^8Lgni$RoOFl$%8l?70gVU`-yYpF^VmN#fWvGu2T+RVZ5IEE0kjcDa*)K?oQ<2v*^75kb znK(sbCC{`Y9#<=6Y>jiXI}p$hw1eDkUAUx;3}!l9ddTWs`F-lvs0cUuWLI`i99scy<$-|D^v2KG8E%BK_W-PCWQr>${k%Dp z3Q5|b#pwWy1A%Eqq%}OkqT=)I9`D`V`(p!SB4wh5((1=UeCH<~t9W$uNa(;@siHqE@5TPit@v!k=UE*-3zyrxce|AB>3aV_Y<{8Q_L|<>H8@Bdjg7W zR#{f6r;|hH`?*3Snu%HsXmX4{(_e-;8v3XCKVqF5V2ox2h|D!Xr&?UKuKtTAn^uI(OD5DhZbkg z%hS)(Lnp>Un0hsawR&QvuI+&R#VC2{7zA=3A>#h=viryCKEy)Z_|h~bX)XNIaA}bt zXU$yU5&Ji%5|#VIlYMq47{|;~)w=J9fsrs*y|@R2^D#e`r3y!6(_6~@W6099C)KoP z4|FlN&?g(9(;avm7;9EPCDIw`XtXW2aXRUp+SO2wr%nk7IR~rLif3(7t7=%VIl2y-8;`54EjQel=Y>#MH>f6 za{BF0rfr~F2ya{kZ<;cbWb)(Le|Fru$J+E=R_}l496Dnnu5M@z8X6mmd!ISB3Y&}5 zr79$`060UwMh?4*!RqwaBTVLz7w2EAg01CT}dkfgg58$4(0qJO5A}fEdQ^1S5Im5$bhc z5Vl5t5WYwA2fhpcH=wJA2_Zz}i?=;+Ku2lM!j=l-uLybNTGh`hks_%pC3JV6{xC<~{xPp@b z)^%LUco{ea8P3D{b#actxSu^@^!E`4hiD_Cw9#Tdg!C<@K4J7E@0jjQVTNR5{PAR> z*@SLkgX`&oD|7bVc9u?-L|!${SkH;qVP63BiI>>VTRS0fIS?p9_4C4|D`!UMcb7Rv zJ-%LLR%;*ib`@)vLLG=HjNEqNH?@xCDIQDLdCa%${x}q5d0Eqd9M}Mq?Vjc}#!Bd? zImM=&Qzjvr`brpu$XC`fL$}~g$PcWCaB>q& z^4YU+{@I?g-w>LCI|oQVVQf#-_geS7W9RUbkBUKDa@i5#rOfxFd>K>2jjr(0!PnGV6cRxUevwQ4H(;ph?ACFQ3jA4mYoJ*@$5Cm zHh=!T%}mm!x(TpLKGO)Es`_ww+9WOl_ZLoBl^V`laA*NgDQ zlu%S6RXJ2KWp^8WH9zrme%RC=!KwS`A7x?QdiF@p3*L+PwY>zP7|Jg*FH5~{Vkv(T zxTAwr$?V=RYdHBzQ%<=lr$1COo!p&RI#V(-0Nd40vp^+x!;Uy>AO}SsIZlGk2n#O# zC&A|*8nUQwlp7hnWdE`NyZ~>f6gVxxEJZAtoOuT-Z#htHR`%zun!Q+75vrwQ>}D;g zBU@%B=n}?QW?X!~UMo*fW;Pl>WxjhK=sG2(1-xJZc5B>x5z8PyZ7(q!i+YV45IjKO z_RF(mL+rfs!2W7JVnsg*Mq!o4S8*`8L5}Vz*u@3Ue1V_4dp5vgeA6_;qXGd%_6?-* z)<$cpamP_ zIe*RoTzrd7-Vfzo$};Ae`yuzxwIbRD5PDi;E8-7hosq>&xFLwK z`w|q>x>MZ}+dFKF)JxObTg>c+f4R27k7MgnAsR|VO=JecL=j#BPzBcWP4%<%8kc(H z!3yAzCUGQ%jfGf8xa{0#OC5 zC}bfUm?tRa1C4Ac~*)914_jsJqeWqsbiwn z;#`^;ECMnhKqA}Gtt>8jMcg6AAsQW@s?knyCPCq;rSwHPc~aNs2ECVm0w~|kV}S*k zK`ol5$^Rg4?q#WAiT9anTgj#@2(}IxYg#?C4ccM=3M48+;M@q)_B|y_S<9miw*=jU zco_1#@H<)5^v{YtrzoE67GQ3!5`S-ra6-1J(UfISX8{K^qZX=xbbh;3t1G3pcnpoS z6;qO)+7x9w7^bW%&tfndUJ^>^R^G!v!{$!g>;XaAM?zv>nYNuPw}GvyL{^|{VPfnd zJbvUTVI%sEFEbdXnWAG)H;K+r!C}R5)4W?fVe9%vIDo_=O_lS5qlwSs z`wFFGIPFNIJjc|vUmsQR?^&62`TB@K z=~?jgLBl@RDS2|`^RgMmHFZB}@L@&fRLssc3_1Cm>^;Htx7m?_=a`d^cLU9p$(D*Q z;lm~BUA(huZ`uc$P8a;6MH=MQ!IvOP>hQa0d10|b zCZGMM@DbCOTA&eEXjLx6%UXi4Em8WiKg>wBA#e4l6G4Qz)wI1)c7OGPzCMFYOq<9p zb2NQHpuk>=T1bxesCEc>Bbd&g>eJ z68<9fT0M0*ba}7P2kHqOkvC!4R^>$Y{jAV@`G)MBDcgXOBb|Qoe?ooo=x4K zD<5K-J=A5!7Sqsc;qKcV+bajqosmuTOhR+|eR4NvZf}+v#x~HqQ%1MSi@meaLDkjF z!NNYPvj|T;o#%t{{%42yE%Xqo4%IgQ%4ybY6QtaEQ?>tn9#Gl}%w~mA@GMv8(gq0% zHS*o`E#ye41a-v&tCodXxuWJU(KztI8#kQ5wKt|31Ra;sdGLCBr z4IR`7xoV1wUNEj7hC9uz`7VwwgLwHWRsxG|n_4h^%%J0R#gg^#oU~yAUR*7HQPU7? zCfI#v?xXqAw_9k?te75v_j-9%kR07CyAvyo(ZK1+spz3(AtyoT5{!5iS% z05LC#Tk;`Fe2W+lf!%`p2x{S+bPjFd%7JKcoTgyC{~=3!6|sjHE`eA)m&iTE80V{J zhBM&u34+G_a9f<<55Q9nLM?gy6daL3lP&B(1^PPI?$}|dP$?j?PxK)n2W}PgDMht! zi}-(!s<@WGs6IBzw`BV>>wUg`sggbv7t_&}B`rTKTd5N2^llhC?h!|8OKtoeNJOW5 zILZY411uj>fNZZl%{I+W!*R;rrdatNuc74;2T=|@PUHf0`dJ;pR`#%U!`Iq@9d~Wh zZawmQqAWa-*odEL(+=8F1xUD?i4>%zPnm;F4P27l&_mqB-L9to2kw#cA@@T6ulmJc zNEJ#c802t9Z^}A2eD4SW`^vWo7zL$t)9$nS11P#hKkPm8Ly6VITh|yz-}alO_Uj0= z1aD4zq~vGB@2ZS5^#`|M09AyAYFgLSgN599AKqzAhq2hANaocX+(SIRC0I#!k0-g_%2&CvR8QeY*sCC5x+607mOu> zQZOHWW^M|?b)BnpOLn4m*qHbe_3DI8FC;+)xl$O!EB4Ng`V{Ht6p8+C2Txd|dCaW@ z)$>K(u|C=EAAc=7o&FJ`J0tT)+<4yjPoY0XnmnW-s)98vahJsGqW6Cw-pD20e8mN( zozIrfX9IW~eWJ_e{dkmP+8)TROYHO$=N<+x*V8x8ctX>A)UJnIKZKDD=lh>fB-3wN z-4XaXg0+3X6j4c+z-%97WS`8clL=LrhesS}vQ`I#geU)pA@b!%PCQiT1;f8yw}WrN zT#kac?F4XJu_0l?rvhM>pV+D&C3(X9Us#0DDA{4UK^oyNb<~NK50m}Y@`(cw{Fe*n z7g3(bpC~>p&&12y4Y7!)y+EDVA~J&9fJz}Qtox(-mgun$>7Hb>5oi5@X&{V2#vv3T z89pkzIk(DS(wmV;(R`><9Jd=9O(#H>NH(!RivWP;z5vX804xa8)G*t!{iQ!Rhjh^6 z3*Yf~5weCr9}PBRpCZAqQtw2aU10)fz$46h2&)^^9JNKzOsrSLxmMd_r$Vjz_N6-* zyT+Pqw0`ZZY`y%Y)sS@w@DQk_OsPK|#(n-YP85GOXP>%tN+FlRMp7 z2-yNV3ipj23vZC&c%CTd2Lrcb&mMp!FtmI!E$E{-6 z-wodPl$f6nUlX7BF?zO)K`$=@5Lfc4n4?(HAxX`OBCn>e|5Sru{(&aN5XTh84=w@` zF4C3w4RB?`l~Id*h8(VbL(4H$=**lWrQ$qdzjvuvrkduovN5U@*})T&no^cToT5wslUF0b>~wuBlu(U@In zvAlqxuq$5|XA=w!zeB$C_)puAmCb=KQB=j4;7&+PBM^WeC5)KFFGP*ws7TeM>f;Q- z#sCqqYFdF0H(Jkb{+#}QjCO&?dLZz*#bJW$Z|a_nv|#6Iz|K;GohAc2P5`za0c_d( zTC?}IK;!ZU_9eSQdB=Yz~Y9tqu4L9OW0I^A&u0uZ{`} zvl5HpmcvvFBG58fogJvwl_!Yz3it?2q5eE5vd^IT1K<8ledDx5tW|AJ?Q} zLBU!b=LCCnQFKPEj29ly5}*?r&wKmh?#hNV~4b>gUhw77ZEavnpGJJGp(0-Dlo~16#LD zYqmesErw+P&NRIWTVpu%oJt;-_V$*=a3&Wew;gA0FCl38O7fxm3`=c^tKWE1d!I|i z4K7|49D0A@PE?|G|oH5M7$nIcCcP$(`sN3 zs^(TM4d9&dVEjeIqT@0HSN?s2^1M{upzLgb*P2R>o*$?e6Z$ag|5=TbDgG?+wXYrP zNsul&eoc9|xnDR!a*D|l`iC<8I^$Ox#I70rCbR!4$LsN#>D)FmwJF9F8lNf$|M<^e z0H_SIdvcE+4E=?XBT(5}wkgmUvK*M6DK^Jt-90&(udHGDVOb&++`Y=qJjPjd>VNR9tAWoohJ-HXA=sIy2JLSDH-WPY>mV$0y{q*;PHzSf z?fnA~=G=j5xz2R_Wptwyd7<%;LJ#Fk?joJdb;K^yW5f5|?~2oL(qc)eO>Y?_wHl5D z+W4RwU15x9f-fFXkzbFiu=NK=#E9WH5}v! zQeH*aEa@s&sX0J-4OZQV)Aawhkhh;LJj@jv<4=eev~MD*11+*%hPt>7B|6j9P~^K& zijyQ!^TkY7#_SnT3;yq3{%_YD(W9bP+UhqR7kbf>xOp!vQ}B3({X-}f98FMa_cGY~ zBTuUrC1y2YHDNY{E4bkquxwGGIz`i_wUjZbP3b@XkQ%d`{m2^J+?b&r=VWDl8`|l*q1pJKZ$d>)Htq z;akxGF>QROw7$6n&#@2UN{HPTh$iMeROE?mOfwkPcajeCcL;SXL!_TE;(!}Gg`#_C z34pT)t|bw~<+-!qn@H*ibE4KQcO0m<&C=XC`^1&V@cO?Ktmj*e%*$9gFkRzaF_qd~2&C)~=S03oD69 z5vWp^AAGW#Uwd%kYU?qpLd|_8(umD{lzP8)d79?6hKLv71y>swL^}1@(YBNJ+{7rl zYab-g_8iLnmFqD z^Z!y$g8IwY{4h;JP<#3RG28dkjgCrDv#4E3_#)jO_Xvu#{# zw$J>~aSUbL#QaqHmiktRQKWTDhrWqDTBr&1Yg%v$`)?*|8oa&CoN-)d^a_wk;9lv0 z^KXz?dJb@5bCkq=you!rys~Ok_X(e>9z=93UA`CO5P6_S-oLY&=07ZFkzd%CvqI?P zAt`3_=?Dm+{Ra9x>&jO(zv1H?+9P*xdN<1aTKFKl_9`vPp;v9@D~_&IXtO($wI-V3 zW&S`xZl*A8D$mr9&89bt;+tx(>P;?{u`uxNo=LxwBzA6g+=%YV+?FTk-$Sqmn&Ec5HklXK-YWT^d8p{ODn~ z`s#%>y3lh^aB=^figcmiY5mBpsj6u^m^}g&Svk80=txfKZ$$&#<(O?5N%?SYtwi#0xYO{V!TNdDS(uqGDUQo8_AUFacGo0G_a$tpr8jbvs|0J023h!#tuVH+`x9s0W-IdOdvVuEmBk5{|{xY1C{=gw~(Y;|}m zHhi#I__IuO`sz&yt&IRS7jKp&u`|ZN4RKIqqb#Nj(%rFU?0}K_xA};3r3MKt=yGXykz&@P*QED9 zUiOg%(mD(1*yQ#4If6G1v?3o?c9T_W?b!oTGHX3~r|Wv|RoDIU?)Ytrp4af2@ER6! z!1wx3Zk_YIu(>cIl3<2A=t^qK#)Ksrg0jLC3_)jNGk+n7lT9VVqenwhDWNLLGIUfub1_Vr^fCcCDOwEg+GE_6F7LsAg7Lq>% ze27^d^R472(2Z(R?ZYcH1r(cuNiD&qm*Wg8Uge5S^Z&=AI_5?>g#BZle%w)o(C+p#VGwumyB4z6kKDje7q zv$&?CZw2VfQ5{31CM6Q<2GRFXymi6ViVZO;3$;6MK%7uJT&ODv0bY}d!r$L|& zNf$-Go_OBIyOG8hyh@JfhrO={G|8T%eXxjaPeh*1>rt<`)D2j*{mtcwNe{fO7WZ4b z8e~Q6Vmk7q(UAgJ($oWN)|P!HIQra*q+^6~&TRboiB$(yRAKz#SD>orspGh=*r15_ znxdU8KZ&tnT%8u}{I&hkCGRKLUce5j(>iWC2!2<*#E&KyNA9Dg}nOAbV5IaUh1zC@W0I()nBycKqqY{{NW;|mU6)EQvY{+*)K|X z6g5Z`2EL*Pf|TL`6@ZAgFiMMR?qLY<$E`v|BzUn|_ce-cZoQvfU_@>-zd~Gi6gZq+ zrCmr!M8dw^hd`N&5+0DhS>E1Vmq37Uh)r)OOzm!{S0yc}g-ymxEtB?r(bh?W`K+J% zC>+GAM-|^^H&ac+eW@^CO89NIa`_ks; zkN=ZN9^&ZfT2+rFV6`q3FSMfw7XYcxM$}22P)Q`h%z!Z$Tp9tFFF9Q8G^#Lk^rNXs z1mA^H;&oKOy%<>E^)1KDL{c`Lk1{`g(SZsZlID?x!!d@8pEk;28Yr@>ow8j-GYmo( zO7@2Azpj2CES6f#uPN_s-Be+yb_-GE*v(-|-Y>UZe!7%%l|5q)D$T^KJlH#TeZ5O|wqHu@k)0p+go=h*4l@SwklkO>)^oO1$j zxgFETJW$NA6w@k&))6*QHy{YBjcg9JPN*&}sAP@dRMNcZ(a68IhEs*{)8VQh?<~@a z{9CdF3})vznN4g_phkjUOz(x?mlvlHD;NcI{IrPIdC+K1{pe)>)b%lb&(I;95#G+` zQCK}XR(Tfxn4QbH>pAE753q@`nS?p9+7mJ`oml`7D*#`Z@&T*ljW)YW}(_O z8iQn`WH<5{cJZry83vB1>Xi)CTH(o_`I!aiHON!)uL9O#nXxp4B)Em`7A^m5m*^kp z5-b893RUx?UI%Ahm5Ocxm`(`wGE!qIaDyg!7}#<(yHhdHTHIZj%Y`X>haLK+-P#tdDD;?pzf2YIFx0kWF0KY*ERl6 zg`2>pCO{@}Y6y`=0F()%la4AzKdJwW19ftRE7#+%umaA~)2vRVkoD*@I(UUv(5ihTg zrHF11Eu)=2f47EeaCeKEcj2$nit`5tQff3$2?JBj9qHpH@$_o!>zV%2L0CymF zDKV8-1e56DiO~vU2K0n#Bku_%{Y}RkyPeDu0v|29j4myh*OVqMDD{liPj*@DVz$((-RUCLSicJ8PkS-fFGs3u(>osmzebG0NM zvC6iXv_E`yW1N(H@NFZYaY@A;dJts_hAI_T|iAS zODX~`+v6sue-YAnCVO;$-FN-)`J75J2;;p-a93QUy$=&z8C?fWEGJ`4a~n_hbMje1 zxS-IQw+S0>yasmtn9NuYm09H&vsynTCPj6Y9DV+Gxm*z=S)`+CmtWYoEk67`kjzW< z%~(odyOCOSd^-6MlW{?t0p@N`WDk=J#2mIdzRpw>jw6s5__n%&Y#?K5C7*=uLXevu zRwRt%)PCY%KiC9BFU@_jh7sLrp(qAY~`eO&q|5IRR2ES3ZL5}F4|QKOx~wEKa6o8o-^0Xg`X z<`fKHhhQgIzE1>Q2B82(E2Z0&ZHJ?u2A%ZWb=UAgL%4jNvp1Jma>3agNXYuNJWY?b+xwR!)us> z0Y*~9L^@_T6c%bU4l{Fn0)i~=PngwZ)76Tn!AQP*i-R(;%X&+?@itdO?+v|c{IQ>p z_IMK1AIMJN8MrT=nOls7H1&P4Vfx{XI_Qj;0wcC~TSI42eGl5UN{PO6nO#by z<2&KN^j6Qdfr%sUc;b`VKVrtl$qMaFg5{q_nqszI2L6ELtS~}VN%|5+$O+!a=FE$v zR2n$TR8$)5RS%>Y-3#SgV`A%bL9V9VT!8e^HnnPp%Y+ekT;}tyg~JQ6KTZ4M?&wJh zX>&Bpaj(zXw^>_`aGHk3q~!E=3^o?(6Dw_uMLOE!dJ(!rAoJOc{9gRYV=c z#j}u}UWHr}CrM}nl0*`2`&`! zgO`oLn;OZ0ofH19qK1ut8gb87W(=IV6ga?I+`ROBJPg3$hJa#t`F~i8Dn1W7cOI->#{s{?NV+ z_oGoKw<)W%?%4cHS&n)uIg?U{>|yyZ<_s9%^bKV!18DbFFfF0%dpW1BiIg{%SFqft zLpp5Aa+TU&W-52Ec*MEj3D#?+lv&NXO2jC54O76{*YJrTx@Z);9?*?gZ5U&m(9)?V zr0e!>Tr%^Ww9V~NComh@mU8z;qxQtAm^_RlaA+qB=JcUjXD7PD#cC2rV}&~Wn;7lY3uVcJ(F_Riun6fC;KRv6=knltreQF zzmy+l`ntX!(=(39y{gf)W6^uVMuHAiIEL74FY2VJqst6p=o4%w8#FqAzpT07y%KS+ z=q($*)O2Ol$An^H6Jr+{FiM-zZO9_E*sMr#JC(vt{o+}y+WPNO7wJ(%d(1WJ)wF_q zC!r5@gqIkaV1uxMVi?q_mk)Zt7V)4S$8%<SN#BG$&{s+RhpnqN#AYfTT`!;LLPfE7d; z%QV#-=ZIU1aT&SI+;L5-ZvdNz%)?XJR3UZ{Ip?A6bs|&H@|4s6Aqd--TlqzC%sDix zSY^^P)+*+!{9%+V4dy!x2p(nM5W;%kM4t2bpB<|tR+FiZGQ^8i)u^9kiSB+MpWRVP z_Ukz^l}fk7_{TKcEr)bxVliZ%j|pfGYG@Bt-a+`zOUL3 zwi;7QbEI7T^Q)!CXOI>QSN${O=0>MhXF87a{o6r4Ky%II3&msxw*JHW4Y;6Zn_PiQn~M3B{HvD1X%E zx5ySKu7^)C-F48Bl`)uB9CU7BvtGfh=`4(;|LsT8Gs1ZP((s4|D0(A6MsNZU)Wk4Q zrWl=u4|nx<#gfNNb@1sTgXINlDC}jM(lejx{%n1W22{$&kZdtsI#@@z!5UIp2AFhz zD>Ml=NIjaB(uk;Y7S;*3x(u8rq77a%`4RpmwV$EV~kDDQYPBX62MAvF@B=4rG=o7-xUb_Cq#(zu~rx zqZJ*hg{UvDn&`?#^c)%O9Eqm0`scirb{Evz6+(Tan`T?IYftfIP;>EM(ubz1hM~72 zF*t$}lbKVCSv8#1aBEAc$JCOCz+3K=s?vjKa%;?sW2y<)`0BF^dAlJ|olC*^UR-02 zz)*#VEwr)$1*0BeB(OrvgoF&}-%is}6h2)gpK13`0T$uzgo&~wm@`z;SX0d?I8C}o z#VD1(4+&kRY4yF>Cz{do?%-_qp)&urEFBEOuDSOX|L%NdTc{F5;RngPgdHYj4`?m_&DsIR z?g}l)8ePUQ%hAm-C^>r}doIy)%1r&(9^A;3dGPyU%nY&SV5C&QPt4eW#mg!RF?Fuh$CK&I6_Q0!IF55-yUGq z-l}Zn3-6UzP;V4Wbln4x{>1CsuT)+q`?oo@$rXiTWS~vJwlCjeypJZS8t1<77%~RrARpi$tC0&<_QlGG# zHkbH4bv~<8bPf3qsf_<=*$+z|*|B{vUsQ`#o|uPBAOUM{59;A;qsd&2+D#wn3_h9A+uj$cQfZ zP6)v#X>`9VM){~&v!ex^K~R8^^t|C%?P*(iK*F=6l^B&Q^7Q$_m3GE7bd^?!!izd? z<6od%t6C7ICcA#!^VFllBWCr%!e;enbzFYjy^7Zkn}Y#XRqG*_AKJ`WscrUDRxCwS zW#*w{Ow}eRHoM3j#OEt#bjo3CbFryLEsKshVJRic3O{DSNK&i5cx{o*Jb>b`VX3^s zyp4z1E4R~UuET2gQLU%gj&lMR6eaGm1YBR{G7cYi3-b<>o)fy<6o83;I^Q+5Hd@d> zWYFtYwW5?)7gv_cFAM6&bYkKH)zMlUg8IdGV3bKPsK*Q*Szf5|-k45cIk>ppzhjS> z3>i?dc0eZmYZV$zhIK8&5?jX^+Z$)RSNK#KEQ_$EWO>p8Xdu zEc_iJ7s#3Rp!$FDeDH4#K3z<9wO83xTQ5e3%?d`bi?v}N|9pq`-{tfId|{s#12B{U z(}HXRY!6ZC9R_34pEIufQT83U%I<~JHFer}(jtcSfiwzWR)^_8roW6&224W3G|dC0 zmIOP(gQ=G_Q`ttXg|3xFZI%_$&C_OiO8o|hdctrHXwG=fKnA65nlPIfRFlit3(~<> zmE))J38Rx)7VU96_x{A1sCTH=u|LdiW8O|@ZoA7sn~=YmZg0=R`?)v#_(CGvuDO{j zGdi4cE6Vb30)7+T_Osxzkx2oH&H!W=%sR$3gk8JpDm97!Gv<^Mfx&RpBjjyhsRad~ zSy3}lOovr+eqsMNwVyv#G5!Y4L*;E(O=;r1(`%abutniM5M*V`t7WxV5YxX-riAJw zvkYk;SFt^0YgLLZ97_y;%7Hby9c(AX*}t85N3%sPqw=Us|7LSDAv_}vEuVp+3pj9) zn>>elM%heZ=xW`)3HBOJe>naJ^+}k6p2F*ZVW+h}%>bH~Yj-$JS6NN_;A-PN)^p~2 zCBwM6C8CP+&(B-;Ni1!*f3{X}COO;B<*1jxOt0b?8G0`X&Jx^f`{!>Sqe1E0mTaaf zsJO-zMyb=`0Di(G{|X57W`p-?HNO)>B$Ok@O65l0!??LcoXdsNh@4xPB$}8Iq@{gS zBgFIoKgIpfx7IY6SE)lJ8`3qQdjMLicvy*K zx@(KkTpPkQG5c8764VL8W+t&}NF!aw4V%LRoCqxqm2EZ_kG`z1iUw5O8x`EEDVXSV z&hMF|m1M@#(h^q^kY?wyRTHn)Ab;h>&k zknv#Xi9Ez_nS+Z0%D75l^v0D-utFaaiM&IDCX6Qf`yb#A+BnDKR1)mm5ko@2>018~ z=EFQ6JYkxI4k7}i{@1yX^iu3+IPQ!xi{bhEW=Qz>jY0E=y8fdzMk0Q{fG3+|2Ehxv zQec-=LL3$E_{9mepoejzD1n;7S-j9X;1$~JoO^7cx?%TwE`%Ta-*(oVH8m|~*B;xb zagkXY_Hra3yZgK3lo=6hp`?6+8%YT=8GSgGP(xeC8K7FovlV4Ze+aQOHa9r(CUc$? zAIB;J;$DE{H1ou{n6k0dw7mK|M3r^^(}{7s7BL)MUeazQLV-Zhi=w+s(M#<>e5SRI zsYq|sNRYo=h!Hc(F*~Jz4_n-M`78=Uu#n#lk%k~hy~|={`Ktdix!VCFDi!#0bSmM5 zzT&1q+XJk_ssxciI@fxdUYFM3nkYArrsA76JNiJNCO*S*~>{sOjbmDt$DL;f{Z?4ai)2~V1)A>sw9rC=D-#_Xr7 zdqxzV=_x}%k{-NXj&qJs`@GpI^=zLmej6viBz|S;GXDd(3A7F2^srN!(;)Y zxRV9H3n&q#UWyIbVuoyvAdW8wY!bPhSg&;9k|(V1FmRd(LySrJ=cB>rql0^+5&PG0 zjFw})gE;E9!Az$RT^M1gNeG%w@nYZIwEnt5$)@}U@B5>OByeqRI^JE41Zm=*jLGgz zQ$gjtg0eBW)TLSSV4X%TT-kNjjIQRN-`?TyIb#dPDjq*(0ERmi^FS~+UM?l0-f=cG zP1~Q?u4XK#SGHSA#AZ;-!|OU60ibw(kg0*Xj60sk5e8HFJ%m$S@y63Vy*~gQ)Eu|) zj7hWO5PwZlHK`~XmZ};nTPy{$WZ<`^&k)G6F0wW<&DU+Kgt4xC1>XFU138@##}Gce zLO`xX3Jw#}#gyYLcOjPxhwy}pkG$nPmqja9jN_Gvv1C1$#}ksCp{*%<+_4#_bRp5s zyx8kMC$o~6rl>-xadmhMELn_GyLJA`ynG4g*#Dz~;6qXk+ ztFdStwXPx{V&k#;!_IAN3a?bL$CNaU$>7gyPZVWfe}`xC&Q$R~f^Gs+_=v%r zTW6PLx;S^3pDRKg6(yfx{y5DjzB86ej{!a|>tvNNEJIndgG7w44$(5vy+lX8RaeP!5BYnYMJkeQXXSF{bIc2!*A<>Lk`|~b zOYS$x9nGsX@`;i4V<^-UllLeunsb-SD~HIfTSeL`#Jh=jT=hO9tL?%v z$sLZzub)>gp_;T<+#h%0{~W}lK0W+!!{uCnMDrf8T8|t&x*$ z1M7h^j3Kh(yOca6;1t~50T4umF%8Uc7UmoiBvR5ZZSHAbDyX#pk2^0R**)ysoLi0s zG0k9N000Z=4Ci#!p=g zETRr|ExND&l`Ypgf zaf-EYKCE6xCYm2rZCV=fI2qo?{O37nKGMp-abnH*n1aU?2XA()h-23ODQzo9OUmiJ7fFQ+y(P?Q)hea2%F zUMB!e*G)tZYp~k2e{x*DkNI1y{rR$5gf|`_B|o1ZXxAAYg&4dDSZZ}E7Y=0s2~)7B zIU&vQ-xOn%^<$cQaFRMvbZ?=ro@b84vJZ-u9xfBI_ER_?}%y1br?it$LNjI zGBNX4BQ&b~dtZ8!_tCR1*(W?@fTbk%^{;js?e4r3JVK^)oN%?2FbEuW6 zX6j&{qvm7J?zQ5*m0Cn(=ZXlFye95n7Zg9#K%AT9^fJB%W$aOijNn`4SXS zBbuZmh`1SRLoCnifK*Dp@5=Dq*exJ^wK~O9yI3uAIWI^DiL(jmC%0!@I!mbY#3P#% zc+@_{XZu&Il5?_W?T})^eZqC(*@NA|1nxUc&+k=?P+^+wU@Yq8PnwDIS19z6u1M~= zIL9UZk4tM(4YfE)eMERTvT`}a>C47h?=vCh5B(m~{4KI2U@Uq4H!5x#(+Wp$lUGU~ z`G*!5>4C8fr;|tQNa@ww8ziRFWLeu47aSNpoQ=t?G0wr7zGnCtdW-YMaO+`%nP9v- zDuyrbB2Mb6G(k6CYatZbyE%4i>c<~K7@GDR0Oj?v{RZ1QP87BXRXB^@7@u_jMa*Gc zWN#*D&n{b@@36SvUm|I)VAX5P5GAdK?=>=Lb}wlcQ>pgnV=(pIO{ILy=N2sj|&HdeCt0-WOE) zAxmodH@5pg+U0{Ry7rVe)cFA4bD3n*7eswXY!)!79s?GB0Eb^oA~mzzd9h>aJcPK5 zoV)M5fod?G36;k=An3Y-f;eMF!s?qD*E?rv9q&~3$iO#lOs!f2h~~U;^wmM)v@D0r znVh%|faemrh$YmlGJkXf%8od1_MZgP7Ae;1Z=(H9X2bLp_=Tz3sDs}g7f*oLBRtJ( z-j&IJDdkt_m$Cy)Cl1L!)ILButf}P8Z2X>${is{P)leMUdm4QPql;*<{1;c2aD00u<$8$Y`tLY#~NZK zs`2SWbap937n%*<@K;3r;KAD7eX8z?XZ*||MJT+pof=DsD;s)|pZ zw>!6y?g-s6LNSq6}deE+7MLjj2FGrHb+v zhcZ!{|GJ1{IsG4lKNUow@7=y~4~#6r334|9KKoYw0#68I6kqH`e~L;#&JzLgl|m|I zVav>ZM1f(4`p@JbY(tgLu!|xRvvUn|0rI}FUpZNoY$Lwdch>xC;fs@mzF zAj`i?Mu!I-OwLLi5@{5~AIB^!5wn#{{yL{u4rsv#s6GPm1~$ zJs*KUpr>3gfQ8#)Tbbel-UiLQg0K&&9N}5R)p>x%U^%D;t6H7O4L&wHlaG4JhBJ=_ zdT~VpgV=@nOJU!mqf~bBPny4=Lh%Gr{lGW|9Px37Ev==NdiJZguEjWbSFf`PlWL$* zzmjrLnJ)0gWd*;}vWwFq=I6RSJ`3(dt8|;EP_zFBl|X90q4`!%^DW$UFuU{cJm+Kj z&2*322hr?VH0}N9TL&G-Aio>X|IZ-n0ThkJQ2=Y`!Q5le;LiY-@JqR0$M&zWZOJVF zhSXk~C6b5okLRDsr=HjWwx=6Cw|PF|0jdjse4@v3gl<&2y{uZ^fKT-l>)h#1!x2UD zse}6kmg;9CHMPwFt3TRNmX&KZWEq-vI!+D!gM8%|Isf$i0;46?(O0qi$c_S~OJ;li z`qlN1DtCi_O%91U%uW4eMI+gwHVz;wCX;n+n$kvKL7UUeXl!zpO-!!-0v2p`A}c^v zspqpWQ@wz)*@>(GStYW^9Sp!m<0R%nl86hIz&T#%_i}hj;l9FwLTagYX@^uO^-{Wt z(n(5pQ+klnXDFG_M*PtYrr>uUW3iJjqVG%$hK<3}0|DK?VPo!wjrl1<62UD;3~9Jl zyzhVNE~Y6<{pWHZR3$QE%T zfGmooOs5#aqVTZ@)oiKzrkANKEnWN=rn5R3{3OqO^*V$ zXPj5FKB0(eIyh(qB+7V;K zIHRJ?pdHQUD7?&;L2IHh&`6({4;m0kO_aJR9R`NvAfHs|q(UbZI;qe}g-$9^MBWnq zYS&(&9~&^ZjOiJ@F@q@3pd4uL&a!6}h8%i|aIv`>P=mz~6GJBinJ60hwf zUfXF{Pqx_6nHd`?`@f=D_%F~v)DalxA?7i|@)p<+InzMX1H^x5&GRIU2}d@XrZ!@u zeSTDF049=L_pW#;jFPeengYC(Yg_82Ow;5>x&fM!Zn)#zQUwe0HJ~Yg!U$%AoKp)>dgLDoCX-x@gwePndwKIp~^-7zh*nR;`opT+$l?)P{(ct)>psF~Sxz)g! z2@b8ObKZflVk&P=L#*)No5onlS9R%i*!2k|i+v3WxSX@RRL&R%)hT2PUH~_GQ-}_f zv|(}#6jBgTMqznw*9_6)FisBwByXz{p3SjcSRb`-G63=#&=x7;9o9e{ucgvxo3QHw zP^yd)g9x89UPMV~20tEbbu^SKS5$kR#245v+A|BR>epSeSV?tB_fUF>(vtwb98|xA zRa%R?09>V5ti1@T(I+8sjTW$S#YSb!a?XsCLD&R>==3W1pRkj`347};n%9ByEzQYb z@5f&J*~S`>=5O#h_BW{8@Hd#w_!hKhoDO&)l^qe_YQX5>oBR!iwbnkq$>~5!k1lDa z0~d3Vf<6j<9_k#7+bQ99;JuFDL1xX=A)Guieh2CzbaVI_Y;`@*{1G-gAKWWFEPZyv z`9OUFIxRd96m78-Yp03VoxcW>DEl68BZEtbe?#tn4F%qc?AOSmc<1Z79B?(f)8*hM zd((S=NFPz&x$UtB3fSe~Cs%C~-x1@ot_uDJx(^GT)vBvbOjxHt=FG9aL%=hhw$9=J z!rzj8t|8Zmi$tsi=(8D=RH51Gt-K=4K?Y|L7W0DsW&P{$@;Zvq<#}ZLaJ*9AqTi?2 zjVC^%{~`u+gZLqbPu&DD_!EXdHjuIjSHo_DZX5w0783MHfN6vt2dV+phio5qFJ`j> zdQ{3LX%IA%*`&*6qcy*%v0jX+_aLjv=4gNTE@!_D15yjTrM|Ag=h1|h?Z(kCew8DZ zx0CRyu7r~KHcVk2fQrH)5zzZ|3W|JznVF{m!mr*53HTLkmBLHo5O&WCbpC5$#`S^| zQT+_E7R|$1p#7^pWG^A>hJPQBZjQrf(wN8Y{9mA-e~r>Jlzv3%6$a5w81mfkCXC>r zcfzHRz5T}259TphA?xCA<-#DB`)uw@@I(gmsNgI-0}#?za^K8V#s!Kf7BIa_By;EU zaPHghI||Xd#m67hOA_}@lulB*n-Z0EtZ;K@+G2IuA~tRjzB2=xDO(HY_^xDS{%d+0PydnHBsf3}7`IEBv8hs-Wu2Y(I4;srZnt6VF(C+<}42j@?ha!5H258pd= z_ro%ENOv5AXtx%bFsN2&aSK#5XvMc9`(tE1U}!yQxEr!R`};o!*?)(z7v8du!;Etj z*#X2R++jp?0+3GN$9xq0GIyBnF+F6WLl5LYKWGk{bYWe2*aHbbM5SmlfHGn+lqG$C z8!_bE(Dsv%68QTLAq~8AYWV8Y^6sINS1U;>c;beB`Pe48;A6^Xp~opd%=BaKoQVwE$U#X{Njh?H%hU_#l)~sn4(G!nLdg)7)zE0_R zSTe@oZ$2hUh|5ar$xmclhEEzeXqKlt>b?M|O#V3g=h?r?<`7F0^-~X}a!SqUv*YQG zmzBd|P49;IZyZx!*1*08)qkZd`42h&n)4rU3(m^%QujK`o?)dj=-TKW!vA4ReHL0#6FSGwv2{C6J(l|vPQ40G*%P_4ux7#ZoJ;a^F3Hci z(s4>>C>h7OQ>j11kMGyedH>s5uDXvp+J;8E1A905PWtZlQ6q{&zg-jk&2yb-{4Ehv z>Hek~xQkKWNy62$57Bf}8~rEoJ^PYfIQQhGGF`~Cq5VDr)6;QekD!wnGZ;O$Bl|~W z7l5dFm;M2ScKF>*_1hwDo zd7``6<#1FM-6bG5w96Th`E{cqa<=fJA$`{VzK4sH;`>;pyFsoTdhgRuzxM-IUy`q^ zwC?(6p;2QkilKw z#IX)ajs^E3_}-Txl*~X{fs2dhfmb z-Y*nNl8xVc_6EKx^KJVw-}cP=C25k!!<1{qMNeIHExQ zkQLV&U6dSljk+c=^@EHvF|eoi_tuBLEwxL_1lFkxpL*-B6z z7w;wB{j2GBmrj?xA-#v+J>E|Dp6HtD0-Z@08fO>$E3oD0f?fi!q=^Gl2e9070H*+< zG>j~c%<(?$8SAf0k}jLq%pTOr>x%LVMWX#L^8O)UzjM7;hV#zH8v;r2gpV3<%oq3d`*fljaG!1KSL7GD9(qMR#3bnszE4#>*i5US)*=gF3393m zE-h6kw5nw+OgeDDQIDhbFfm{&0F0Rt+D$IjFW0ZuQ%4PAFIFF~@2|(RRc9EHTwz$a zBt>eZZ|hN>ldMvOY~p7ZmBMQc_;Br|@Z&5El+qVC#OgF6RaJWtBy403AeY37;#f>B za?D#voUy@eNr3DpgYK9+?$)JEKwH>!(-f)j?pAHyptg!MX(K7yDrj}>*U;*whm*%J z^mJ=Lsm#bmvJb*8PFc^tvs{#z6SUQ8sblrWbcVsVL5h_L{-lWb^H}d+I7ntnT7tZF^4jmR)?P zZ73cz805|z8j9Z28aaPo_vBq!wj9%*yyD6u7l*(4e^(y((4K;pVu4j9zo1A`fm9+F z3XRc$@`t7{1y+em$ojAwg;AGOi17_9mN_Vkm!K>%qIw^;rjRWn8$s5G6RVmkIR+h* z^k+?Z1fu))7h*!V$@-vkEI- z0(d$KhX#1Wntp-q3PbkD>}MCqz_cWe8_oc(`?%!{0Hp-UmpTBQZ2)?U^Bpx1Lfsfm z&ibatu-ld2QG9bl%fY6C(PN?RmQtM}cN_NIRI(@U@#X`+>5{+aEd-3w#3x+!hdLY~ z=b`s`9aq12!+Y)B-P{+sA7H$bUlZfqaY^bD<6Y%SC3S$|D0&-MsMo+uJ&CPJc%!T} zqBk^R?7~(Y#~jFpck+O;(br$VxFx?X#;wXXqycgN@Jg7z^fJ1ogR;a#@RB;q6fjWzi`d7}6-R$C9b&N^~u{F}~1KC0#jx6P6iG$}`fp>BJYf zmGuSDn6!-U7(~lKwuo#9SpXTG7)wqBr-Cy|U|O}F@nY5XRRUk{hb8)J73)#oc*w*8{Lgd}NNASeOD zFSd(yow(FVvRS7zOlg!7Nxj2>^BY1o-6@YJQ=KcFYn?P}OP!9+U?+(;lbzF@BrT+R zS9;faaiZ7J8|BhZu<6gRPFI;aYd#8Irn2W2XZ%EIVW$V9^ALKF| z6=k^ohSbOJ8LOpom}|J)K(fO`!&Jje111Z2Do!_`9V44=p=+jEW?HCf=2|YdP({UB z;`9$LLNqP6Yb{)snyEbgkMb?4QvP?r#~qC+6w3lOfUg07KBMi#{qlEzL)AOq+(kxGiovm8T8s~NyUD~>)jg7AIG)XNCB{s z0$?Lu#3o=6uXXd#Yi=G9+jdy5Z^L5w9veM7l4b^XnK=sQxa$nO3m$-4)C>jb%fc%5 zEs}k{M`?-DFNIaikJE4CLNm6yu~mkxH<1}!^m&iEGOHwP6HZT&>i1P@a4bkSQ||muHYYfDCN&>S5>-&4Ty4T5fEYO^C~~ z%kE|k!j7Fbn~Qa?mUlH2-SL5&zERV*CeJ(nbCouR zx;yBiP#gTvA4dkwDYEh+MXhhx9yMIrA?vky#*`PS^JCrcac8J-_Tprbg;EJC%eby(DVf5 zpzZ*Tz3=1s_c;lGX&({sSs;R)MR78y@D%K9cI>Xg`WDNJqi%zFF|3WpaWal|^jRle zVRy3sO-ypqG~lFZz)919lcoVDM!cXi<^+V6)8Pbhg>%!Kg}8|yDfiL)jPYDBMxxJs z8*dZDW9HCQ9C>&$X|4--i-`HXgfkP!`tgb@{65G=!AXsm?T3kRSOe@Kp%p67f^(5X zza-uy=%k4Z|6)$vcoP5OPS9sNff+EcQC9mhW%Y~%M}znA+XdmC5_801LQiE-rTVos zYm&RLjvX(=d{u~DY{A5lh!^&wB`l(^PnBezCCcHenQ}P&o;Rc$Sgw#9KrW|#I*~t> zukhkHJvl#~4+$lII3KENAw;yosY1wJc#<6lrV3~1Ns0cF;SwRf;5opTzLRz6dhMIe z(>ICuuW3joL5LNzWnycbC8vbFEC6|EvTT|Jlw_)GrEIN?iV6})0(+nWhFr1+tmo;P z*&3+QHF&3*Dd0XwaeT67n#3qIRfB@T$=RAYoQwlMxgCn)P`#XaPspY}XPx@}qC9rJ zAzEotDs~hHi>YcI5j-I>6`@yKh%82cWfWPDpokD;u^s`HQDihi4@H=TI!d}}VxnrQ z3Rlo}65BIXbf;A)wChl4W7u*a8;Xfmnl3ZtImIYHzUkda_m-d7TBbOkDboiO3P&p1&po}X574#vFieLr3@N5N23E5g5%Cv5_PT_58 z^K}re>(HpM8?QrA*3ALeHI7r!?GVX;^$o!9ca$gISu4*^i1I9Plmttt6k>Q)2cEf( z@T5x>pn|Metysr9+VPGP6;pV}g^ERB+fG*i@C?~B-ew&SU&Sj8;gu)qrs^QY(Z88G z+#P2e$S!S13&jgAZ_l*`m*EK^yXK|Gfi)38%5O;R$56Wi#-HafA5PHdwS+aO3U0s~jt1~D94K|o-SG*1BW zdbSzm-kf>2aw@x7F1rUr+5PSf=^($`Ix5zVazj_vrUcCG)F*M2XY^6N2<1A2a-G7~ zD7J#gq9~F;U0OCat^Y=;;PLquE{ErCASG5v6n+{HVXR`7-2%x$DM%?s2?%_UFjkSV zT-y)B)#bEYtM>ab0{S(|V?X`SPe1fi;rJ17DolFnus_r0ZR-v4^B9+3^E_#NS-v(ylVM?Qv zCSfujW5TyYs(7WCUg>f%A`O65j((5v1LhG2Wy$HtY-BD%O=}H3U5Yp`5Tqh27y&M0 z1enMiALj=}=s^*BP=p>7!Glte@Z-p6EZLZo#J7Jn^X;e0-;i$M89tuh4_Zog$Qs%- z=wbj?M{zWT40TUWoRCVkplH(*S>hW))8JN-DoNWmMLE4cQ%-+(Mv`)c4H05(yyzY8 z_pS8%$xX*3shO``gBZi_*luWwUiK@ z3DKDloe6Obhj0sI(GV2Q&`M}6gvpoo)L;l|IZiH=XWkJGO`qdFI4SDH_l9&Q*GZpu z2%Zb^VweojP$r6}irFE4L@K5_D5g3nraCBw<`XPVH?2W+jteEy7a59RcIAmg4Maec zP1`eQS#xMX+@z@1szjs4I`f45J<==9(q}i2+)cpSW3KIJhPNh;t&JZ7Ypyjqn|W z(QE;xGB%o}*l32VedmU(w*G6Shuh-)qAlM2h9r>2*}!9m7{wNyiLxokO;a^95OnM{ z+Ne-NEwYAMWDSi9HRuje$V3Y)2O%4-Nq2T&_SGqSsJ?>w?`~jWPr&p#q}g9dHA~B% zFv7BBTAjiYP5@b-8)0@?R|F__6dKJiGImt8uy0XTG%=Djkwvq0APb@2)DfvAV4Xao z->%=Qr~OypEBcf^iKVcYG~~}Q)u?Bwzl<7A6QyoShbf()#PD>-Y2yr~^OPPH3#?zm z@2=o(I=z$0)>7(ySRv~&9Re2C0GhppvgA?IY126q%_e^ARhxF24q)%Ifam9@G} z53v0e)3>nwA#A^B`U$olGO`kx-{G;_XE01`Hclb+6-=OpY2TLTYtvjs;5GU~v zq9&HCzqI}qO8-}^--3bQL)Lo{67eGLVzv4a5^>ae+Io(Dkf^e@;@n|8<~XuDan;AI zpRzLjE#5crn(gg0*|ms+JBh5@CfcGsmH0FJU&D{sg^-}95mQ-eZ?r4I>%%U6jnXre zenjaN_|a*>L*NNfKZoog%98M3JY^?!?U4Pr{fwPH<`Av|AXPGA-)`Sahmt?A|J45P zbdmaL9R8qv-2QPpRYH!Pos~|&(*;ml^tMT?y6n@i1nG%5Wz5OPD*LNBZ{eSS=2E+G zI#+l*9f1+17w#sAKzJVP)@InPDv>o~G5tjDU5HFLpDVyX3R821QFXQ?vw*>C7F!%G zuj^vZD^du)Ffd0S`;Zu| z>9@jp$d>jC!ZKFj#>&+L0IqXkrrL|l1We4mx`RL!{t;He8RzmXWF|D<7Ch(cXbwr# zj~OaA0~$Vxb;f!qz@_={I>^t@&zR~G-JZkrZ@{pf60)fxs1MrixVnn1i6Sg$7dgOtFii*MiX4JYb3PlKX-kO}&zc9* zf(IsFP^?_S)+BgVE+dtRnW^3fD3VRX4bS>lxQ zEPMp_Vf!`b+qhx}PCfvCLH@~@`UrlK?I?R!Wr9!IWLaO3I zs^UU`+aX?uF1n}ip~5E%b%MJ|?S{JXO5vNNZY14>xB*p1qVVa$AJT@ZE99^HAl+b` z(#I)%iqhvP(bxT{z<*%!o~IzV`;Z-mE5@t-xBT?Z#a!}<^5SMFUFFcRUW2G?DK3Dh z{5-ZRig%C#mgp%y0zK?@TyqB59Gi_G`A9)|%euOIbJURg8gQl!0Tw1$I5+3HybQUN zcP@{yT)r#i(YTjK<6a((dwD$WVYn&wGR{!3V=h0X7Vr)ac?C4&70{4ZKto;u4|!PT zd9+}|>8B9_IJ3O+5IU&3k$nN6fTdz2;!ptaxQTHpjm;-NQWQSWo8>UIREAyAV9|#L z5^0FOk5;|E?8tyD@2#n=>@8~FvEwsos6LEI9qU)*HSoD<7-ZRq3tQccGG??~VZb#t zo<_=6Tiomx*b-HJEpE0-JLZa0bHz;fRFRsih|flPtRh}P*H@BE9(K&vWL9Dl z19_)l2p({rLa#oDPCSr*3Z3;FI_2w#ze7Cx1=2N>r-EmL7qCowHgo|18>gYyU4W_R zG^|7~Z+jgCWRKOeGxk16mR%%<$t6Y;93JvFVY^^?y)jKYQ>+N06Q(GlNo1$&mXF!o z)}EV&`>Sqn7x-@O+;MYfmpXK|Ax}N{oacDg50`1hkQVm4ZGTU z_d0Xh9fiK_H#F_L*{ZjMYwCTq9aS!qCEK*emKSR+tO>ewiqft5c>hZNwEP>XT0X(` zX#u)Mz!8NVm?iQ)2;)=O($LnKr*jk{Hw)iu$oi2nK}|JF7jxB7)#<2a&uopdPIY(~ z^&98|MNv3WN9aClwV58qj&Sa4Ky(?jCtE`%P4-)cEu$8yMBq?X6>y`fiYB5}?SM0} zR|Tq+wC7G@q-p|&(Y`8qe7>44cU9qa5*J*L!?Vid^0>H9K1Gv7lG3x3UgFh6tW)tj zb^t-GNa~|BL}`T51SP{Dh;Oj&6}rY<<~hiN7-S(Q`10YDbTh`z_xLzwlf9+~OHs$0 z7^g%tkT0Bk!>-@4MA?mZ2V6R!x47r1I zC64)Qjzkk?j5*5YLXPw{1;;{qlPO?ne9;js?wmcu*| z+?fbCqmVGz?QJ0w?a8ZDF)h$jwqDU#!sm=B4RaVln~s$FMF)qVgV6Po6)!~@OY=)= z01G*@VK@zhGnKXlnQjYfby|++Hx!1A9Q~DRgzvv$E(69iLZARZ(5S{9Fg^zDa0iBx z0c86fvIru~=f5&aO_aJR9j2s37aLnl3S(nBXbbkc(WxK}-IWtPpy@b>AL&a#c5 z&dp(PnaECOp>-p)GZPk<4)4?(M11F#06F++uD_|<&c2GR>3!wL@)g=Ys>RPuC{HlA zl)$Yu0`rv-T!-MQ9z_;MHY)&KLE43=C_05~L;wtEj8d?9SsA_7e4XI7bO_s4KVpMJ z!+;c=Qszwfnr1PRf59xef>jE9xeO?p;rMnjuhgGh^X?1CrqZviPNv_T8s{=Jd;~LM zYYY&WW9kBq(f5ptPhr;P%=ctn`#slnh0c7O!I1`1VwfcHJ>gB?a}IR0fS2WA!nSW<18xO%NW%gm0_^&DfWi%Y-pgRKp6LG^7Z5;zY6CQF1_zwniVJu>-0wlb zQv{SiUHTF$U1Ft60Fccno{|G}d7E9n)2QZyj53mZ%8_(D>(E^vG*Epcqgm0Fxri_! zVFv8LC!o#63f=`Q5XF5BU?8=kYcT`AO09|Qh#ylb*mrw4?Zd0Ivkz|_+cUo_U7$86 z>Si5-*boM>MP%!lsP-A`29R-lyX4&PsTOO>DZ1YcxF3DmSLl914qb4(!@nnCw+CRW zS%qHTZpVG3%zJ%@-zz5GO9tkfSe;nL^1?{L=5=i4=lo2-EzvXO`pi8ne2)h0+kpQp z;t_cnPXehfmV__Y=(IJF_pa}df64c{QG5SO^c#m*wJdj(2g`LCJL#eID@r%X+4b@# zg)Q4Enc+QE{Y_GVEK)6RAwF2*Ef1ZohoyT0IL4L8Bq<$0BH2X99;rO;9l&?xD7^`d zV0Dn&lsb%wd;+e`{m5p)cUrIcEhR5SupkZhgWBr{o2T8Vwm7q@F`up)ar*}9#S36$ zyzEQ)uJMNgC|(sc>{JYK^D&YUeU7>MbQpT#wEZ05c+3tTB+}Dp==V4tay$t-gwqg6 z?m_k$G@sAFJLW|GU69-#gXBJry1Wh9L1gZNv~#jCQI!-xMdY#%H- z1_R0&SX9QLDjqC822`sP^>@`PG}qMWm?DyTipCiU#}-ZB5{_66ZE`bvzQ|uS7nfD% z*KEtz-h(PU7R{hi%=c5)lpDg8#SmAfRJ#P|aUJ6+T*BVq~z zI2JYn3RjmdiunO-Oz!Z`|MP$3uKoP`yQJSJ#r%7>_Ivux=F3Cw&|UHuuinHz5Z8bE zzq(%O{oVhiU0A!6l2iHvzTOxGIp3%>DUm$0h~~KljvZb=f_K%mpk@%WrWxE! zK<*?bY*V%wpgWDigUimWZv1>ThAGN{ug+aUY$tUzux4^S3czNN5Y|K$fXZkOAF;fet()5pH!Zv_vd+?i8=As?O5Y7E~#s< zd^7a(ILDClCm87yjPwac`UE3=f{{MK2%%-vI0>;#((r@S3HpZQsBO|VjW4oG#tpXc z3=5a|m^eP>vNa_>h7|?otp&awzO16iQ%E0EZ1s5x^d@J%@@Y>&I2?-6$CTJ2MY5m9 zo{IHPOHWF-=}bzAB>iqiVw866aSWf%&gazaaIMlR*HXQeDY2hH`V(#%N1KF2Hl$t?RK$5YSCX&O=ecOMf|1B!t8=J zCbb}m!L8?B?`o8m(R(rjjHsrUg(a(QAYVEaF zT^)PwdHIj3teeWHRBjPvWM&plDkEtt=_DiBO=^&?Qc58C17%479ZVwQwNqmjzoXHi zVQlEBJW;+@aoh~La3)g)R=R_64RX`u!P#t>b~47c8Ib9?L2(K!9yFl@xL8Y4o57*B zz^tXqkc)Z?ggpvW@0iz7fyz2Ps?Vs`X|HL;b6MAs`GvAsK+Fe_iaVeA)A%34XabDh z7fivx73LR>fCR4@q2HS;VdHzL}^A~v+ZTX1w75T&RcWA8ImL97h0KnuwX_-dE&YXqk0(*4Mu%ymGJDW628^n;Z zL57V9>_~oTLs3yfX@2^@+#F~qbvYvqp-@A_N&nG*bW#t=D1RfJB+2Sd{52%49`;jU?UibUVUyCx*PZAiukI ze%7pfT=po)YJ$Dq6qyn<3 ze75n{SnT#jS@&x7Co3a=R3pagjd!~x{cbEpfXFv7K}`sYUfSHu(0%RDtQ8t&quT2T zY7`T_g=rcK>%$wge;aQ>&u^EbaRu=3rez=+>|lpi&mcPt zOj%|Wc@Wt%$POX94=0%XN(Y~lG(8natU5r~ph)eM`X~)i8UX{~2IUnMx|NRjDOFS2 z$#6;}ZgkPcAxg(7ouPD|(xZ&Rl-R2rggc9zQt!ip=pmH%6Ud%Ib_SUfS%aKuL0bS$ z(#m++vSY->WgB3_nl)}fQlH0}*8mOdk;~<#?N@!PmZ7NVNu^aNnpLP42JZ$whiWF|Cz4qE^YVhEvmi!KeTeap*!cHu6AP+R_5aCHxUQMO8lhOf7H;d4j4@2<17uiK*zeXet zW95#47sW-t^lQ(i-w#P%YDiuhU%k{hyg(`TY{UX;?7CU>I>{z`xBW1@3*LlvE`pW4 zJw-Q?4wQ%#ZHFp!7eleA=U@(kzkexB6;OJp3>({YjoZs$Ip6@!e7W5nj`{0a9=`fd zp00RpMUlV3nP1QqX^($D(7L0!FsRtuL(cgA8$yAA)7FybYD0PNS$|Z1zZ{nWGJA)@ z)j+~)tQ4*lQVHiT!B2cp^An%fSxN9I2{x|IX_7)e5Os6sPTK{YMr z$I|IK7Vo!bit7Sw56!6fazwcw3EYk-_q*Ug@cZ!f-vP(W2a)YVb^&o2PgHSF`~)zU z!65rs7In|NP-DDE!n}HAaBDt+>}fECH&Kj~m4}-f%C zz52gp`D*T~d3PKt@9?;a2WrQsTzz@Xvb;}zcFzafi?gl!tTtC|_qI-}!)nPkcYa_v zFQ>zk_wffh&Dj<@COAYYNpAWMwFy79ibf#`n5dn)*m@bGtq^2_n1iZwu8|3|T-sPS z=TBE~E!Ao57S1=wv9L)+{GC^T zTEC+++UD_k`nrZcV9RqFZ~3LKDB4od?D6Fkm(~Ri9WKrvkau@l3xgqhq}*wX=j8Wv z1jbaGvWC^ITgONCOkoDg-HOEp-)b!nl$a@Ysf zVPCZ)Y-0v)D}C5)FAzb-)b&>&@AP5voy1m<6(mfu?FgZrK?V#|bshHIJ^_A8T^P9w z05~w{Q0`koE6If}qXx@yX*r_jur*nJecdRnND4e%hrz7@$X#+QIFv!G>SKVAqgsR@ zV)n*Gcpirla*W=P7F9SdBKjn34Rhw?@%S<+;wefil-2}fdJt>2z2B*;cYM zR@ofNVVzlPGn5+t|NZ~3_o>hBqw)7K8h?wVN_h{y*TT*Otmlpr9<1B;GA6kD?cbV!>MI{~+MJ2i*!l=_&xVl`NDi#8d92FS8%>Fr>w#KGmXRRqj+>@9I6v>yZuUmg@C4t0( z(0h)#A4`7O`c3PLbTCF*h18Ha_G05&UWo!#&UJ z^dbJ5r_M3;H4LIY9DmjM7F=ZxVGPbD@!v_}zmvp&CyD>g%ma*L>V0%|GVE+{?s4ka z<)(t#c(G$XX1%g`O=Jtct8X)zfbV)9GEUlYVu#eU@RGU^MvW}-;=jR?^`HB`XFDzb zsi!-97OSZ%_#E?%8#=sM?}O_n`x&+(JBmn@d-V_F=nM`34>r+i*biXDo3T3aB(jH* z{eeNNa8dQGT78l9iR_awEsWbf4jP_gSU^6EtQpxy;M4hO06-ngJ_ZCKM*U>&yH8)Xu;Wo&%9fRFeSWS_+IKTeq(a)(Ma@J5n%%K?FVt%J(cn~IsfYGSDTvj zw*DG{%A4#S;$noiFbnXahjqC$+uwjw9~J&$IhM*g6N_?3$(gFFGv(* z76sF49J~fJO^wuM#2;eQr7fDNb{9X-&X#~|v6CI82Qob6^LW-Bkg4~12GGuaAKMRj z9`i8fB!ng>+&t5w(p}aEtdC*HI|oBnibwKF0r@s=A30H`Moa{9q5#XJmau&7vbpuTOXdd9 zwF4lQ0kApbb{WA0liq0rmm*eKT|*Rr83$o!yQ}m!!B>6$=l@qT-%NJc7>})_w5|s6Di$0 z)Y>-GS)z=!A3WSD>%O-0Zg*!__5S0nJCEuX z!2Kvdgd;QurruaaHl)#^kHb3#)TjDXGEfjLXh)dy1T>{}OEG$9b5$4&61OQI!8*fv3C z-gRrs@NmhVW4j_9+X`)kHNpDM3P)bOeAS*)*Iu3{cNTTudE`SgCmW6r?m9Er+Fjm# zYm28Q34^R7s zQ>OxnJmbz8me;R-=|=f?H!9=5eO7n>Z|}wPbJlmrKcMH^g?~5TmnRIotP~&#BTA{A zQXi!u7L?iMYT#it4%?ywnMrUWn4;{lz@w}U=EC`GM#7)BXGEhdaeo*d_0R68jnjkbZHJ< znnRc70FwccjNLRQ4|q&8%{Mxm%XN*k;c@;!h5XU0J6B4=%knc7I|CB5eORKbo?clEBXudl9OQ7p>yl1ZtPW+mY({;Tyjl^pm83+orDK=4h~+$Aha zi7CqrAQ=Utd!o-Wge7|pmzUVHRQU8gfb1ADnK|XuF08$|k(rQ{BRh;my7Tg*SY|zj z10Ruv^NDduje+U{cwGQ~R`pDWl>pv5oaoU~A4YZnQsimH%mE zHOQVsb`;q;^Yx7_X>VE8YGQX7YgAP@s1wdB>5+t~l<&gF_8|KNvMl(MoJ7`=1!zi| zSwRgK)`c7Y;ueqMeB{8t1U`3G{`ODD@06E+*CKzcmwghNr9ab!6hG;|+oTS;hHvjh zSu+E1Ff$uUSzeY}_#d3uOQ}$5z4$)(0yooMJD(F3&aP$IOX?hiOgpk^$iKtcquK0k z#}MZSP%(~dR%V-E!R-Qj?=i=npsIC(bW@|=Y^5$y!s|Nqv{jW-YwKI_qjvt6mPxXV zUSkDt%9|m6bi<3a8PUT=cfPv}ybrA~H(!W64y2$9<&R_Vyg&L#6#rt6#NfaP=$sSa zn|@&XW8j`X14O|SEjZBfSPNR&`owuW~{{RPpE^6uls)u&s-JFC3~v5xZauKJ2^R<_uDWxmQoVOvR6?CK|75x>2) zA-}r3B**`Lxu`Yni|wtd?Wy;-Z`-xq7u!=++gtB?B$GDVOFfPLN3_fCzP)JXPD|lkg zb$P=JZHuax9?yg*2G+8kWQ${-eX6Hn=qn(TdLaAePqn3VV9D|eT=Tq+-uZ^@HNt=IKtrk( z|DaskaAW#{$qpyH+rm%|z7kcMFvNH+oSzA#=a~3RP=vI(Nsn@1V*Km#^g<86FRk)l z5xu6Lm}v}%cs3Vc!-Xu4Do*5hSzO1OkSyONMA-v1XBwwD32JQEIQtM1lO7e=BB|KT zMVx}l`-l&*Y*Dy4*~7m2Hg~u^b;+v<+%*Vvd0p%Kg8Dp9%q)fFf8P|^noSOIpSBd+1e7B-?YIFXewR=eV=1(h|OEe-l?kA2($_0oZ<+qQZxTfvtr(<{3V z-#72MnRP);oa`;C`(33M5N_ku2Z>(~T_#-mZ;helVCst~*%M|?oujA|z7s1|KCA^x zLcYgqx7jQIp)ZpWA6>Po+6)$3r<&2naTFc2rrp{;ST-$$niTtBC8aBI&yCQ~NOjzE z$&0d%GUWxGjjJ}Z8xgrZFXgNrMdzoGzsdAI9M|9hK{-k1)|qJ|hd#06y@-lT$5|ZJQ?o?*J+n*9I4bwcL0pqA z*IaTpt7YzBl{1w=&cOHUjP3B7SwH6;JYokbjQUx}Yqe23*ICB$ap1E<%>+|0czeFSt9d09tMt&GIyl{{kfz5MiO1)t&aalAo(F9xCcsj#l}crt)Kr+tDdCSI!e$y$n~DE zs*NAnJ+ii4%e=CzvZ!{lv2BtTHSU($;W|iL`9sz%Z0gKQJ7q$ZKf~~m#^MP)#+PwZ^t&!Ty_;)h- zya9Pt?D(Z<6X%bprHE5A;a`5BrEeRKww}=RRuXZi5i>dEFShkgLnM)+SVk!J&H0~c zt`xHlvlAC>n{yiGav?k_>ng`~Ri9y0Y?NsruP=ShK7)#8 zX~oG!(RD4JQXFQIgi7syenyx3Nwg5ybGmQr(9)g~ez-0VzPcXp?)kK1(rm2vQ$0MN zT(wB0E#;|4kGuWM4hm;c{MiXLzNcSocf1ALS=bnN7F^UvWLu5)&Q1N;=DcDW_D+mq zk_D+C6J*)3h8Jc;Z8n*vFf4M2?#v53rg@nZF$-CRAHf87!dj1N%n2S*T#z|%!5^T& z6g*8$q-clVOpg88r%H^I=}bpFfPwOtT~Nw0ah{#(y(AqQ?oY=LQPCZHMMVkqeH5sT z++CyGS64dyl#6zeYpS#lp7#USh}_r`JSbUh8H`)}2$p-fVSg5>aYc;eps22sCqF9lN}aG5J0(llC*=AoFOlh1 z(X951(*3aHEAC20QQ{Rlk&}8-_6$yRb->Zh7R5E68`5Dy5co>e<+glPCX4-KW_z zyGDIHE!AW4kJJw-f&pIm6uwk)@hY6ISLir`4*xW?+goX^uR0gO$ zZOtWVkL{rxUD|}>sMdFD9(hjmU2Q!(R~ftLG@ZpfI+D%E5Z1Vieg*Ix z1Gtxz7-Jv2J;l}sui56I6}D>Hm`uL~;RC-u;}T7*6%WXB>w!K zgm6gwCQA3|EF0wFsGu8Sw~iI$R^s8;J#(epcH#r!y-l|wEanKdm(`Hj5SxPU6&t>A zU{^q{2EzJqB^A&2d3u`fAp$R&VRdJC2?8wV>q8J}UDH>6#KMr#?0?z8FF5QsBK1F- zR~bgAHQW@b|7t(^x?&RNqBqau&G19N-!Zr`qNoil3VRvm-V`UkflFEv?eU(Ml$yhb zy{$@rvGxpnr#x@I0a0jB3R6;8El;kYKzA79g0eoHIuCieL-N~XeftpWt;1=$Ic-kq zJuO5tjB4$An&45flOFFsM2%rbIGK}QAoD%syw>zDqO&RKc!}lT^c>Vr{cuH{L=@G~ zzOC=4+q9u`X3{lfclbF;Ji{>o0pUs^Eu(P=o5O+OrYsj|pGJ%5Ifh8pH|cgOAz@l* z)?K`**U>6eTU5_*BP8!vXD!F%D?vOop{g1f|B!_cA_2sCI&TysSpSzAyd99t-FR^A zgCo3H0n-)F!G^wqWQ+@Hw~bedo^Q(UD{*kaVgjV?KnR`% zwWQi1bANL-kP!hl=sIq^$;RO}kP@zORJb^NZ9M+?yO21e*e-DbFZI%gERvKUw&pEm znw&}NqHI){kN~sn4G&0B<25YCREw|K-su_nh|fEnSJD7OtKmZc9}vCxXwV49NA7FP zG>qIt%BW9ac9oY`%PsgrIpfY~X>AHaFH*Bk76)CUfb2Aq8V+>nBlbepJdYp#QmHt` zTFwwwB5y|(Z<>akYeU1{j=`90ud$cA1ZNVJ`rVn8)*v3-rE>8E=WvA)jAjE{v5z-O zp5ija8HKp%S#vWxmYmj5#Z}=8dT>Sde#Q;u{=8(4t&XhWj(@Sr1#J9Zvy zKvw;L8-W&SeZ&dK&Z_&4&!$FEylb;oAc?EyDt!9yKLn)>^j$Cg}s#hpP#oRBHE zK2ghxbDAF+u+kMz5{A{n1eceUoR3D$gSy$RleWMgXVXX zDtHapDRC>)D%C3`!_O;8Do6@q22~!A{8x+@(fBKg7yEu~4tGJ@zWlY^aBc&2B@Qaq zNh)CK{HQeooEQASS;3W@(<^C|vLu#p4bJMOyu8a?!3y2V`h4tuaY3sPri z0HyB^dl;C1yY!I(@!#$HSYit81|WrzT`$5y)ibfn?EFP|s}YXbB*%BV=L;p~tvZ60 zB#u#xR6hOmrXKtLj-f%W+{RXvg@BzhT)QEA#Q+4qnz)9Hom24<5^5;KB*G=`?Kt@! zH@qYRON7V!n-~FNpI8Z2pgD+ST{!L{f5dgxn6EcKv0vUS0h-SN_L^(TxxVu}p7%sO z=e}~9(OdrhEBx}bYl*`Mv>hM-$qwKYQ^W#a4#l=y@3UCb6_#@emop~k*7%qB!daYe z%zRfckn6ge-7cS9EORG5+>Ex+(R8@GZ}8U%FDNEiE}7nVOu87cILbmNK&e-DK+_Tn z^wKx4L1#%V+vWHDQ!LnmEqshX(9 zpw8}T))odVRY^R^)QD>@M=aq>ODoMSC*_Ko ztF0k3Mw&&*zCGFu%my*E%i=UOTo5nd!cG?TXEG zB<48a{Wb2gkbEYgSzFjg<4|r}5L->MtS2JtQxV&xAZ}q7IFD6~FO^2i2v|1WT@E^x zBF^+K=^|ZQ*xLS{kybNqqjQ+k)qWZSBLGbzGPfc68dtoEyy)^19Gcz`SfK+wv!jDG z$D+OVg2atny9_AxN9hSi68Y-3C-+kGFMO2q*4C%V-E7-{X9rH>zm(Rv{;qc6 zt`cHFdNqP7v;qb#wjc+6> zP{bxi;A8xJzR#VO6=m5rS1@AMO5KW_FaV}e?SqptFv|}?4$sm3VrN$CUviQUtw1WZG zDgquMu2q_qqHohN)To%1;%L)tlj*~SvnCyLe0H7mOj6S5i^I{u zn(BrJt546*Do(wu;n}fHp*yCz*SMlpQu@Mskb$4Xy*i4zk-G@$)qr)gPQ*-E^sYrG z28B?p+^#nfKibA7Y@a1BoDtlMn)B`4F?9yd9b=$$L{G6KzZ+q9v16Shz7D2Ax&(ur z_U5qXbQ5F+DD&~XXV6XJAW#Tlo6R-OTWK^xU?EpcYN?kA3-+%<6{TMPg{2mKfpB3k zObkY5vXq4qeS#V-euj7WLRDfL`%ZGZ8aZ6<@FHHb65L$+l10WabQ{)6(JZ(m5u~tk zs5HIdHpzFiZK)A0*pgHftS=K~r>v9;;;_1G8!VAYNzPC?)I|WU5$#MX>ajit}Oi=fshyDTe5d!Gc0-edMtV8yU&!(^jG5x zfxH2U*}Y^&BN`3i*4Q0@z%{bJj(}O#$c*RQ*4{qf;v1uKSFC3v;*#w4MP3<17q;|` zLxso56pr9}eeusIDk$yXk(#=q0kH88!m8^ls{}?J zd74ynLX^cU=DIAv5EpMhe!k&XC@&)c@2K?Te4E{0j^;hD#)p?~gD~f1+}Wka3ldSRH;^KeMEobBD|Z;g6v3U-d$hX#u0mx zig>$ohX~tAR9!R+WiXK}BR*Q{Dg$ixTIcyXq?O(hBos@i66=3zek2>uCt^?3GqMOX zEVEkA*`6=RskFI8oKrH=-Wbt1AdE6%bT~kaTKKL}hOK<}FM$t~Si25?Jk@|$J2avQ zckaRoJ9MUbnij}!gTYWJZqp;U+j=rf`=a`4kG5s;%+wg{R9mVThpQ^nC|iiY{F!k^HXM9&L7JK}7B)r?3sd`N zpXav;BAywk*z6j48IorW0Z+kuMm1b~J1d*78gT`YxY~@ylTmR>)yA{)8h#RmR-D6U zY|K{?Bfwf*av_u11DpDx>9@6blFHWUndesTX}@Ax*t7BZ|+lKd8@8+gMCO@+>a%f&!G*Nug-*|NUC`m^|(|LE}dUu-R;(ahclXaOa zE$7^cC69$lLqzNboCa7kjQYh9ZRW-bXu)t(8=CE97AFRu-x@e7P^-5Ha7fHz>cdm@ zFZA0Jnp=bfs=0+%>bEOVKlkQ-Cd-Wcox7WZSQpDR=Jt#II{tbeU=lP^6)&px)Ngj) zZb!1+>1cDSlUD6iu8#d;*ZdtR{HlQvH~(n2<%lQNk;~Eew2;W$LH3I?7=;it#MB*` zyT(_p66HhcQv2RCgT_Or)(Qop0{qY(WmUg47y0Y=!Y|wAUBt(jd(&L`ye6w9R{N(w zpVvoJZK{A(+lUo*e#F(Zw>Pbyy_3hSA28M4r9k6rX!oN@OW0&F#+B!cP)_^gzNTv6 zOh`#AR0Dpo>A64QS z52o3S3SQCU21OfFagSvOP5oKyblplXG3UW{W;SL^s;SB>Fsv|YSutVK&H1Jg{hRn+ z78>nPsR`q7-i|MDq2~2sfk%ENfc>Y)D|8q>UCzl9@l82bUstM)pVOdKM7j==>(t5^ zeM}tk>E_zEm?s>YK<%zcx$16%5eRe^m`H5lQ3t2<57uU!!3YY^Z0pn(EZw%Bx8P&^ zV^@+O86(n3_xoQtW(NWmTsidv%^7UWKaA(JsUtXx_E5k;+DqY7lX5aMfC>28y@LkL%pN{$zgQ=Kh_ zGa7}0`ZC^zaXm{j>wP4@RNoK0{`nvLh^=2#a`xUiV1FDQ|0ckeJ)s1@JQYram9VxP z7|J8G1w9gTxpl73AFE~{#$d)c+x%@r7(?PH`J)+@(}}l4(;0I#M5FOX0x$L2dx@}y zim_nlKqV$dvH0|m`i#N6B_qq2KP-HrDWh(ukxP5R*TgAX@Ew zqb=#0L`3ZoZx>3kD&lM(xlc4UL1~xxCh+BpSPbbYzceV_a}GOEKj|%Yz;H_9n{i8& z=Ui7!n67-QgrCsai#G21DyjlvHkn7{J~T9xuI=Za^5=zaSRG?12}n*(_^S5huHbeq zEwA6;hDcn6z&-z{UxONG^}Y*D{07QnnJae2qCBJK`icELva)9jGdJ;b$ zSog8=krg~``v@YI;i}@r%?BHxeM|3hvA?AHJw}VeuV?@(M#IA~&KGbd}Sov zB|=s;HCHE!<>A=)r3_bf<)N9-&hDjNWSb1dx_wWY>frJ8!B<-@uBCC%x?=maSSV%hR^|g{^t!6Vl_x`48Opp8J`dd)G6=c?>Zj=f3hU58rGo12C2# zto-xVk5BH;?-gtY+))_A!x87^BDJ^!o@{`p%mT{-6XD@rQ+KgPrQzYmRA7FTVc?=i z)P*d@bmKXUKlbS463HYJkAqedXk`#=l0(JKsQGcJRXNdfQH+mRykkJ7Gz0EgHKuej zPA$bW^%`r`b-|f?9AB#osm~6n*p4~A1u>CBPpgpLAo~^YK!jvcT>Je(*)dGXAM=wd z7Z2T`P0Os3 zbxvl?7%4(4r)Wi>ANFybbymh5U=jL?-r@++MG6093LOhTz(vh<9eW&PF;%*l7LV^S z{P1Oy#5ut1G%!;8G%)5@gS*sUEx!hq@{_5ah=cbIAvc@IpKCemIj}7ue1#mGbMr~9 zHwhZuEFIP2)(qE=6=|PVz9v=Yr({*Tvaze@^O-A45@o^uM^d2=_uyRk*2ZXjEC;MT z*{^4uZ6Eh+PM==yYuM-N=eyf-Mgj0bI7!qE+Fud7@7-fkrzx#sm(t~42_3PwRAo<7_?dOiIX4bfS-F(a5aCfOwW&fYkd%17X$LV-Wpa&YyZn_f(< zs%!M#Lx)JK2W4oqWiqHVKl4d`u|-=yIk9GSW#`2BTh+vJXKol%kvh&nue(hhk(g5^ zYtTXmzU4n?Vni*hzJF19F_7is-e6a6S0ev)Bj`->Ovb(+jiOsyymbD7e76j^Pe~Lci^+ zsKG4B1;GicahO-xI7vl)SjBnY=CD^)b9)xk748Nurv#~Y%I^)jy+8XZf^vVKpcCN} zEqPMJ?_1??*>`s51S?z1$aNRunW)5nA9-x|NV)V(ZG7#ScrEwsWBF0dI-G+r2L4v^ zv!wnjRpJC5OjQPIDscnFL{3Q zy;#J2odcw)B9YyMSjTT_sB#kJ$C?P4;bWyb83Szf9 zxmF{`Ec0dy^SW|ir5s`lk zJ5YE{wkA}K?2HbQZ3@RD-}Ei8IU!bpUEKl{Rm<5XB3*!=AY4K;zOHSCP=+Zmtq!{(3?J(lI#AfMO>C^g+rJrVsp^1c%NaMV!{vTU*$l()t+deJ##ebjRM ziZ7DhxMC-rxz;dWV%t8QKOzn+!W3+_iLa2A1wI? z+Yjh%P2599Dudf`3pE>)SJ-?)Dn$z|O4oa~=MhjY9jb*&5yk+LS z8{YBuWF5JHN5j<8$_h+^zLO|RE)kwNvfM-ibxzRq(>heAOvZAD)sFD^#r&@)kl0bl zN0#pK>6)g@Ts5mx@DVUuRtHhpf85?_ZL4$^!KscaA@D=F52?oijUM(vAEIyry$3LjADFTdr~LlQsJ zsqf3(6bA+2T&?80`aM2=ReRI+rU$VV66);k7DrE4W#K=+cI>8H=H3Fj1voCM7g09x zZO<&vR(hI-^*zlkGkVH9+OC)maJqL;E;ljPOIs?>ABaHvoFLqC>6IxBjdnd=ri=SWlxqU*Vg+e=`0f-6$z?7;=__H z;eszyT4P7TJ@8o99`=n62jl6bFGDt`K8Z6FZr?SIR&{%i6EyS3)KcP4#QK>Aa!+U} zxoTnUmI5-gDHPmubDVSi_s>T!(z1!$-p$^Kd-r7N<0k`s&{?A3_l@pCp8*xp`h8#N zTH`2;YHvlFWSrtf|GeZv`>132saH{Slx1{#K|EQ5%+kuMyVwuQLnMjemBhiq$K=8- zS-u)Lv-I1NX9}Ad9%g#r6gWrHAIKLKNXc9VC8o1z_OC$ne&leK)Ippq!p1j6TNppp z8}5ay{K|*&5#%e?|C{D)y+skDkTnC6daZse7n@Mc!kHyVFsHE2l%(BF=Snqj_cxX` zTKNpy!g}Hlt!CJtwcN8;wuS4`6Y{Ve*-?luSkW~YlWCww?NDsq##{M7e}3M&Ru|Ly5q6;FltZAg(!>aRO|`-^c9Z^mc<(jW=LFVfKBELEh&+)}#&WDcA3A`DST zb(+vH9-`vCigrc%>*dI>-DX?MBfD5fO}dF%1IIs0UN!}dz)_~w|q`V zMj$TE&UlyT%`TU&hW<2XIkhz7K2kB)omJ)bRns%SKi4N~<)XAes_c!Dc!dYmb^;tKq6?eeGQ&X3s&BRI(KwIz$iwa_L)plV>Mt3SPq zR5HoEajQu{K2KgBULiUSyiCz9OPJDOnP8v{u}yAAgAA5LJf(+nB<9@_GBfL%6X)Q^ zT8T{qXA$$NiPT=}7$h$}&FCD%X#X@D3_-reGdWIB=b0Jmf%C)MSfU4t&ewv5wAoeZ z<8vzKM~op(detpx8;EslNNRFRt%^?Q^Il|2I%N8vm5W9MGzd?MO!xWOtt(5T;meL2Af&jpSF-I}S(*D$S^V zQL>2GPLFhEmyJ@!EZ!m#j$mIQ)~rC3hMn?)WtG^Ui4y9sYu)?sOrwB+BLhRY6FZJn z3QvZeuGEWLfpcB57K4)1i!$9qic}H$P@Oe{5lE&Wz1KOjca8&gfLeBSwes{gr?adE zH#ylQ9&{xtTkV{{tJKV;?(-zx+>8$~)KD$}rQ%Q1=c ze!=E(1;$9)8=35G1>;7dOE62j@0Ga)Z-EI)3DODhm6JhcCf{T`A`kCI8>3uXIfz5F z&Fon)GOyX-hznwMveY;7rs>Y>fsw4sJ*<|qcGOcYk4NejwPnn8MeuVvR?3$BCmDII<}o#&{NY;k=1-!aHin0A!8i5&;ddM}v$5 zB8J~0=F;e|;`F7Yr;TFH-`;o@6^4)54(jN7hF2>BQmhNCPrMdJ*s6=Q6MAr&nwCN+ z7JHMJYt#I4h(q@GOn-g%PVdazXtBEqZlC-)UD>?!7i zsD7LkZ4%mhCk^Jz6HzD20=q#Zi`gRO&8dmwa@GLsXO$`XlE(^!t@g-7{0-T8dB@;= z^2E>F_LL5@Eoh>%F=hRiYR$|~wAJHXl&DGk!na6cUnyOc5Uw}i8o>D=LXfo!)l#+p zyc77t4;gROT)!N0G#ihUWjvu)TVAzRGvLuymebOeBZcU+*eJ_eHb)Lmw+lA(#aVE6 zfQDwytenMbFK3%#i7lQ`2XTL^cl~Stuf-dS6iye}0a2{Y!3@f1vG*~Q*4Dy@X1g5t zKFqfhXK81HLcO@?6NTgy{gZyv$&ZeDFH*V-xOoR~Jg5r<=Ze|*L zHW}Cq*YFZ(`J)tHLq2mc+L6yT2^!f*+gEf9v1QSJH(hf4>`Ib)QCfdvh=ts3p5PtI zy(L))_u7`lJ|8n15* zLUn?WnP-A^Nutup$!sk)3VLY@x|Jf?-5-&W)!cGO<<_M(V@=_+*B$ zWJD30M^IMK`3wnMhnZHeI}F{<1HRz)6>}qn?FnWF%s4>F_11Bds_(I)^s!V86mVk; z?a~m%u{mI!-7xv~Lbt;70Lbqh zy-}^`7eEr4J&w*mbrwwh9YUfQ&EsBc=K{>lRyctbOeX~~=9js!wiQHuBfH4~!4=$B zW1)?RCUSV!L{XOlCDHxQ4Zz$#z;sEBiG+CmE9(bnlp;qoRK%!2hv=ctl#6c^+ zIv`R9zGug+W>U44UVZOWC&#3c---vc`rAn z4C@d(*MV6pJeQM`Z69MBc8gi4X6PhKoX|Cm;4lq?J^P3~!-xYvjXj~W+C;H+o_{)MjlQ!L~A; zaSmXZHlyiSnIf6q$z^Cr^Ep4#xg6?hLp^fPzZ`k@07Kmu=1&j1Rv;N3@PLZjSLDwe zxz->V+4F#q-V}HT>L}<902#HPqpOdUfE_nTL8UEI1hU3`crk?42!tEh#uu z`izu!;N+dlY!9x#FYTRCd#&0%y!;Haz25`G**@g+PP@AC@$E%@Mi)Ayc}vc_aq{hB ze#Y)Oq=n<$Uarz9sqH^t^RAR?bi2)RC*1KP(xD*rX%3 zh!Gmfa?ay44Ou&A_op@%TU%-mr#2l}duaEmHKtgbY7eP3En2&14=gn{S=(rjEHyn? z`>gkJHpW;R6PjjeGz?9$Z9_z9_a~;-H`@HlT0LwIv9Z)%T}rL13Q29~#I|O)?W=Aj zb^|DGgg(0?g#iqSBCKw>FGnC-mxot02+j9w0&R>jZ4zy))>lokjFhW~np=pi#n;D5 zR;QbzE`D{aUN(ne+q5@nWu;h$Hm%DLnGIAB-yOzw~IhP;nyKG3a%wN}hn|p{2VAq6Q{}3C6tr@zu5*v!IDY`Zi8;`6x zxOV0k(5y+i*5??Nu35Ua=NOu=X}UJ&7$2>9xOVFr;I4_f*6A9ht(m&E=^Co9sk%1l z8ZWQ8xOQzCaIML@Hf$QTtl4mG+qUqX%XLg#HhZ1xbq7Gd^FoEy97;7hk`C+4-aJ;(krj% zn^V2o#i!{~_&nFNq&Izv9m}i9F}pStqBZg|^q8g?7jY{sM(-P+oYTy>uqZe~tBDVm zKsER|#a)EjuxBqiRt`J+&2Vi}rAGRujcCXo_)_R$N9&$1k=2NhNX%{Z<#B0Kv(_^zBQf4zgG!QVEyf^X~ogD88ts7q?k5vtf4Idb3 zw~yKTl{r;07gxJDQ-i-CPuu+Xlyb^fiN{j#*gEY;gqve#9vm@Ob!o9QxTd+;)Icp3 z=B7UPO_F97v(9pU5_I`!)Yenku(G|ppv+g1M}$9~VCYy~pktN($)cD1Z1AkK$X03~ z=n8t6Ew3(aj-8&~ofX7>P%b?2QJls(IA2z?ifGpI!**djh`oGl2ZelOX@MMI-kS|#K@;F=D4%_N$8cI95T0AKR5d!c?S&ARey{urBtzdmPf=+d2vB7S&cJ2_>kI~?DEROLUUpHU6Ef~kq@px>z|s#L0RjQ!bA znN7h02#2oGpLB_6W2);bs);&kcV{X;y7j2Z`-e0f@p{!XT=BmCi`XK2A6@4RxS?$G z{KHV#$M*6-9KmIOGJP)a{}jDEfqgEnY#6p;{ZkUH`0!j5CrVVhsYMfs&YFoePV+8u z?bDLWJSV)RI!DQT+sRHv*%SvvbVm|A;^RC@(+Q5TjZQ^56ctsq8ys#5yA?_j+rXJ}hW^zjaQExW6$o(u-)}&yUBeg*LJlA)-Hsl8p}j zd}g~f-=7)HOAw;)69YxR;s1{nYM`n&&F6+&^Mjf3ycD6Ye*aSitskxa{|e-~v!}UA z@21A`l7wjdVSC9?y5TM+Y+#d1*q-pCM8M-=LonZ_kprX-DaTv2XzY`)~sIX{XaT25Qr1uZg!onOlD!&lh7?&ZR;rMXLVd zoO0EKhA-o!GJgHi-T^UN*3BE+mO#6|8h{wC)&b2 zgeN@=S|hmj-dD(AtW=HI5LxZb3VX?j-;tkWEFrG z=@n$xG6cyPHU!Dl`_!i-;N4lHFLJw;?ZHs`X-C=Ss_|UJNx}p)L-!2STUM8AZx8eb z=Nq4J-4oHXzNZip&{P}5^u_^vdOO?3{eT4atlp7EexSc?+dK;agz64j3}6loNN^0$ zyXV(YxzCk9h(L(ze(PL%*l~Rh6d&rKNJ%f>p>5Ur_sYj-UT^H_{$)VR4&kE?7V`i$ zPy=l#g0 zM`(H%V89{>CO@>t^J4Y*EPj&^#~ajFzI)L_4w6j|@OZ@<6utRs^z3_|7x|H~;=%vo z7bQOUq4uVF6YZ|{rd4%Xh*%d#tc%1$cry@AD)#nmHw;}U8fZ9(O5uz5|EvBVk_4~- z5O4+M{l#Q7EHLXm&0l`N8~_dEmsxj`;zu?IFk}bS4tTVJ;qGAQgnqS$wC!hfC*Jbs zv&X&c^Kr-A3T)ZYU5R4ZcZrVc*T3T1dMdET=}#Zf48H*fYQ5D41e9HE*)x{G@Z$j6 zxUS<7($VtZdM2-sv%R?i_&^mPqmP{d_3*!b(!2cX2m+-q*|>z5agSRwJ;+1DUlcFz zuNP$Hjl+L6uM7}War=JGE1^D|J2;&vcD=-{h))2)PI$Y%^=qc{Aw2H58%3brTMN|m zz&6R}4LDGtwPus>Qqw59w)!cw0qqghoZOz!8R+CQ(%Ck zkK6g!>yqgW20FKP@ZenjvI3t8_R2Hf@qL_u>|S_H@=xo3->d7M@DU=lA5BfBC?zI$ zT{HHng?cANe5$@FRl8`wF>aMc7DsU_XW1hCuxf>j*=x8?d(A}vdfe3Bw}XFFF#1(r z-T2Q$F~2U8e|Qc(>LX8nez@R+2e5tYMGM$If4zbLF#=n5w&CgdTq%ifZ&nhR*Kgf+ zJ`ntnK?1LDJ~u-CA7~&7;F<8^NbFlE#T%x!FQS>jQqSSwKN18=*`FATgED~ny?*c? z@<6}7?Z*rCAqsn>*w>Ek-K%%5=45NS*Wuc=TNfaGcK=wT!}QuM!5gRdfccS+>s+d7 zD}=g(*Hll<^Dx&ADsjVMy4|YzrXXSZcJQ*-2MfUU>fQgJb!*FIf7|Ku@h#@Hc_a7= zcy4p!=kEu%9rfU}A2;X+lXV@N&=_50BaI7!?mRmujr6)1jUx#l^?w@NcDZLB`tW2A zB#n%7y&t%lizSH?cfWV%?=OUZ{pj?$j8i3cWE_SC(ClsSypZvOlZKY=esb1TABBF) zZtt0UZ^k1IoN;o!tlku6x5q!SO~r9VT!~QeUoQNgf-4tq;tN=Oxw%ho;!AsouQh;= zdwoL2{GSm;fj>v5_IxDsBH8ZUx080f;-20U<=^RLo|n}bKLT5sWqHlb) zeOW*Y3G)460AtXD^;IRf9}oA~O?-;O+t;1twVUhp^Cw8q;?{$|U-dE^u+xWW-F#F~ z-E#u`!_$rtuzg+YSNdez>uevlx3jEH^wAC^g&mG1eU90(?X6<$xzHE4A$1F`p?R>5Uq zMHaz@EClx-Z{PSWC(41Hu%bhGFJ6KVXE!T>k^LD6^e>9nmn%D%M1p<)1rZj4N67{}T{Uj2bG=%Fh;FP=kKh}_D^8%%KFwFO+h zU%9SgKw$L8wvP`f{Bi=O@Uz#A)A&})Zikb*-Dp1M&f0y1|Hy#L>Ce{C!JDxyQdoXy zSO6LS=BsZnO}~U(u+Hs`9y!0^J0b%KXp$xAR=(xQh zub=J8I*4>qb^rUS<-HE#8oCO%i`d5A#vu*AibNgi;zsdAbePp9B8{7oP*5@8(7D+I z7Vf?p!}QmV+l$5WqcsrtY7gH8?S>7~490P<6~;cMQ+U%0{!mZ{2$g;PXTmg|f|8HD zDd_GYx()^!y3eO7*ZBqtg*D(b;>O|=aTBp|+t13_1GIfmUk~p7=+mLTrriG7ra`?s zO%g8dA-#47HaW4n-;%=cuf7)g|Es%|zMo-sJwfEcFOMe)$MoP{TLV)+89$8AeZ&Vd zK)IP8IWJ&l4MfywFd=$#w~ITdAI!XVOLZe1>o*3+{Q5|)t#|ou*_(V}NihRl{$c4PrMXL3#u z+YTNdecF079FNq$b`>PnDX-u@Yp4LcdJw?ie|&-zyVg*6pxEIOi>CQeBY@%DL3|x? zts4im$q7k4;Ily?+~NgpyeWv0yoBPuS{gc7H%tQG9vSx^+fLB7Kb5%l!zzcyO|7a% z6w5V^7zSR{4anV(K_IYL{LejHDoNiwg@z}kJ;o!dEgGmD0K*~(CEpviBk4|0;s>DF z@*@X%#SPDl2@yNK2|-04IeNEW1p`eC0Ds9xjEVe%uAQ%3drhuTA##zC{CG|7NnyO{ ziSGWA7aIRhJHPG~FFrupAajVmQ636D@t)~=*dTLQ<$S4#*od(-p}AQ0zwej3G3-}H z#s8z>dX7~oGFYeoueMxRG>XIMF?To37MqE4^vK>F2`g`QLjDXls0=9h;psQ2tzgM5 zE}X}b>;JEj;5wcg_k3QuJCo^mYk4OxXagE66#<0`1PKlZ3THgn!#)SZ_vFDpXGLwF z_Ii1JIQ0TO?=$S7K^guuUP5s02%pv$_jYwS;LrcY-gUq=m2CY56qG8mD4kVSQBeVr zUb2eHT3JOvq)U@#DAGfMilB&Kr3fT;RI2ov1R|ics7NnKs8T`#ND@d$z8gSnxaIAx z@4fHs?{}Cx=YP(eIdks4b7$sqC*ZaC_^u=9`!qL2Xw5r&JWFLqXuvQa;aJj=jL+LK-_YT5k-j) z-3GJB^s-a+$whjOX@w@6ibqc}xpCu`!^mI^(`W2q!J4j>*5T@S!H)Am9KpF4Fd{-X#xeR;YST?<}v04-9Q8zPSZhhZs6 zXSqC9z$uSu&4W%{`(aY#7x+U6fm0p|c%xE3PQ5RCG3&Fj?l8@QZl@XE88^J9jNz*J z)q<6yD?pOlbY%z&kJV$_#xtfXGs-eBU^KWKTxLqRarhucoc%fln6OLJ+-cIZB3Q7# zj-pk_C6DD>*~v{Y3H+4w zM7r+mgQII@H-3vJf0Bq{?p1nJJIP*(md)x{U_V|xS1kc8r-wqEsRH9ycF1gduFoCt{0AZN z-ZkfR?5~9Le=AUDG@z#E%w-U-e-@R*373!Jt^ z^DujqooogBZ8=sE6bM5Ue{u{ho{X1#6lfE3DQjAp z=1Bv79jyeUS2I5B37;rn1SSsXY(>coXh!p3FIG)F8cQ5+tpWyTj0sQdLm8^u(ClG9 zbL@(PE#h9i^Yg6s;AG3khScB!k_boi0Qmo|ASY}9_ zfzUvM8cso-A)b{;)D15@U& zD-p`$AI1ZQpN$7lV=1NToKOL%G?WV}0_8)x)EZT)b<#~aoC4)IdRlKL>kA@RkyV43 zf(&2MAvB4mU`2hb?uHOTX&Q!0MS_aoX74YBNqZDhSxYRQ4lJCRAtP79>XE@K=f-gK zheYEsp$gS8^F76*;0}-4BL4>-GCT{AiGrG9(Y?WTw8u0w+;6577{c_~S)>9uK5>9r}DaSAHt z0G+I14|HXROC`zvsjshG+_B$4Z!PdVTRk#0ck&Qe;0|?-_tyfxamCA52vy#@b}>2n zS*}>J{`$&$fo~oini{b~_8E=khaTW};g1*V;UeFOd*DI5Gpk!@1h3gt zLa?Dfb7B`xH#qv%b?PItlVgmYAi5qf7X~J>(c$zl`JM1eV4?gFnx;t>fpdWfa|hvZ zW#-60xhU)6mFV2r;c#{yh)1!->oB8)wsdSYAr`+MSV#AN+|28*$sihr9*E2@kxCC^ zXHW_b3}-opml$1Sjckvwmf~gY|B`2cYC*n2x3`0tsw-Ye2sdUkla0Y zqZO>Kf~$apw<$+~R*=NEDML2dpU}qhxKFJpX{Oi_n#V=f^mK2LJtrHE2%)wPoH+(s zgE|4MOpI-bo{ljZ(_52p_U=x#3fgxJ`$TC2*-)WL;L@BQf&(kR!D>ym&vQL;t~kJ& z{MOsI%JM{Jk3??PmP6HtGLG~6cc9ik8w-k2S%bR8VOR#-VxZnje z;uz>O1u6UMDXDIm8%72!|6_Zk8%Wn8>k0_F#a$}T*@ zG)23w78Dzc4^f0MPk-TnhTp}OgrMTs}(RG>S9kjkI|L}scpzxsk9~v z)|@0z)X6tDw$@^7(~&$)w?fNHPk5L1g&3Zj=@_lcmsgj$R5ZrvsCD_W%QkLI+QhK!9*nzI*fxD;1~*sPDsN-osu4 zP2PzN)#%+XRh8|H4NF~);AP6*Sj7N!jj!>~AdYp`wO%>6<1)~hK!MI=%%B2ggPp(Z zA!@$#>@_uK@0JH2To|^G>A2`5Lxz;ASVtj@E1ratYkGi166m)2#~zIrl#x}MlE5#I z&8_!opmv@LvkU9sH_(;{>b$;2-H%I#6s(KCcsoX3pE9!-J^PlhL8+B~7)?7^c3n$M zN8C%PGC9zk1F^`c3NtzU;>tNs#*uLb>_zQ`1e^S7z7G#6yAo)oU=zQX4TF)VR<35l$7H+<%_>5(olIznPml_-1o z8>8;MhS<*z{B2Pn`lB91){L^bo~Z1WliG=`w~6d2e?^eYvgP|4zue({AHcJetR)cg44Mk<>61`PDuM8_$f$w(sbL#Qqma(R% zJVNV2gc%+h;{)_jq7SDGADldeT*6q_4!q<&8(Xe8gbjxDNE6Ir}xIZX+&WrTGapC+kv z*6@5b<+RP_xfe;1i1oU}T0QBOOCW8ar^q`{w#Z6ER3W#zTWhE}`NN{o`jVw!OmXIF zI~zq{>FgZva(#Ox+8DpaLv*&XI#eZgZGBa+8PHS=LA`9MKtk0966=Rlb+GiZOzs8)JbJ2mKOJ0KQ|O37EEqLi*RRen{D{7S5kw7PeeIOWGE z6=WiIsSqm-IdC?-iY81u7Fm`8OCfP)Akis`=Hc_TEZP z{6cqD;nE)eSIZP72)pGHij&xoxsfmD@yG}N0%E`h*2`a zVA`v;Gfw<6h!TohQ8mT93xOR*qBh{HZ;%v^3|`t1KgKl5n;!%Xd&q2^AMtdABzW*y zEiAiqh34bk{a06t&)kiK9$tkKdn2|-^3Ci}oTjK7xDtNWvmW`q7bPi#N|~`h+Yw}X zAE0d`4X2uu2`Xexhz#-#HJiZN9}E&9dy%kQg016TBt_1LQr^|@MfyYO0D)62S&Q8> zwe9=;gEnqZiqzSlR4Jn5IR4;vDKSLe77|T)4eKMmJt2l&2mDa#(ymP$B1-+lm0ep2 zbIB1}Jz}|kAyt-3@M2G7L9cr4x=73Nmairc(8nOXss*++>pRXi6W$N1)d^etCA-cm z+r=vR?ya}FmL1zW0+`^9oKeE>6{GqThCbbY<|$&ZctpapRkhm-KV&$&$g&zgp@iIH z5fdD1DYvzFkA?5$0;z%s>f8*VteK!=F~34mF!bEj0~2$wU}*+M(t~HTT(>|7Ty9QQ zE8z=L=1xBW*}kXwLQT3b+m38-9fc;L{G&*?efO0EQr9l(f3Ldh@cZN=c$??X>jhsm zuCNsNYVzXQns|*}ruwH0i22Iv<_05#5=zH$H(pKhggZ?F%2Onc#Ws3WhpWG#zJ6n{w$Zfj!*|33gYEHbL5vb0t2WBGflQj0mAv|SUN%=~ zLGYo_mx6%GYk;*r@%`*-oHl<^&6g$qcpbmH1X%V+m)`x7;NRDdoKup{oocU(-0%Ce z|2&*`waHyBt$ok&{LAkJ>%I_lEt@YfslRB6ubTRA7eq$%e?r5D_w4pwl*0HNj&67Q zon$e%ZPP84|6WRO7H=Mo9QK)y#DfE$XFdv2j9~WZxCfZc(vE{l`@_w&YG2#_PeJ`} zl?=i)wQ674MhSYKj=P7ElK$U<;DQsU0`GsoYMbW&{e@pr;pvotd(9hnE7+~ZmrF)ZU3hr!IUt`rkWEii7Z=HRg8;E zSmPW1l*i&t=FZ2!4{S?sh8brF4X15S6+AW1Pnt-45PqGh<^`h3~%1`Avmu9+u}8Xr3cEJ*p_khZM3b*GCT2Ew>J*1<90ZA7zUGtJV zN@o$mj7YrG5|A8CybQYxx`(XtH$xGK!;Hvor|&`cXyO&v4bVMfDt|K+hEQfi5}f!! zb~JGeRt#E6R{5KuD1;{?vd2jZ)I$@m!fHS($5j4i=nP^x;{e`?6C^^5M`M>j*OOKL zX6PbfFXKSB(@M~FTKqHYkI?mFDt|9zbfoI&-$CO+x%ZZ_b9d+ZQp9lWqHa)D}mvqETU6n|680oiw>`qt+vK*4=sYml@})~6cshHcu>@=&~wrbE*gRhgKn zq-8m_b<{X}D<;>KCaO`r*vw7U2FF6fl+^fnd1{Sw_SWROqC~Y}uePr;#~tc&s&D-s z%};F17h~6Hd1#?dHd+|lu*ua?N$uQI@yI$GH*Px>v4pY~{>pCzop4)amo1i1(XzSH zQCaQMQ?tmrZv$akq$>NB)WV-?M%LN73EFv!C43Wzl7v*GcH*c>_pscFrYMyRsFT%9 zeaUoEz@+xXkY9fzsWt@{4+x?$Y$TnJO$+!y=|qVioLWDp@@3i0VuZ88TmM{gS9q%g z;ZG*wglocE|6GzKyj7C$=Mv!8T_S}4Wb#DosEo5gT?N&WrXRq0-OtcPRRQpch}m2fpX3z) zys)2Pl@zzZjCi%zfd;TB)yXZwjWIKK1~!N!sLp3c4)ldivNsjD&R4 z+sr-Ts#>Y9Z2zaA^q^CyQ(etP0oKF)!D$K9+%K49Dq9l7D)>V3^)i5@>)v~7ez%6< zLm7*i{#65Cac7}S7uCAZa_-Y}*1z`YdC!8auQzS|Jo8(g%~_L# zr-1#_k%YqOuz{gPnRHu>CFX0wuNV76lF^fD9k1L9?zNIFf-&Bc0@y}%9aG$AOldvG zkksvelHZ7d&2=s}uaJX+nJ+lhG|}sMT6(`rkoxz4Kb_;+uJKRuTQNYd;%Vvr&Rojo z5|^82$QHrO3XVLDe-r4gB9vdJ)1fxu(O!#LjER|Sca%Am5K!RWPsro%{JP@TB@dsv zOSFGTzOJ|+@hj=;7>n_)n&^_o2KnibI>$=<*bG?HPbapEEitd3Wd=LP?)z0;?~*nQ z^waq&GjHv;)V?tANj(b;+Zy1GdA(&M@r2uIyJE5Sik7XFzRG!*o_-rBNUR;xB2!6G z$_sz08%eZv6SDh8kaAx1)8I&=otvy3U97#TMX!?bO`y_dY9EsIkW>mxL*0gIo8APc zIG0{~IJxgulY;Z{jQf8T6IiC|Lv{HJ4gR(6{f*YN!c=|uU5CV)a;)|?1g<+ce6!%&Ydz-4g<*Cbq;KMxD-Y0tX7g|F?O*fmhWG4H<>vV%rRT}0ep8VP)*&HA4Gb!o|Wh;YS8=4Sl5vA!+@_w3dj5Ak1q zX<%GsaZWPNZSftfpx0L6IcV&?g)S=tdGhSX6V?+Mmu!z3^oR#?7`|g}z`y81&40aA zM0G^V2exxyTR_XPlqVeL(mA2&z&3!0EG+O3_n&{Acee+!mvIExdSQR5?9!4BU}J?V zTNJ5Xd~p<_xLy7G&td|5IKpQ{1tkzQtRaL6=mQ%Kr78_kxgPRb+W`FwMyS{q`&x z&$XV7iIjxMUZCGyRqH=?3ESv z=eK{it(TA)uq zoEbdT{1^_0kLs}o;wKmgZ+Jt!Ona-Hc95G>G;!oSUbEvdhLTiso ze8ap!A)RCy`1|>%o1Z=JNDP7m^1{O$TDU;O)j_&7!K19Z+NdQceglG-RJc&CjGzX= zY%4~bX3XAEgVTZ%nUWTW7E3Q%l8#|gST4P$C)^!wmID5b@#f^? z!}1*Yx)naSC)&t{TYNMhTyTe9L(>U#XVVchSi>6|PtW8KvT4YNy9KM@jo?)0D%Jsd zLL2rZX!sOjA`)BN&)23nofezJvYiA~ohJQ^cp&TZ{Mr*A@S-i}Z3aeR?(EiNUry)y; zQ6uRsBU{QGfeq+f{U$yAe2PgijOwQ&rf2K8)wmPt$ZE%GyN;NsD&UE&=Da3S$aWJf zQgnn`W|N{W%j=g&43HpS@Ld%wEBq0?*w)EG@@9s~nd0w}l?#?%j9XJ8yCE-;!@P69sEp%Sn*tE^>(0XiuAf}$fp6ZV(f>}Yt4ZQnO;cT<4g zCagi<)FU0)n*;a8AxGiS)f0#R0snmg8QLK0b0b=-+CaMRUex$ugQ-XNAa4%qeM30k zQT1o8uG5cH@Zoqxsp(h_uwX~AYRV4w1=%DwCl!P(WlGY(`iQPujXwzZhr9ab`f@?H zktdo`xt-Ct5Y!+IT!!=Qy-!Kbff>+2<;CVW0UGNhP9)C5HSg3~{GbwN3EO67awC7s z@M@BG{_4(wbu@?B-47s-a#wnkCs~K7kW+vyC(4!<3{^iRr8~=eNHbT{RH=o8jp;e* zJdmSw<$~5g9eg9XA6(~hg}avVIt?H*f!85ERem`rLD}%fDa1Ua3|TU2MAKVV4bR~g zC~sJv+(B%JV#QO`a}lqgO`UoJgK)pP)j8I0pnK`qneLjX5>8fm62ySc%{b+%jknff z1x1xSoCze`%(fni8I_5jWj%qZz-DXYpV|KPyyOSMv+F_cq!71#B0y~g!%PlE80%>w(YA6wMOw)06 zJvt_O$#9Syo=7&uqt38aF^ijoxR@>l?a}td)!ZXz5pFX9XzOqk2drTXcNRr_zL#j| z%!;DGLj8D1)T=h<%;@kYU|+Jc$>w10&8|)^7=yC{j($Oi;?lRL6w4Gbv!9CV6JQj% zGVW|`6u%SRl(0GR9G^$4cW_;jTLD&qe3&NI5!y@;WN1O89(t^Xa;bH)u9G+VO**lM zZPVHs#t2=0tJ-jBeJdRvAwDt*SZ4c829aJp29FMoUw~n@Oz@(Yn40qZ_f5Tx} zt{B@4aOZ%zq+Thf?D^=jgZ|Q^=nPDiEw3Lz-KOCtA{47VzLw!l+Xh+6T*?qE;Xv`B zc&x*5;h=MA{MnsPxu81w)0OV;F1Npx%y%fZ-Z8J}Kg;D#8q|}1zqJCN3hfKZ&7`wr1 zU4+HOwWfEU-~4aMUIp*%HUEbG{*l`Li0)UTzH%bwS>Z>grD}uMe**a}k)7O!P7s{& zLJO58m|HLR=hNW~O7gaD(qp8ApAw+CrpfX!gvx3{m4?TL$t)z`WjCFJWNYj7ELilC8(mYSKDGRLa%@ z-Wpdqm0mAwD&`m{eY&(NrK|le1yR(NrDEDK@TA9;41AG4Wm-~NB~{3qQC376rH%GP zjg*7Yx~Sre&X;;GPZjlxASdrrjG{nkGY4sr)({iArjuSqhP6lkr8Y%pR7c=?eEx9+ zA1#8CpNr~gF!dY^Q>R!OAbG64&o}1+J4=Oxv+A^`?og~sqt(JFn>mwF_5G z)H9SyRC}y4r}@F>&ez^;*Rpv!narV`3*rU!KPT2R&RVnX4g5o9N#@(w#i73O;q!*k?wWSih`pwIG=cY|B~P(!!8J=QR^ zJ6`3rOd~iKkgY{AYOX`cu&r%``{qXP}dX##OP)>qgFsB|L z;vBX(d^Mwb?*5wgMFabf0$Wq2z~8DmAxCRv&%<6DhOvrAOrcU;L-H7qWf*vBGG7{) zJ6RHe^$Bd7dwf6n1sV5!dV{aGZy(uOq|1et@d8*z&^c|6jxJNwU|p&QAuN;YB>7kp z;(9kWH4w&2#n57{ zQ}#hRncXi!403{!0<3+1^yoqHl&EO0gp{jrka(YB$CP~QqJW8$Q6^89Bz(+Y>@hPt z1SQ#p9#c9}N6sdDr%i@9m4o`n@Z!KWyc1C{4(QWK2>L^J2pJa2!D9HL_<2lZg^+!@ zA#zbVctKQeB9A^;Mo6wPHCWiniy50cx1MxfxMB?5$S-e>T?%=o%6gs*lj<(+31|Jt z$d?hady}f$rp2DqYmQeL#- zJo`*1X#!aKY{y6KB)PKCz?`?MRw$QsoNi!yz)L4`OSX5{GMN$o%v|7sVs6m&hN(^J zO@>lQ<}eYmYzYf?Iw@bLrhQGhuFQzCD{8o~s{xoj!dzx12|Z=hFeiR1b&PLZ&8SkO z3nz>;}3yGw!JZ{_!!T6Z~px&p|A> zr~Ji~9Su%}TfZ|OupmNw!S2T-N={RXsZLQrjS)5Ttq-#waCRXjF?=q3q!yimztps-U>(@tpuhbxKXn&Ky zMbR42Gtk4i$mj_(*%KptypXZ*OJF@0IdUlW^?ESKwWFseso$aId7~T*Ty{ zw_b3U3KB0kJALm%KM*NH0^4?HoP?Rvjj0eWWIv-hiFFU}bZAM?3#cv~tVKW#E-}{- zc3Y#(jG`2`k(^N(Gb*IKo1NyF7d#NQ+pp!e=YVc^rUx5QE-@<(ExELex?=NMj9mQ- zZF!^9hQG{`eQr0GFS`2T~ik~ zfUdHtE{uyz!6G++g!|<0GIrfS0Q_O-+Ijgu;D2gBrevf4hI3X}Gej>=MWPgF=_nz8 z>##CfxR8)wN0aU(oT$ug~D%ME1C7$LQLYRydHeh?0mnd!TR zvB5>%ygo!}qOQ{@hFd4(Ae9yB4L_X({3N3@(J6R3(GWqkP%OZ#&b59G)%2$opIyh? zj#p^IH9;GTiwO1B-pt{87>2}bQN@LVHOJK;JV-v=ITFUi7gVNIUV0uzOznI)!$I^V zCS+MJZxV*Cdj=;ox1R!TUWTjFKyQ+_Yg5k|mUtI;_NFC%k9T^Q(wgh*NpF}N7;$pe z9({^M<7TGX11{ndB$tMSGsL-vA$wOt{a>)$c}^P3C%5I{L|fpt0_o)j1Uru6jiQ}5 zB2Mkwt^VL{!jV@8AHRKg^t92YqF;r3Ui`rVcI7~Ud}Z4&E7@~yuKN5}HUNDo2YjNSWC+T|^$+nj~eMwq$Py^Hf7-~}`8WRn2W%-E37#Of*30>y+bgI*AH}GSl zJc1Afd{SCI7j!4xe;CXOUj`igbQrKNde?boIcr6xqW{fe z{Wnv4&{zl5$~_h0U9ym#&hF}BjK6Ae{f!=#DD1RJW8*4mGhcg5ybtlAHRQFXp(b$Y zgS7_C5PBpTtI&)htR%D#_@PX^8FU%!&2$C_Y(xuOjwqjn7-A*5L98>Pt&R25qnfz7 zyW>H%y@m4c-f(e5quumsb?=~nIY&k=(*Ui_RW-W2G)7vpYkDtQ#Fhawe4Fct9`yiI zL#=9n8SNCiCx}hL0gvcAv83fQaY?M=G!!olfp;Pd9FOMF=}80@Gne|Wf=>*RoLPEO zUj4Es5#g()#Lt+8b;DPX?5kKStU|5BW`9&Ayj%Fkr~gzuNYoviHpGC7`m>`z88d4cF@`7s zRL`x9p-YmZjN&MW5b)Fn##=uLF;_TNcj>P2eIA7(G{dAu-ojUC+q1`67fHxIL7Z>B zb{okB1uVe(DimKw5AlP(16Ly@D_I1WGgvcv|A-(L0wc|>=QIFmNv=@hM9GuYFzqU8 z++B_X2%q|?5!1GJUN+!@34B8qh5d;3ssH2=-N(iqh_@(DDEHc;&r>$4d2LFO63aBD zBU6JlfS)tm)bbp+gc0hiM$r>Z?aAPB49GW1?KzrxX(Z8zoTE}xKjPVIxFGPw!_!{`Bgp-jc30kpQQ$=<1few6||j8Gv%@xAJk9F z=R8DvC#=z@rGiu)UOmwH;;doHsQatr8a+$TBmt~fMbaB-oF@e9M-9#g2DF{;?i*?h z>}`frt0J114^wn|T(DXbz}%kHW#z$AbV1#p@w$*735m`4;d;gyDodYs zuSu2%f|;=w9^3eoyb+=&dKW*^jPt^RwFiKidoHd4YE5?v{86$I!3)*aIe&QOF+M+= z!jsdU3$7mhkzpOKT}CllQ!jv8*#egab=Q`tfa{LkFlO-iOES)SBi|M~B?Z*S4`gdA zL$yWYWZ^X%MsFPM*m$qN$o*cuc!Nwc^yi?RbX($Hcd2Ey*tXbQ*S3_lXcwn@1r2eq zHXUq3e*jz!JCPFrPp)gxabMNv?CaUKxw;`7Hu*A~i+P+@r6bMME+4}nJbGz&EYKop zd(g$@7v7%EjDqpgHV$+U8Nex-sHrD;{wT?nsMoRjZbHNMoOvocBE#>`-NgeU(N^PE zn`?7mT@df@f!_IvOTG-RKZ>#pa(mK%gFSB{$d+FsUzazFjhHMD3E8~_Gq>=By zggvr+w&3N`83y%JJxvN6tlpOgIat}08-~fj)1tVdj$6w$8g4D4&9CIt04q5uOL0#E zgD$nfB$$s4WvzVsBj^^BovJj|f;)=o8Z2dl^m5nC(PC{Ry+E#*Ea`zIjnYrCZ>Gnx z2y&WyCw6W*2StmNn?2`9{4K?@So2{HRO9psv}q11ZAKb_jL=lKAk5xig6w4+FsqKv zm|ezsuFa4fC?W8I1ZzPDm9?cyb~Q1zotV#pnQt^jJ09yiRv>FqAGa!2iTv%c|S!6gziBB?M~k&zt)}PEd;%G z4?S9pN4`7N$xvG7z}riBTbbql!ckh@wZT!Ypx(sg#PD4CT-mWm>sQE*Tl_TR=EQUH z623+5!s!}Ey!)R79dn(@2#MAjKc;acW^!vyV5~!FO;(q~6R25J@qtFgdBD=ajFgq? z2Vk3rEn@~Y)p+0R%d2LdXRCfJ`N+bzg8dX0oc_I4_Kj2nerpzgXwkpscV*?TH~wJ; zJ6eOY4ozjk;P8y(1y$Ki| z4+h+jd9qW;_)hqfm-@zU?`(Sai)i2@UfrYTzl0+<%uDW#ekuG)nLh?c9t!$n1s2in z2-+Yigp<^nIEA(%(zEhPh^1vJPH`L0P^$@Dl7U1p7krs%f%?1SVTkd;PCebFhL|js zpd8Y9gm14m`2ZO~4MWzn>9?)MdkoV#NJ4h^gU%(_0c$WnuhQ(2WVkfJJs7~FhF7H? zK~><3GL^PI4XMcY#lyWRNe%3Iw+o1nC?8DShzmYW2ZlNW4Fl2vWius@X0B0c&akN5 z*qGAN*?#5;)f*F^Q3g!Axxl1wvO(JA5OBeDS^7P)~u$E{9x^3T9nUnOna>UdviPIZv;O)B>)2ckF9 zN3Zz0T5xmB%>J%+O2}f5?*@Fp$B%E{-IZx;drYo+raUh&w(r=q?Ubl^eng}>8y?E| z3@fo-RPQUrKZS*Zf2F2b)eGGUK<$Sizoqw?Q;YfEQUbI|IKdQX(20rp*1UITSKo&g zzQ;amI8e5bUH0Q(d{y;}kSGdLyFLC;0>+bBg8p-pPK}OBn9?(t)~k`2QjHEtjYR2y zC5NU)BUPL%1G>OlXgNd8tAmS18bnPWxspzjG-0?Y0U{UiAstq(X;@Tmls=I|$<_<5 zPsRqNukIkQ7gwF6Mk@$bpC(;s!iXPi*zs`24m5OU5F1EJg zAT=r=RX;y3$u)3XVeNcz&+xRzq8v3T1a3vJAEBn z<8`C#54^1kh5q4$i4Gk}2fDYt%>mUuaA0Ii(&Iw-^n2Gsx^z*?KCA3QwSP&jJVean zCw`3|xTRKb30~mfc^1NT0?na}{}K*_{XV^~6#qu>BNX>!^KGWY8|!n^uD`$phB9`{ zsQ#CLlf`$ekt@j}C__1Z1t>_2do*!x0 zyn0H!sL!c(h{a}UYb`t(5k1;%hUjF-bYu@!(@US8EFR`3swV*6i1DROMBz9mqQ1|f z^MmCuCw$M7)v_oC1mHDnXZ!#sGufj*B^)HlbcL=U_cu+3X%O(0Xz&Y>Ct>C^}iB zEgHSiz%el!|NJgR)U@5N_dC5lno1OooTe_tdMpQaMe$`{rNpD}dO&RshY^+RUWxNo z0_@1oYL0q#wUEk_Q<1O6SB*l*t-XQZD`JDlN31rD3O{X0}vNCA!`Q!q{XY0kgJnAK*Py)E~ zB&SEsqkOf?QC$?^e_Y>PA{1_e0815i`WLu&Y`k#lOcYU@qAI6T{1Mhfy)-kzHB!R=p@giz2sZX*{)JTZ~<#f zxYM@Q=49{@W0_OV(+FO5#(4T`3l=U1J=;t9{@_RdIEu2=sfnH&XtAiRJA% zGP1n=i{N~PY+!~SrPH66Iso(ni33D4WfmNaOX zdw7<2Tbm6#Sg0)-mi!bSn7^cW7rZl|U9+mwHldi8^dshy2fyAD*|1TylI#4Yz%sW1 z4I#{Q3T25CV0+$YZEwmku*+B~#8YnML^RJ15^TCka3?4BjOG!6ufs}~RpIr? zwr}h8Nlpd4vV634c43O*TOcp|@xZSpqIwZCcMTP%-@Q-H`_Ti@3CEp)C1Q5?i)U~g zShV--GB?59f)`8+;xLeUu^q8LT-FWvk&JbSLmJFwiDy;ntzTNbvGVK}?C@iJr$=~h zR3C7NzSI=D9ID`7zyFTGwh{uPSsJEKXJ5~IG-7w6LWe`4FEXY3vnKRO_K1GzjrLd> zjriI1+`B4R&8lokVasi6i|luuesSULHQ`t5h_ppuMFL-wv5PGz$bMDV(@=eMuu`|P zAX$=nx(9x$qv3K;(O(IQ-0fNZYAp1v|5={{{^>w=iDbNu92;#?CWy-)d$#0K+zM&K z3sFE8&?>)vDD(XCJf$^SaPob&mJR|qw&NWv3rtV6Q0&9LfIpjWYfbJn-%_?5tD*aLjb& zEq*wQ^H$9r0eN};MhII7;O~zz{=CBvGfyoP{>aX3w!C&@Vq*CVAek%ox%?v(P_0c| zJaGmGwY9@3dC8^3|Ku!voAe++S%+~Bn_3<0P&G%hKA}Bfv5)QNY4GP*fG$fa8ok)M zK$3=559KW9>6+!kU!%GUG{;>Km9-_S73P z@^8zQSP*|F>6jBBkmZVXTP|E%wQDcm-TO-qzdn2N#Eu&|KkPfshJW|~Z*XSA zzQ-1{PlU6z0eB>HUK=pNJ8xu8d(Oy$?IVqWh$oYJ#>2r+n&?Nk@T}loA zF2UsP#VtQc{>wbz|9UIBztZ3cpZO3xO`mT&49$)U>)baC&9?~uZ`R@Ts>T05gf9B# z?9x8IEhFef$>_R?qS)GDD}Wg!C*8?d$XiB1c)N(Tz{^ta>iR*?9}}8O?X9TS0y_6^ zyR*OFNAX4IR)FH?&;xJTg3r-;DB``=96w(KV6q;}7K#6w9I*F6`4cAGdNTb~!9;T+ zt7rm8E(ZD50WTGzN(69cNaa*KUFn0fpA-X_+|IfxTN1yhHtM*z{M7g+FMWA~7Ul0VMK3M*j3_R(3vxt+6o4Tc`y0`#n@0WtQg8VOht9|@= zIKC`*&^VDDz(oXek^NJG+)dq9qMjKM1*W?@Qr3_?Po2{~ftc3@;Khu54j-!+nWt3glsM^2xpt!2^JG{5LAanbn`xn`s4*jrYoh?V z4Ej)_5qe^d7HllAKn4ImX6KLv%?0UaIt%P)nqOlV%-(yui2J#SV{_3ObW19)nR92`>-Uu|NL<#sKe{;U zfkfu4={ZSJ#wiA~Jag_;zWT_(-B)1|dn7kWxIa2MYv4(mRc z7cD+gR`J^H*c(y%Tr~cwLjOL?k0eyj-J?Ab9aW-*(F$I&roDRU&x0+l(hJtU7p&I< zcTfDkN{k`M2(0PY)FvWzlb-d187nqXtsacBsbV1IbZ5%Z4mQysqKJ&{31eR32YO!? zC|F?it8|Jmu}Tm8|0%J?47k!D0*DO4gen9XhHWNKN$CA`pqd`IXX5`=;sZfOVVlRM zwDhd228L-6X+%cP#9szBj}=B?eIV&Q-qMI+nnl%smfn9OG$E)*!v8%`-A=7wY3Yks3!w)<2LIEQVlQ+go&@E`DhJRpRv zbsn*f1^ZPx9*B>==J#_BE8dQ=y!G#Z;i^9bHHD0rab-CPJpWB5-ZTIAsQpfB-&PGN zzLD;DeUB&-4oz>@v9)r+fufkZnH!sSpb|np9c(xVbvoCBtKXJH1^O0 zvTuI`nc2@*KJUrlpVf7hc*?He6I;KN={_IEstbeFhE3Vc*R?`> zJJ5uM^q2*vV~}mV|ByPnX?{f?nh&?cvpsKgEC(iu92i^v^Sp~m%{kt7qH#C|q**^a%#74_xLqWT0u}FPVn?sBvWt6JBfr7EF!;KH`HhR4t9Pw(SbJ&P)!p&W?;fx} zygqA#h}pM?A3tWLEl|AQ6CgjA0-5ty305zUEwwOOYQfioX<6xd#?|E`vb7h>FSM4b z3RM*?`&Y=6cq;z_tYS@rr$>xA=hrK@JYXep>fFxkr;YEYuyjlRaBU>VG8>6#4`@WVxn{l#<(c#MO z6^~noMQ;Y|9FZ=WmwaA9Xzew5`xu=y*}co-*BL(F9I(^zg~+!3@GEBH??pxf@jh^~ zf0F;U7!-~~QL?n#YDP~g7T+uVb!O_RgZGJ={%0|rudLK0^X8Qu(J^%)TY$oDNY_?r zqJv*fEL$F%%a#|W&hx$oK_7&_$*3It$RV@GY#Vj^X6rC<`8{UTl5^bDoLk*qXSLp+ zExdlVFaQA#X76PiPdIp-?FOI%wBGUhY?~5J19CuU?TeshHBM|TZVzf53W!aE`+aoi ztAnb-DUlDDVcf2D-&AYT+f zw0Ptf5l;DF_DKk+)C%~eNPZ|&Sj;ZgKgyT zU=d(C5bkj}*8)(xQcd$bI#J0M)Jm#4Yh9zyxE%T5H0z69l~D1gP639k*HUpeZbaEhS|9zz_}1IJVcWVxNS9 z$?IcJuT@6e+-{P3|LKW!mqitvQ`w@<>+f@)DAih}FIMm_H|*DpePZI%dVXD0siUw* z`>Q_wdfBhF?Dv=QTz6%~WFA>MW68?9UBVRKb-kR2WiMn*n~o|lFVgqn38b^kCmQ1( z6|7U%%TZ7_)_o%D2Pw==r92_v(;mtr>zB*|qI|B-9fzjk{%5fx$qya&?zd!IqqufW z#uVt|1n*5N5Ok`r)jctzMOMoPG%J^S9`4wJR2jYV%j?(o`nGNn4O}~_l1LCs-rnG~ z4Ib_R?>_=L?jWNXoE^ZcH@_J2KXtu^-EtL(i% z4R@%mj}X{_qKfl4L82%R`dR7yexXipzPB6(aty`aD(u!K_u!NY}4Ui7YxgKJ#ts*}F-ui7V348QtP$hYXs{DdF{R+c zhYlU9=bd5X2&HaO?zLl&;YUX}rev5jS6&qeuW6}h(Rim&`>c|iJ&?C<_TmYb{h(Pg zA~pmjn3=d@6br#0(~y|EFvXOC$6Xx{wdW+QHI7m=zD~G6WZPtH9O$tl88M0* zIfSmTy!&udRH&!6?*qW~{k59peH|pXFn(LI(7p)4Hg{lv<vbK`(5m{l|w>vv#Ti(mGKSD$MJ{My8M%47GxM zyhp%(7zd5K3N(FD7=?gqq9jv?c8F5@MR-BRST3W1VwNccM-y|Xw_2Bsah=k^im7(* zehgrPqiS59Ve^wL+7qzk_$o8;tC@i0gd-?(e~>_0Q5ng++TL^&R()5HXxeRW{BNgV z4f2UxJg2i#4_JL(+v zU9_%u#>31jhGoElUOwP*Lf&p?kJ9o|rps<0eistMAYj1{KHz*p-gf6R&&6A{&h*Cr zH+aa{nl?x?{Ck36Wrd(A45$Bo~bMiyU-g;y>B0OU$m}q7KqJT z?R@68nC94f#$C>MZng6>qpI8j!)L&PTt47%!Y?BKSvWbW4{ziZ!Ub<+{P1ry@^4() zkI4R;NTw)!@c~K@Lh#Z(4a@idMYr*B{{sI}dTHS-5~(AAjvIaT3m#jT%uY)>59Y3I zSi*OO`=BeO8raZ7O-xY1WPsdtP)hWGleE<_udQg7xjMG?P^tRU;z$13e&>kI!KN=o zw0A81-3Mh5`}h$^O25-8;IF3hJqMi9c30o+?!MtZDo*504Y9I#)e2gwJrmS2_M1T6 z9y_%`uc4EB`-o8$$ch!EE$@+@E_PFVU2cW@MBpnY`Yu#euM_BI&pBl2U60(trvP68~$%$_ADEV@FPsRxyj5Ln-! z^2!Q!O#ylp6e*Y1M|z^=B!40*eHUtZEEq<*a_LGockh5DQm>+|tS2x!h~4!pP$Xm! zw;;(|eOi%j(GnlMp8~}FsL9^hBKG5gP-4tCG^BY=!l3%TI#S5UeZ6Hnb?h@ApUy-L znO@=zlPr^*+3zP3sdeP~^-54RLGP`Snd6kit^Tb+j>D1Qk5DON!)X$wP+dUpUCmxJE3*a2UZW}MpEuPpb1 zc^Pm?;lo7NGN4<_ddTIOftM+~l}}Ug!<2k08m;uifpY05jbpTU7?b2k1r{l|!Gt~= zYjhnwKD$2xHbwD>t9F-UD!PCfHE8UYC|9_sRQ+Yq+`9+Ay*Bi$?=@7J`5cBojlshM z6uQugAYsb~8m$hRj&Gcl8q-f)UsLtdcn3@Oo=FjVb0TXHqPz+mkt`4?GK}g`R5}MG zbnhnyHu9A?`FUIP-UFd>ejM&kqmts&V_?cFR+E71o7BKzk2VYSfM{#xoWXq|ZqP(t z-vEat*!Y+n&e-z4w)&w-rr=<(nP*E*?Jba+FOLazwaO?`+79zTzI>6j+*hWu^QWVV zAEApsP1nesB<{JRVwG9eDTAHg7@$6(0S*`eZLDy%= zCwM`M*c*P4Kc6>}nNhoFrD~P}g{?Dhb+3{=N@p{V(L!fVk*LF!vtpaC(wXg9!a&k@ zLy#9_?_YV8&rW&Pb>;6^QYo&Avn{xm%*R~!?xhP)*85-1ev|R9pR4n1h~?*8Fp zCi@EZp{!0~#Ej&`a+EaSlyrlG+^qkg)vYdIMor$n%LiFkUe$N!z~)H%bQV8xfddDg z;&=Y4KhxNtljj1xON&;fT@wzJ%l<6?1T&)>!~Dy|WQN!F=##954J702`^R}2UVBzP zl|Lse4CFLS(gg=pqrv@m#E<5kbE0FBdIi%>fODNA5_yU;011fK9GR!i_^Wc^0xIy0eZ4~;& zYB6@vZ6*Lbgue>Ig`4$b(s^wmp;{lUj`C%}y=i&-BNh%$Slmp2iRf8r@RJg6srpT& z@0}DEv5O*^_V`$Lp=V*F=8&TSb(he74{mOW%6UO(+K(fJXDn``K%*xIq~*{nVl);< z3F*8mef^Lej^0@cjKhyZ+=&qf*(~zJ2q!0r-wz2SWkQMJLyscy`%m&?CiOwez7>Za zEl_3ow2FY!`a`N?=DAN-gweoJE26O8mjNs>03d@{)lbPc5%jD4$72elcB z)#&F%zF&z)^SK7gEwcJe$NDxof#TD07?GlA8MGe82*Y;5iorkFdv~Blk#SiV&br4Y zJ9>i0=->?#8Yuq4S<6*_ZxlH@kcVbDp|Kl3bwkCpID}5ZC0cysP*1vI6Tvjg!g3?@ z2(z~4iWdHulgo9Yr<-jmC`PFfZcyQ&MXfg=t-@^ako8I)?9C~k&+*&3)Y8R1?=5Kb z7Ny@UY;=Z(691q>3qLs{;tnUF-{)pEGKr}5+{mGji9SS zyVMF>bn1H`%~n8sr3r8 zpOnR7SbBYjsFm<<+S8W4Ph6=em1mSY2}H>&2h7CEvzIEy3sD_CM^@puk&iGg=;f7= zrlhm;o^%c}0d!*lm=zRD9ejHH03RIih&tGXb?@Ic6Bsg+cXE372Pp!YLUhFu@TXQ0 zT0MS_#1D()AnDLu=tmfO>H84p1#&r*{9s`}G!qweDt;n;5}bv(E~_C3vp`nZ?wYJr ztbns-QL9R*68P4@GIAF7^ND9{#|v}bFIM0v+6_hB(gp8=zi$>iHl{rGQo^1+>x3U( zG|B?277o~;l}pW!M_c3>pq%y*`0m&SUB!yPbQUQZmZ)5gWprXk%#m?Yy=<*ys-Wn- zwC9e2!aN2cnNE@D#yMI|9FTu22PboK^@Q0QaQd;$n>(aY_PkWvCM~d;w>j+4L@JnC zDmZ@TxWox(IwZj=mc?r(c){?<>qI&C*5VJSBTO(mfUk6;#npM?vY(OT}@B48}GOziT*%0?v*} z<_h&JSN)n6nxHUxfmHz#KKaJvTCD_@OEbo1C2H%Uh0H1$ro{NlzZTF3Fvw^4H+q;N15ckWwZTHl;9~}gMq`&)N$2dIqV(t|@^ESeXvM)W}*zewP{JxM4#6>@CV5gKHIzI@#S^wok55=Qge51f? zEAC*VrEA7*JWp_Z$J}Yq$#{3g;VAkF#vS0(=3cv&%^zc%)K=G$BNoU`$JngoRBw`X6;k_s4103~36SVE8XR-YD0)@pCykp_|8Wct~z$yJ$d544e%3gsJW_g0w4=#nm-yoxXCn`P^ zE#`0Sz1t_A^o;_g8mG@@&So>(9i<%lppVg{`$x5Y^;bcfh9x-Zx=eF%$z7wik>)jc z-agE=w@_+{!^$hQ{?Y8tnk#a$D28ov=rsDo_NaMHzr3Xeod`T=K86#bG9+V^pGiK5 zK=UHl15ARr$w2hcpPmey%5Ain2~t%#4vFB06my=G^(-UO$U%*Bnnfp0PV!gM1Iw9d zsUwt|F+TH=o{!f(ZexQyRRDsD1sIh=n1 zi^W2T@V^d}?=2+6$8CT&jSie7x6+>D7r{K)hcVW$GWp&!iX6rNGw@^Vy!#XT!l24f z4e)bF-{kUH*HiqsaF9aEeEjs=xu-gV(u-n zkN#n?G4Hbfq|6Vpk)@S-<4_!7Eu?U~a_$Ox^{wY0N4rlt0jr9JeAkh+o(jIk`F$iY z;oia`Y|dkILP5*-z>g!RXt^tz+xdl^RsTOtzS-h=U>_E1@M0m6sS2MYYg3gp#-D6g z|Gm|cWXlz=hOgBm+dtU;#m#o#f5!5B0bcrt5#8V1Ja53)@uk6?HSuZE&!YXNlz%-* zCjS>dh=LDzMMGiyucPt>z7UQr_{itO&jO>z2lj>!@8J)YK4XOzLvG4HJ~Hj3)&hOl zX?n+z{V(YMqndanGXD5_a>q;2B-`upJui!s9^Z-Y_}>mj2Acmxv6wl!4t0MPkXfSZ zzgS8H;ICE+vqQ(r;-BoVX8)JKpDzBy{>Bz){VMXORzzsxBlwTmpWJAW-C8hdg(Z34~r_|8(E=L-d=q!wxeuxO@&SOdVF@ zI*+Cl`!m&_-{QjUNt3HW`?t3PfLpABRdPPhy@c=UK+V-rVLV(JdmP_zBe z90z4kv|V`NAggOz?3C*@T>2seDL=>!J%xtudM;!@mH7uI;TH5Dk$QbkMn8`!gLzpe zhYV;4_t2~cgGxCVVi&EPdmkL5pY737uk{7?CR+^C(DB3J!D%3Cb6@U6ALDvkq2A#| zzmLX|79waEtm`7G3a*u=3RtXa{wE#sy*I0KX}|vkt=?SARcZJqQqJq#TLgLkqTfLc z9BZH7|4Ov3MK+d0`(1CTi?l3hg#adU$s$0ztPbH}5;~Os0b`eet|e@RGGOrgfSA zr{a|&$fFGnOYlI=s|`E#E-n3f)2;}(s$9{lWS+^PmacNIjy%e??OS%zy*6@-ZTd4i zM$+gF*x*m)>1>&OmxcD-N{hZ5a+iU{l=_z#Tc+W+^cfY# zv+|Z~_Yp_*+AUK2fF&D#OH_$6c|PM$s>XHsC+7U4%@SFycohaq3BQFm`TLB!94n9s^yr_y+RZ6S8(zINWyZjCtV!N?=R*c zaBaj3 zn6X(fT=3{YgueBD$xC@Rl&Z1ccpl{}ieCBfmxTiRKTZ9dREj=gIVsw}FFlwvz2+!= z3O0mQ%C%apnWeawN&hTYnx~2HRk_O?QWai+^0P2w!pPy7l?J{BSVcaolxQ3WBU=5J zIVNRxIKJrkIVLXovugUYcVMu%%5=!yO~~#|{B(cGvM0Ta(Y8SwE{1$UgA|z#3~6qH z)1bZ_o(%wvdMy6p`e!H3m$Nx0uNP$KwvRY73c8-M+_tybc2>!Lid|V~@+15m@57-} zVRU%g%BRF%*SD$p_!xIZxIQ{I-x#f3yRsosHbuLIU*~pa0^iV4RNJ0s5y|SmP(vZC z!#RLz*h*{oPpfX&Goe4OqpoSj2YEIdz2Q-SNzDT-=gwBG{?8@}maQAASR4yTQu6+X zlVSoae-F75Gygs6|2$n00hT|K^9K99!?!jEZ=L$_bSXC^G9uXU{Tcs-wgE2<#eShT z%bbWzPGBo1fSQ?+@)yeRXcxC>ueAL4h$*VclI;OPh$W<7GP2cFj4I3N_X-h3aa*z} zATF>d!z2S*X~d$_o&F(Ec&nyZbf(kgs4Po1CBzLD<$lTEDdb5KWdZwVF*8fH`v@kM zHkf2^tFTyfh7(29?-fE=vMD1ZS=#y~qg$QCqO+XXqW&QenV5RI)A=Ym%apqaA{Jhl zq<`!06)Ld=M6~{sSc)Rz8Vhf~WLWDXG4)I*+NgNT-zx+NX?3yuXR({R)LKg%+1>Jw zlfWN#>V8d#;DpRiO*^qo@3tg=O&o>%N%ScDH#%xLzbgMB@h4@x&aB^=mES7k{rs84 zZv*&khLx;`eqZW{OU~ZZ|KcRGtjB}C)P5HW^b|fxGB4`A8JQ-NwcMNT{Tm#gY~1|? zM^=e?ru`xh=)<4os)V@BV$m-d(W)obo9V<5RbrX)dxh>J*jScfk|C{9 zV!atoR8cOLDgOxQ^m7>!H*gCLwxY*COP!BR^vzH5Mu<;x-4vkKMzBJCMl}93Re1*x zw;T(IS@62n$L+=5vHLLXcM2Kb-8mn}__p@-0`WD$t6l^hyG7)8 z7yCStFlv6-40^e@_2{lyBx0g#nJ@~>fgWwDkm0bbrAH&mt3qaMx{htVpotn2J6iJ; z5bBrqq){)^s4WD`o52>6;M)aQU%8Z~v7OLF{CaNRn@GkV6*5~mmR^~><(R$Yo^%uR z>ce_g*P%Rw>i{Tiy8u69Udo+>TFp00-d#O=T?AA=U*kI%YdCb8zt7>hwL5bhaHxdh znRPu|v1eG^SM51IBQQCsTJAfZNZGa@jsX8MCAOEIcl18+Y$^7r?XDRnn19y!R0h3) zl_&OVLp9@qq_#LrdqY5%$Fa zG|vl>yuZ$Ub481h&{{++s$YT+FHb2 z?>&Zw?VdWoeNAC^e)Exm*1Pk9&026TRKQ`aRTer?PM9)9>nk_Klxh5tQmZ~Tyo^bWuW%^U?xw77_WC29K5kGzO|gKM;IY%i^V z8o%}uLdF8ztzqhY8X1obO4suoZ7GOHFC+T~sXgihkGA@@OfsMkz*@%+{j(!GGVq!fDBr0p235XS4` zWg!~GQDvVQYtlNP^k@V8M?KJ!N4VMkx-v!jAXBzk(HHQq9bAgd+wVFr8!2+6M_fR4 zc60G@V$Sc;WCjlVB`PY6jcYA-PlPK2Ai^{>eZXlVrAwS})4f_;G6(fme%XP(&%R8F zAj#5uY^#8DQbKwfT5UjB;-&q2Fi*{i&3IG0@q>L+d8)aqCBfJaY_Fi)L&_ay3r;&k zd8sdBwAfre0-CB`b+{~e85=byLEfp>YYJ%Tndan0njlW~cpVOPsvga}Sctg_obXWO z8hgbflW+RIwyoW7-{FZa42jdK;_j9D zHtItf`J$!1_0PlxMU<0XW!&wtCQLZ-hY2HL>Zz7yv_tVPLpa@!^u~K=yuYADim8vC z&XHEh-IwfESN;+c*Vc|$Ad9}!v6(HoB<2+iP)$SB?rJkQ(!6(M20A97Y!=*hNW9`} zmCDs!SDTHhdQ{wXn*_XKVvi#MSADux70ul;7caAZRUf+T2Iojp=b zXaRJ$oo~H7aguc^qFR(vqV1Si88r`{Wy2jW9nMNH@)vK0GMI&d`BXc2iy~E~yszoo z9b|Z`DQmqyi44Y)$Z2a_Nfe&tciGOw@$wa2wE51k79i#&D|yY~5V~_c!CSWC4K`eE z=;Rf*!FT$}?^k4m!>I1B|FB~?8_ za(K~YzWjoZhI)8;0bb+QVhWHhquTMIT*HA|oP>yTBQI z3HDUKD$$v~p9^?PDW8FcU%$|frtV?kp$dUG(I>fkHyjidFJE9X=4`op6|is;w;kHf z&3P>{lt%Odcl8!{UuyU9y?gI$j{Rhpj}O+?OZN3`a6TJ;B;3L@dRAi8T&VUE?qJRC z@3S#%>UB2~6$^bZ*R+x+F;mHptrVZek@+><=)55sq*bcPa9KfkLgr+%o_vd|CttJtZ4|s6)xHHeC8PwdJWP3aixij5<=>DEa ze;;C2qxagTK9$2KO)%WvVtXN{-KgC`**K~estLY)2BE`ziz_rz@C_-kR;^~%1NRH}Wyr-DnZS6E>`0oWMv+IE zN5w(uLHR)$bt!d`yfud@hk0MIM(Oex{%;aE2Ar%I^B9k5c8}U%Ki0Rk&*v+@Zm&4? zrP9dh7|{t=Z>@q`v;Cmidg%62(%v2Ij&?(PP&fnDJ-am*ZaA$wu{pANq&TNIrMSe2 zb~A6)jwCIu!`J867uUD2-*z>ZAt@SCqN##1E-6~6yQyBi!@X|3J*c{l=As>Djym^h%q%HAxyI6*xVrf=;@n68Xt3KK% zOsnR(?}7&85MhZUMCgh1PuKhJNkuVq79F?Q>i4X`>njr(tfuXHF|O3Z*QXbqFsVnyBPm$F>-e#>-Q)FqcdUxtSl*wPv z$T zJE=^(?jq>Lp0~%OvpNYdPTVEJkU?*a?ye2R@n)n%JOeP-<)~1PwwL%SY|g1V^MaLy z0~RPaUw#(qisE`)&y(-`wOw)2Qc5c_p+qq;<$AF{S%YHfVy0bnKE3FolrXiIzbm&l zI$nU^`EH;YXBoqngv=#4jdLD@YPu;|>Ew?>?iWj)JpcoHgtes$iB}Y$rOeZveS`7& zGS8fh7p=Zs@B<#$7a|th*IOZ1FIsTvoE(mb9%QO_u5t$tC*`Sl+GVc(y#-EI#i9{>LQ{B6(S@97K-zHSLiIRz5dzLBt##RL8O z-Cy~dOw1M^F>EXlJZrrjI&LjNZmFz)1qSEi9@g2~eU}Xl8=^x;Qp(nS%~M}37;K}< zlpQq-JUtyoRgQ*N8}He`Ej|@=$Tv;&`yM&S2JC%_5pNV$Twaj}Uh8**eq68DFJ_Ha z6en1#uP<-V&CWSZ?J(Jan#|^pgjrkLCr{L%%E2wnRTITHJsr&OEIHPMZKm+*#$@&; zqp_AgdiDZ3^<|1-8=X_!@PbAlb|-z7=DfkM1Bvxeo|T>7+ErI#=XUE;(~;4H!p$u~ zaaUd#lp2=+lAU+w9u|z2fFaOqJqQ6`@`FWxK>N_-f^geMWnJqZByVKd6PXiP-Q}j( zjA=nPu(pRmp&vruh31E@w%5mcjWF4S@4d1CubGW7=1Ywne6#s>{7ry$Tz^8uws3rD zoMB?bG&1>n^_9E4dIE`o5jw@~&E#Cf$aA;fj}Jv}p0hbV z=jTt*aQ8XE_e;7&3j`7V<_#C0^E^41fBvHXaD&csneTLCl`$p@|-?$7ouIJyp#wwoD>)__)9s9)R2U zppp#&u9 zzSKMZ?ORHx26J-x^~bR|D!ahfq^}zr0vnp%ieL5ygrVAAtiON#-XHk-_H(wk{Jbzv zWGwk(l2fY31li{Y{VUQ(4XfBpcDk(Cw*`baJgGf75CRR7s!vYO=?3pOFXY97Lu)VS z66O=D2#t^|u*N#vt7kq^_5_o+j)k92zTGj{zdEs3Kh)D7x+x-)pS`V5n-#{$w zM18!^hjWQp<8KDv5$AE!R#ApN826`#H(#{!_df4P31hL0un7Aweoe1ulwiYujgyzs zc>tA9H`Dc&RWY-h?$KQl82jT7iM?kxWp8z(o`jXmz^(L4x|FuW<%BZ+(+$RR zX6ctDFR+ow5y%lo6U?5c6;AONTM6E8%Q$he1RIv-=*C|BM5qeu`yqR&&z_Y1T)2PC zrAd91bA1GY=Mny44X)`Ibjh^|8P8EWK4Kt8xAYoBo}@D!D+s&KyjZVo8S{!L z+GQ{U-(Ya@2dqD$HZ{`zVGuND&QtsJ3mR#K+~I2;l%Yx9yzlikWAb^aY$%p&p^4_` z0T-C$$faR-?3qc!%pq5&U?^3D*6NxhG9eN5%`AgbCnh<)H77Q z!bz7FDnn_}ldsuM=lCrrqv$Z~$STGoxdl?xI+1Jsxm%0pJ+t0vWX)PMjCwAgUuBH- zc?-t3kn>F=$-;GpNW-fVoD$qIO6;VPPt@N9efV~-TPMSl#g4mw|8}p$cP)UR&D{J` z&&tc}0`!IHvgAjS3*+r=+>qDUXA9p=9^Xrgz}hXi#0uU^3n>Y_1GV?;qui>R7ncAm z1-DIY$FZ_IHL=?3E(Fut>&^x5+gr}HBJCqL&)9nF7yC$LtEGM9LhB9tSc~mj94<*Q zRb3$_yYp?n!_s8m;$eSa8c(=lh-QeWxZv?MzDvx=5Y|F$Wcd68DaD}cz=zK(ivh+gK2y)TXoMCoe1Q9>2_RPj z@a$_*10_kN@UeY&J*jBnx51~~zBgahUoI&ahX?QrjQv$+-4L=@VeO-Bv#$9Kg}tLP z4{EqOckc5Ana^J;2DWurW>lICtUUSDdP0^+sj+kZ)PQY&Qn~F0ck1>12Kyd$>UDI( zPewv*yWQ|tSs$(`66f#fmE*`0F>I)so+*9&$zi#8AX;&&omwaZ`Sc)By%d0XmP!TIclU^Qn*3O^9B;#8$w zPjM2W`2ldhr*`{UK*=>*Np6oOv*Fxt4{SnCYo3R^GJocB5-6qx%IMJA*KVX!j?7V> zD`8s@eZBW_^rI~4@gj-tIkm+HhhS>Q$2#pI?T{B}Y2xcC4vFi4uYQ!xdD8W7ulk5R zV6~f~gGp2B1}5o6Us+O-omH}rcUk z!tD!7!GQE0!3B;uNPEj$D9Mh-i>0pQmK5LT67`5u3|Y#xhbwiI9?XYQO_Ovc(?Ge3 zXLIghDYwf6pM5KMR2UbrU@AVzYA%e8&%~NsBRB7$?-C?lA{ZuF>p$s-M_`oyyEbwq&q*gxB{#o3eu8RvMUVd+!N@Y3KTA+6|rv2;7 zXe~Iq`;<~3AQFQ~EsJVq-gm5TN!L!V4-{Fy{|d7s+oy0Zzg^YPCxLXKI#wdvSACE2 z4JitbX5lBOZs%#>;8Z9PQ9E`3I(2Ft^Sk!@xJvBYPBm}u%Qcp;tPPNx_A64^g`4^T zo9X;4z(4_i;tDQWjV6IAHhzTmW&Q&tMDm*C-YY388h1+DB(B|UfZh_x{yUC)AYyew z^Lp`YlaVbtVwMlHQ4LQ52{k9cgzE_PNX?m-o<#)p#-NQ3y9VhbZYYJd(Mrr0>q7kU z{h}t|D7WdZ`67q*+FEfAm0LYO)fb<+W5(p6-Rf_BP`Pi*RTUl@M- zehhqZW%LCPWDg?ZR{|tH%0ZO^gf1FAkaNd0(2?pCxHIf;_SZPxDtJaiQ&;Npj>g62 zd|ySBt`K*6t?_1qK4!`zx4qGmacGtQZtmo6kh=&Kw!ZTG1BkYd1y8R4&j){K*XUKK z;fhJL6I5pxd@(OiCG~vNt{t~X&QbWc#?Zx{RVP z(~!3b8S{DI*J6bgv?Kb*3R!ca zVcB5pB`dc+dCor8aIAQvD6e@#*uLxB49}>z$dCQ(w0FbiWHSWGyGBp9)IT!8K>h8> z+e!i<5}tSVk2sM-Ct;|drx|NA*ulL0XC@x?!?oIPHg`CIaB64Y=g|!v0zuMGZW+Z4 zK2ui7QGe$zYRs4dvHt{l0>s>O%YyXxtz2JK$N7u)3T{WCRasO8`@7H=&HE)gvr%IH z#-GE`65dh9ITA><&WuOzRO45+#DcO1Tt6y^S~2uwS6EUdz#dFIHn3#fNH;1C+3!F5 z^23+NXqcw7`l4%`x~6y)k|Ompi?ni?Yns5@5P^P=$G6A2P1zcCqTx*Lj(~~<9bf*6 zc|~>jTBWQ>-<2vlT!7EEU==TpclJkxvtWIc&+djVDK7kYJ9X+kE@BG~!rIg)AMZMN zo||nVJTgAzpKUwX-SWI7-w=4D!2W|8)r9q7?~K{b!jgg_@k5x)Hvv%=+qXdxvr8U_ zMxYqRZ7$<(j_s$$y?kEuxIp;@al`I4FG2@+j3=MNa%yez!A@H(gnFA(0Kx71PQ#HH z=u8h;>N|8f4S+5bj`f)ADxC&H&2Q>{c%$?t;-M*B{|^E98?DkyWN?;#{Ze}BF!>1H z=6E=`c@QoLXGZ0F8rR-9z114}zM1bu3X`BQJs7`oR-)yau-;>u!Db3!)mokzhOJPK z7M~aXy4M&YsGFY_8RlQkYnC6H)h`=;+E4Q}?1fU?!v{CRZSQJS2L;2L&=+JC1P7R6 zIi(TfQhOd|I%wFbl6Z8%=W;n6tH(RV$n0|@d!J@pWu_H81{^HUP2WGbxB0|dBvcR4 zn01%IYF+OxpCu1H?AEPM!==4#+27^{-G!`qnHHC$TA3QJ3$>o_edBWb5Wjg3@AvzN z=E4S&D6)f~?&>=Tj4v(>*WGkT#@?%eGC5>sZ|U1{!2+NSg3i~W&4rE(F$fg)7PLbO zz`Xw9BIq&c{a3f5y9rd60(f^D-W|<7;H=ana?dB0AMxkpnQPZ+iI$yfllz|4{k-+& z_7CD$Df2FK&BWh-5E>gk?Y`=G|Mitu-?`7%I=*Hmd#=P9`=uwTQoWRJLn$12^{G-d z6G?C+k@6`cMaSi=7Ts-ba*7TT{8Vrq;juFOHQDd+XVfff)_;i$mMrROh^!DuH z2MLONA6k&#QgKR`-8(mOA;t({R*vU#i7y@`nyIf^z^~7+HMgD^>I-tqFPB6W4_wdm z?Y4E>tGs!!RF_BR3HioxC+;)x{##77?IW_g$l>e^Kg|=hZ@6%6Fr&(Z1|fPu`SZf0<~&ea^E#2KcFrl z^qsW})7E{h8B65t#PH-xJX)o*^pQD_a+RRcM85q-${Rx~e9Ye-<%&P5OATi@i4Zh8 zSyhsJ?*(?-U0S)Ax-CXng_EcfxVW^AEdk-D!eaC<8Y0| z!A)qv+Uu%o-T;NnfT4tQ|nJfh-UJWHs7gpjnap_qQ9B!Ts8zHt(y%}c;7P0z-IR- z3K0{bNwD44MKt7g?W)MNt1LFlVNBdAMp_QO=(cwZY6H_?nN`cJvPK`$2@7#|UR-KA zsBYN7!QfrMLH282;njob#2YIQU$5Wb_(DK*fZB@Pdw=tjtiocW2zCQ>jmVKldLij_ zD)*F{&KPMN{#4@!%QRi-6`3ZSOwZ<(XgqnEKtX8-E9kJ!vsKe_+b{tJgYG z5g8lQJ5rqulsVpq-<^F)gj@TdsX@KXdxT|~7@d{Bb#0;*%VCwZYI)9cA|b)cu?Kj$ z4LZBa#dVD~%p!)LEKa-s&O6u;3w@@BQZE0%r*gSZwBO2}9zWGovU?V(KyM~Qg5MuS zLKVhh7Ac%4Q2oT(Do>?vs}}MF{21#bzntc>xixd#D|G<4boWMi7yrZFFY}-`$0g*! znbcfY?R-8BE7;bQrn$jrD}5Nv-Ry*JrPJnSva@{TC(`y|%6vj8{3Yf=!86x4+$_VI ztVItU_t!qg791amRL{)z1v-BT?fl{|d9B)nWW|qbPDyP@0T5?s!~9P9T5dYSY9;~u zeZ;ygn4qqe$*flRxyGIHjt=Iyw&+&ZtiBKC>t@{>@&K8Tz$mX)i72xuy2wEis!qY@ zu}*1DMNU;tWlnWq*lSz+JN6Qr!kZH8LhO6gU8vnRs8Uod3jTe*>b}>w=b&d>1`%sh z)C`u!>xkAYQv5noGE;oi&5s=YjmmFbEvPNVp9+;;z74#XC``f{7|CAa;PtI`K-Ibj zkTS1dh_Z}ic&Nlu%}stHbjgb;?A~SK7u+=NcRqifRvwa{h?*b*s=ItXCT6JiIK7%K z%9AcSJnUC6Gwn_R&$~T$S-`yxhz9IPGhK!+@pcz^+OJjWy@*X`z?gGi7m9t9%L7Ok zSNxuzps~Qud~@w(-6nmEQD<d>L8sECE&CaVxqYPYuWn6E%|6a*Nrd%ka42I?7nRcF_pxdHt&e z#YLfe;3J~0_mXwWRJo7e-|wW@qiCT)_<@5}AWr#81r^a#q%V@Px!1r9s82p|!-<&J z--2?|CO%HbRPhoRA8GGPd&IqHosOtvOBCO6derREDKO6O(_96-3RkbVJe~u6@bX>0 zR`f`ID6f7UC^Ese$1`-lT{6m?a3eRW)Zn_ceQDdglbC{*SQFjHuQ_79J!Sfkk47uTXU3t_5Auw%k7?R+u9H*PYxGh>fJI1MoS}sR$AZC&xaSfzOzA0 zbifspi%mkb(|3@nk1*+Ov(z!|Z@U6ldyj#ng5jP~<)HlIL<0-3rm z1s9)hVs2E4%zpn&FIAkmX(GQ1W1B9l@{%w6yZGcbbM}s2xw%Za1*!W>-s~b#h#6yc z315wH;Per|Z@rOmEIw(y<#v7hjBl9WF8#i#$-Y^6{d=~h9r69;b5slG1>m#-iy{Sc zDg|(sf<6ij{rAlzmBma*b8`r{U*2h=ahHvg}&a1rR7QZ9IhSD@>CVmxhA3*+`$?r z$X!bHpo58-7qNIH=|;RczD<)vR9|(mCGqW=``?b^Db`NxxTtqCuM{-0sycm@)jZxd z_FJ)iNNxVFz}<{xTbR=izF7oNGbQ7`M`jvGsg7hRr7mJ#*XJUBi& z*$irYz8w_r7xakuK2Uh<2j?QG(C6AGfYp`6l@d!y#(xo%2_wv5BBT0)}%D0sYVCg+y+%V7{3_&TY0G za|US_O3UTesH`T8*KeMD(>}3h(0a`N-1*x1$BO472nm$0zM*(WDhIlndNW0CTYC{J z+Xp&#vSB{I?%_;ubdLRU2rDg5xT6aJ4}p`rKT!L*Xc9Y|miF;*vz{hl*qD%xH$#PgR;=N?=SXnbuXj~mg$c5b?Y z#mQ_01Ju-YAN0x?0jZ}MEB1T|*Hcnm%ge6WwY(~i`C>x7=vOH3d0Tqgx&wjHH<3%EOE+U03n;g?)r7Og6YP$^d(D?mRXJxh6$ZAg z@aymgo!Yc<7$@8yi=?Jem5x$&yeo3c)R2^^=QUM0>qlR8bpc7XDwh8fz79e0Pyv*d z%K$uGiV__iX+$8<0;3|eVxhrDK?BqZq(wjy;Bdo=!r@<$2ml6XvrFyM0dnlJFcO-c zQc*w{6ofwO!fc>iT}(kd@h2&9FyU~RW2;TOQtH?QTB&7J=4>&dxSWaSPZMY8^D+fA zYdj@M=kIgQ?;f7Y$*J8ev%Y-t;8g>|ni#!kqhk&e`t`>%J99T+Yc931vfUqi><>b2 z(6xu();=NGZg)zx?d^EFEyBPqE&j%5mj{y%P#GhoM+$xUk3B5A+Q{5>&3}CC^y>R< zWi~-WZL(esRfgRC1`5U6dkK5;Ca-X;ktazdJc9noOtS%t(=BPz(@ZS96K-na9urNYvPn@Nn|-eDFf^K_SIO zlR+#X%dX%P6?*E6x5cx(7ZU6;c5O5e^y2uS9zyQ!=>9C0D zz(3>0qE=Q)#msbpBBBcv`Bw;mqo6ljKnSGFQfWYPS>GI@{18GQp&8&oysq}oAb~h- z9X9vEqs1HpW+oihIMT?hg5Sf~cGc|hppJ2?mH4)I9uj?ubVk3nP$j?&Y9=}k+2`F= z2oRq&(O=~d38qf%HOQ!a_UtHZzQ^r|z0#cuRr|#1izL%`>fKK}27N~^YwTKgzTo`e zxck?u=UP){diV?99G%zbTjMM%YoI!7Vhu2n!cY{QTlTThof`?LsM5Y`$^H#%Nmf7m z*!o9jEDe(v8s@^+Tk?exps+Z4*=2vyg2)S@Ytev<;R|vh2!H_5U`6nRiu%hg4F2(1 z5SbT|!D~he57|niQ$t9gFd(=H3~m<^ofJ(ACVg|On1Ca@Dj{e zlu>kO*;lguK&f$Mpz#`>smwSG@+_Tp1RT6ZOD~}G$>Ihi+(gf0|3*~aWdvfCe8(-r zl60Di-A=ovh_q_=)SNb(XdAo9WB2rhulLlIymH{Elhcb{nt)k@4q=DkuQEHl`rg!_ zef#iY&4qSObB{=SHgv_EcpWv{GN57~8E|V=wuA+5Pu}$Dyv~Z0j+|Q=`#4`m-p5U& z=QrZ()QYP<;Jz?>f<)}h+{^ar$e!KIXS!KIGxq*NnSP>o@JsHxrhcz8#~y#r3M9O~%|Fx`=A#2lSFN z`vJzCpQ7@bMR!5z3jnaRSeohT%kGN82NUsZk3}yiV1>iXTr7wSzLH<`l@t`Fmwm;t zB2AQ7pg0zZlmNs4c80m4i37ov3Z+cnAps!*(%g4QNUVg!_g8=<#N(fC2~Yp90qO)f z7b)~t!98P}mXNJwy(c)yP?|Iv*gIf9?MK`9`U+k6(q=tvA63dn!L4$#-o04<7*CbD zlTi{yvR`Gk*vQ@rt}Lt)t{#dri)UgF47(kD5fw-YHcb5e3{^x+)(Z%g8Z-!V4S(#Y zI#qe7pcz(@>ZQ%|d--lu@1s+r3@^r8*_Q{CW>YngMf|mSd$#s^pp7gd4sBEZC=SHw zHJ)vd9&~os#hJfJPi%NT*05R6+Uq1|Xr4p*Z9kP0<`=(G-xN>HO@v!G*?qFMrI~}; zr?3wm^a@A6I;%*XX`1tWcXM1>$Q$23u}SFEIl*1cJ59JR`$$&%jtOds_xFt5SFhdf z;gL)nuY;g~gMvHv5)^do``vNXy6tZKXX0#ap6y zgf{Y{HK~-Ta4$=W)fWBFeA?12aXW4a;d6B`PbTenPGauVbsW`0T+FSB$lg)tDg4i`4@XWwV8E0S@5a+$`6>7 z%+hDY_qUPJB~D4NuG~@ZM_=+P7_0y6C!eYA>X;{eNqLfd6x(00$gK^)`h_5|NG(o)1G@Yv zd@rCz04aeKOY+*-bEf-d;ur9sOz4Gonf7fs!G)$Q4# zJKY>6e+((tVBK%Z8O5?}UpmG<3!?LvR!r6Hy>~BT=Vjt!Q{kq#!CL=`CCTzmyZjuv`lBUaxHqU ze9?aQo{yB0lB2<}Xi)`TofPuX-|uaxF@b!Ol)X8N0x=>VV#Lnn#Nnu2d{o($N;IK1 zQku~1`+v>|5P(A3_r!$AE`Cc){+mhA-+B1r-kun*BIThJ!CfZ*78N|gC|=w_Xr+nF z@;)qG>7}fR4M>SZcay?LG?*RTK9+v7EmyCYD#|&i`3yK*nQm489QY(z#s2uo1k*wx z>%@eP8|ky@xp!2$*Gj41OYT0?b^7uwQ!`RUf8%383xyl-)eTx{-l3%y%};yphcPyp ztdgAJYBlpL57w+p@)tgz_G%`Ym%h#1*kk^gOr^oKEyFvg2HRuX=po1Sj=1-2#oTet zL29{5*ZgjLUcooLUp)mk=JO=+EP1{aVGl0tBQW6@=!;1GWrnY_n1kQ}Xf?)CWhtjC zuE_BJlzliZCG|f8;6F(wu!{){l%IS{U=ZI^nT53>v?NdfaHVnp29yD$7WE*!yjZkz zw6Vey@sQTOFJ$<>VhJ zE)k((HcnaVeN+8Tl|Cc9HfTq7bgt_eGxD&nxqBh7Rn7e)f-`TU9c5Tu_O6a`5$u}h z&0MQ8>Ud4-XHz><&{@ysv7Yu9gwo`Kj$ffTH{#iJNUl@`+wE#{8S4a@VLUQqqD< z2VoI{(n{hKdPD2BU}}}^@PSFEGMNCb-m9T7i?wvZO9#@rs9oKjycg@6FrqP!6bx67 zL|}O~6*$yCThGY3QQCc&E(`Bbr-}#XW>#;%c(H4a*Er@v*jiS{R1#Q{wT3kyMFN-=B|h+{Y!{mUZyk}K z2vSI-^O}a-#y4rU-Pg8G8Ug%2Y_IZzklKo6QkU1sadB~4kxL66wrp`f@dn9+!!B=8 zn+fBp?Jb*86{X-im8A%jtn9bPwlcbo+)y@npCUh8pnu?Q|5SC$gTx&MgG@8|J4MY; zei?cwnVZIYPmdntJLbtU?Zt-Q9}lXxk1HN@!n(>`G)l3v zZT^a~ji-&C^9~v!OX3x!nS-^0b8_I2(?d0*853e2|H;H+ub7iZgs|sk^2o$uCVU43 zn56ID83i)o;ZPNYt)Jlk$&S!p>{;`mI5h+~5HgU8d>~w`kPF}Ut#>%2mTxVbpy0wX znn=_J^|bZ0bvyyZm1=>Ik^-MFxZM?O{ao)iG6kg6UY>BI{Hy^+s;$_gnb*HnJk9R7 zf1|gv{IbK2(HBWN$*nTk!Hwm`p~-IY dT1aBk?A!%WFrELz~a8RE$;4G+}*XfyGtqV#a)ZLTXA=HcPS3Vi?#jU-*@$wuEf8PHj z0|0>j&#qCF=>O0DzXjtzpyq!74S*@Y3E=*JlV|`rfX9En1Hcww{(mFH0BwLJ!0o@h zEx`Fd92CF-U;(iGr!3(oFJ;!h9F zy+)SK_mhQ5dyH7`(*X7mNQo@;mc=ePhk!c}8FtHNf1SSw3BPMB3w~GrE9*?^rsEJZ zG_TE&@WtZTJ~%$GybdBOZUR5awaU>i!v-}>{<|Z^?XZ7?!$e^lzy$$w$cAo+(yTV_ z*my#SB{KR4nmB3yOFGyTFByxWvH@^i-|3R&As&LPB!qEH;hTDi`;(N0vOZ9? ze*1??C4G?Ku0c!QUZ>CwN3 z0>P!{gxwr$t&r!NRYl(E9Sh$wl>)lNV#_p4J8K|!nuT|MpW^KCXE^Ryc&_gayH>D3 zCP434@<&OVm!`7a@_Uq5nG|}&BxIPkVBZcs*YcEl;5~Ge+_m^-}kdoxU5B)&>>L|u#67=gP72;&zKqCwe!GKy4zmXNd=}rLve&CO^t%E&W&St%l18XqA3tS`V(@7MHayA@ zj?KQSw?b^GShZ+_WL<){**I)VL!4tFoH+IS0B)QFwB%dyYsH;=#kR!obcrd`r5!uM z{ueZ^X|nNHJnPN)vQ>#RcunyAfb2aMqLvWlpS{EJ` zs|y~(2kp483mWd(D?{Lx)~``J5} zhM1{hlxW@z$6VaMk?dM+;f1)?tQVbO|BD|xmCX=?j$nJ z1|HiN=ml#s`@w`&R|f;%kSHDu*U$8m`H!GN+#8G2~s*Alcv6eHm_2>>@r(Kw4~Cr4*>;?5@_Ry?;< zz6?0T3art6mw7mL&ferIvcSCkMatc}wHgY=oha-$j9L5*e%060( z>uq8z&@Hz>3OUPR-or=uAx;4YFgpav+&_>bLiK7SxzcU<2vP8=@QfLMeR+n<0F?tj zFfa)CmmUy;Q73H^@7S)EMn}nVoePhzgTBzxr@l{FZ;7g^BWlpHs!e2kaxVHP2{MCe zMjz8m&GE~jJJbd|ikG?Gk=6dqh+8!8%P0HPSmI|3-y0zt+sBX{P@KvuPRU94q>%85 zNhM;Tj89yd;28`fcJ4BrW0Ks&C$7Xzf&9A-hDAOe4+&bt0jGx#iB?52mTysExpzvnk|0+yi%&tUOG+UVt+I$~9c^jOn|< zNSp91eiGLd8`+HwU7_X%n}opFlmTDNEU$t*&fyoH!{Iveh}nSL4rJ@5y791)hR`{g z;V~<7!X`}Cegy%nwP9m&%}kSO^0blXjJf^;M!XqWmG^ZYXC1~pPGepOR&=u#8U`tHbB1W}Ya%6#1>GH= z3!N3IQkpgWb=12nf6;Yw>Jgoy_~i&1qnr|A7^3w^P1gDZT_l#JHWs=C^C@1KsgY^cmVk7>gdvC)`N4sruy_H?Jdw zXd8%_CB`dQ%W|1k8@O?NhHK*T)g(qzw$L`hUsNX{SX_D2kcTNmM}*%-`+ZvHyc0-{ zSi^?OcDx8!O6ZE&p=7&KU!K9~REp5wuLk&MC&gLb58g!`_;ZK}a}w4`+YAbR0Pm5t zdPK9l=%o*zfznL&()x)`L+;*TSuCid*unJ)3! zR=Obw*jwEt12dXIVK>oZj6cDhC}qY{9tA3?qaOgWxf5M?2U+pGhFr2nV%++VvV$1+ zoYFIFM-G#%7FJ)-(BHHfI#?=$MN**<>`RfhBH5YJ3*&bWgf1c7}g}Y z31DKBR+9A==`!mH+0@FDBw2ynMAu8Qf`y-kfB|)$+G*PQeVOVt4KYblDABoN?m?U1 zCS_&pQkt7wfig}}-Np{;L1JmRn`O*-2b!{|r)SZf`5lu&95SSae+v|T^qajMIZ7Pd z#rcJ-7$(M_c}HM4{3MZp0y@O-TYTqG(bExk2`s4$1Oezve=C~FFX1fo_SiT^55Sb3CyFCMbhgE~RD>L*y{?9YEIwdG+y79LDKuD=HgW2LF;Qgv_&^d&~*jar>-RovXVc$b&yu^+rIt zsFCQze(3nX7)&m#RnT7~+4~bmsV-_I!*?5nZVLN^d}=i~B~6uR#&~)zM9<|P4SPel zoe=Lois`h*v@ySs^BeTgX$NAl>$)U0nQP5}hip1;N8t4QHbB2UZP^ZIy$aAqM7`hdTM`P>!*vhARyo=qilNIqeF>S3^?Ah7ZcsD z8C(P728z@g)i1Wpg|uKlt@4+!s_SKXw#y0$y}8fF-wENECOenNvr;87 z3Jz<&5_UZdH-B^<*SsuL2Mkna=?OC~jeMay1Fz~bwfad18=vhlc!EJ&4N{mhAWScd z{0lfKjkxm{{0n=5J3(6m4TMKd8K_N-(lEo+HbZ(@bOq>)V} z8c*Dh7%j&EOW&fP>Iwi^yb_5?v`P{?$mf*L_oRnRM+EhlP$sRxI`M_XWTD`A1L5TP zhK>8`)M0x6&|i6D#9CP+jr}Eoa7&5n)Lm%j?0>UDW#c6I7w@-nGb|~E5SE177~D_N zpBkg6o`H(*B)H;n*FsjJLr)%h-l|VK!V$H#!|+!sGn(U{V8ctkhkii((_S6D&W=L6 zshHKxba=V2*kJj|ovg%e{!eV;jAnS#t; zh&(O1ij>D6zaxhRkJ3=>4Kh{%vZsPF-u5pt4DCk~082|2-_VP?Y9q^d#RV=zB{A zF7x>`a6FGHF*FSlqckHBo=jb&%zzr=Knm(_{F}!ZngWTiG)0#=EH1$DjSoz!F?n7q z5@^&A4uh9$O@;L=*+BkkVUl6=tmh8m!p}O7<43|O=umAwh_?w=luU75*8~O0m{iJ? zl!O;WdkpOfU$ZVmk;B9lrBIKUYw1VG@_I$Y$rPD0_az*hK1!6pEhRKtx@HJoqYfRZ z(@HGIXQAY-E8OakWek;c1~Bt})vsoprs@~N*Q zu0b#u`U*|BslOTOom0P=_4fD6ikMnDlBM z4LK3o>|PWUl+orJ@@bOHgm~$HGx6XzhqpXQ^UHJF2~xxwHjPI*=M?Qy!s=Hp=oN9< z!=ajAwiIN!0rQ`5xYN-FoQz5NF=#N(W&gWA1t_;`SVepS0=QWe6r5OdsLuOb6b>#l z#kp8V_wC!mpu=9wQ_>m|Aq!o9SRm`Tt>>)X-_p)3iORkQf@hjmD8NH%seyJtn1fO8 zE6;$b>+1n^qlsQu&UkJo%Xk6J(IA@}w^};8dibKx407gCxNLf3GX@^ehPIt~_w)E` z_4)RT3@gs;?m7#){;2!3?vFo0W9Z<$T43^En{Dm>YyPNCy3Unfb^M)CuHiTLA}6yo z>;s(4mFJs+f2{pz(XF6K*w=!#O*yERwdV+JL$qj)9yBaLel)-CBVAMQem5%l8EZbMpLYARPc z?Ybrvon2N!(MH}J#XA(;(+_k|)$c*SbQPf&rhlo9yo6VgMMG17m4i>2b7MhKn%-xp z29^x);F*ERzR#-jD0b6{KaR7RTO=2FinRly_lMfiVwkCPnK}#Q!=uA4QdFg6e+HLF zR5X(k;M*l8g5(kWv32419=~qgv(ELAe*Jg!81}u}jVL=;@h~B}Yj!UJ*~!So@x$rH zOwU@7e)H;gIglL@lPX6mXN5r=OE+1GQsU?a^B0N0qZl7Rw;`RSz^}GJ@N0uXI3U$osBMAf!tVbosq?qG`6A#r- z_mvfKT`tf-W2b7P6m2*}vsDxtS{W(yAP^On(CrfDqDc%Dz=XNQx&yq}X z%3Q0h)yz|5l}VN?FSREOq$lJni?nbT*GwqPkJVn%zi6_j@3y*W|@Uu%vQ ztqF-Y807VYv9NyKF`|4p?`?b;L9kt75U8wp;S;oOVHp;VKrau22GR}IXDcjw^;SlQ z8VE_pnXAi&NA@6{2(^g)!+Xj26UeE6J6UDHt2sgm#$*wZdQQv&*1KV{p7i-Uz2hC} z&5RnPvcne8o%V45kZT*tbvDO3Q*__={*Om~BjV=Lw$h6=2ZJRhhDi#PQW4SQR>>7v z6WLt$LmD9nM(Ep&>ve~jaHcq3bc?POrHB@YCfF}bP#54&z*j&&A_VxB8Y><~#B=c{ z=ItLAW?eXgg?c(mGh=lmlK3X$SF&D@V@a5K4U+J+3Y%3oMKeZe#Vu-Yh#4MBp5f%^ZSdZ`Nl*7fD#$^=b~3pN-z4$Y*Ls(iG5cNOZ+v=>OBkj@ce&}d222<#WkxOF3^(qd#n>gX%hER@zNPH0H9O z8zH;+N%^{cjyIaQ7KfKfBkk2&Ur&3M2z<`a1d|XgIrNpqv~!rky7W}$rl)eNX6 z_RKKKm6_ynaBbGJ#LeKDHh@&(SGqX#;S#q=#>M7ne5crAZ49mAXNOb_j&~_|8~5ldBrmc3V$iC7nJA?EGxFX&Xcy$GGu=0T zvl5WQQhBI1W7MAx;}b%vUp<>e+oy)6O3|^5FT3G05jPRs^F*ZGwI_ss+f`eSugy@1 zRH0BtVCgW^I-4#U4oM5%rEq+}z8ioB-c zG|cFO?!h7%Myg&{k)aV{ZCs_I6RvksMV!)J%|n(91RTh*O# zj*|bn2%3%(sjecoW@4Lddbj5(C%_eGiB_Y^fK5#(QpLuII4EOjh*;)DpdZJBr{YRM z*o@`i0_3n?1(VW*@vucmqe<-@YYm{(C><=aTJ#U6Q0dv>W8ufs#)L><4u36sm7cWB z%Z@b{@XLn4sFc+(d5a777;Ahr6p!0Or-5+6f`+Q9Bd76GPgbZsC=f8>5qQy}O48s> z(&np)kwP&5H>JqzsNQBOL4$H5OqIZ6qVM9VE}{5AX(a`bU|}fquX^IxtpuHZj8m9S z%qt;&Cx-PY7hfg9!C*Wc*vI>pk~FIqjfl_iwmWZ+HUAO2Q639VMT@;-b;%?XmaeS54=obRZZIY0nb;NdK<525J)$RP7hz^iTgjZD}UAX{pxKNzrlq zPA(id8h!lW-|g0Yo&CA-$XxpIgV&P;=73_ZFrvWNa)B+WX#(D4#!nbRc-g~fHR^J+ z8n~jgf<{_X`k~7?3DYic7<&z5Dj*4h!n~jc(f%FFA*KG<+y4ji8#^x^6 zZ#)K?g9eFqTxaq><0X6RuHOH}bExa}kpMO`@mVt5g#48O3+(*IMEfu;kQga({B6X;*wTTrGJ zTST(aVH%A@L{E72nwn$=8bg5BUu4G%kdqzl?z=pd>Axl@m0A+jq`ov%# z+xfP4BZ}#u3z3^;DHOr>t~@S@Igw$?!Y{DkiuOJD((Ff1ontRQ;X4^$7!HO>gHDI! zyCj+NHb%iG(&Tgj&<1|4c34BKCez>E=zKlV+Z5v@+T1QjL_`H^ZQF_#7la zqrkFqW`0z2x#+nupSn<8jHg1oEs@r44upik_R=s@@hgLt@h3)2IH9@YsvOJ?fGrwJ z$64Z~Zg44dor!zlxB*FaENq=gf=Vr}7-1^O6#ShAp#=_6Tz-bHlj!Vv78GQFVX9GK z7C{uBO!r~}Yuj%}t*vZAY#;>Md-KVU!fe~x+daj@#=+Vvpl(dEQ;Cf28x^aHJn|#@ zDf2t)2SLT&!XzABJSu|a=_n|&S&Z}@Dn%TW$h}1eMp<$fkl1CEEP){cYu;ox60z&CvA=v$L~w=93Akwe+$5;KmfjPBx|L97pUw=mat}Ex?e4#r4)?c z3C(5T9xdAE2>*^)$#DuuLbjCI=ytf9Sda(anfF*Ci;!f?VNmF!#VLEn^1rRd6aE3BOrppWrP@|UarYsfP`cmQ7gUNmgy^zy zv>Y7G4j@<6dF*v;{(^Jj7TAwUE=*6RN)IhCEcHSSTgU;0Aavd@*$*P-(Jq5KX|9$K zinBD|o)erzA`$9j^#%O9a-ehiFcl7~ORAgS8|5V;e#fZ3bs#rAb_LI%&s7Fz21QuJ zrn+Oh9aIIWNj=4I3}Zcepu`?XyPhJsyt7&aCS`7Gb4H~W9Jahq>7=@5s}R-{ZOAC7 zqG&Q0gGw)BVhNKH^KEGRZ|kO zJnU~wB^J8hRg6VRn|wR!JW%5$e~_rl3*kpFL1)h5#z|B?$g-*p#Kf-ETh!uZca&`- zbvXgGFk*ZX(J@>R>O{y-^v9x-ApWdb?kRj}*yQD`H3>j$YMp2{;?Pep0p%GZw5#4h z@ixRD`BJs{fdT#?PzeHjtq|DPUKB;J*_)rp0R2+9N=iOw;^e-@458Bn20~sDewGTg zqZ>-a@IOMtIFMVK?^_xxqGzq1$OFA`N;GOsRGD==KYnIgp~+9OQQ_YsQy{;{n+XHt zPQkmlNF=v2%K2(hl$xQ6b^A2Q4&k0v#U}f0-0Vu)-XjG2TD8FwO)h2cF>@cfyC+5~ zLS!Le(wi@OpDsA86YYsflk1uXn)@p#OG~t<9212IUYHnMP~C$c{glRLNpi;qG?Kp- zY?2@LTH8=34Lh<~Hr-A6Uxppz*ah|+A=k8zqf4t0hMi6B_h|KgA?<8`R<5YYWGmC* z)?8tZ`0OC`Ar;bIzCN1k44*86oF%#aJqKIY$)$CQ%l7AZ!SAZS8}jMrB4>n3n-GfQPFI!oH98yvkDlB`*7kRh)%cF9;65iykbIZM_#$u7kcFog3`IZaO zqfn@0%X#j!n)N8WK2GxW@q{!l4|&S!we6OKfmRRx@{pGbA?Y$0t?@c9)|Rt1a{7}^ zH3rdRO*nHUoYADXs$bX2aSOIAyM@dtodV8=_Q3UbwfX~x0`Bwilk=v6O_h9g@kO1& z=I`_htCy}X>nnppgcEjfTd?zi#uubN!5!s}D z@z49HKV52sS;dsbo|p}4I7CE=NgbV((kF*e6N`SFx`=0EHjfg6-(`BoiUg&|z=fUN z%UlG65o6|>cn_K)8&Vx1g)Li51}MV@CY%T+rQGt|+$#6VnvU##hw6U`>HXtU`@j?W z`4a{QbYj#_C*)>BqVq(W943#63KBG(&Z)hHHlk&aP+cJ zW|=waNE0nj-*zHSk`Jp7q33(f3c`6_LEx!8!Vt#xji==!64-NZ>1fhl zO!PrTnUPhH;A$Td*eLiLDv6~t#_JlJJX*==U7D|QD}ST$w1ii;mRG$=UbTZCl1#ap zML4w2lOE)~GN=(|z_3Ir`n5)RZKg4T$_RCeP+#K@qi`}t^03UIVDnAjm6!FOJ-YSC zOV>@Heo6*FV7IteObCUh;FDhe(Hk8ihnoY#Jsm%zZyBd;ZJdu(hZE*R>&#Opjhpo* zj0Gae)k#pQ|0&T}8QHYV9rBi$n0{zj1~@?6B6=c7Qm+#A3(t*~m1?W>fl{KU|kBxm}u=tSpkcvIxeCCvU%C>FYD+ z-Y|mTS&*PAM>xa_;5iUV*)ndRO3Lz{6}Wv)DNzb76Ni4Cn&ujtV)0UPC9=%CqcI@$ z;*$T+6||DV;v8lrd-Lh0{ByXvB#=wTVHq`uq8sZo9=uuFv)MO1a8}b>kd#~UP7Y43Pro~ zOhY>fjwKB_40XPoww1X|AY}w5!tCViOd8skx)Sxolz5d!xKE;N#$ncG-1Cp?*h~D@ zPF>$nL4uSsiO-24R4Bnt?XvH!w!je4C=YZJWa-h4p~U^`#3L)i4ipxwq9dAFg0?BV zMK?597}LyeL@J*=i7GxSGmlRApuUk zFqg$R&CyaoO8CKETAcfxoD?{OE-13b(34B{WDLA2nQ=Kmkcv(7hRDe3vw0Q04 zzc&z&r=CgxVeGW9s~+Xb_7$s6HIx=vyK93n^DDh+=Kdikv?*1U)nfq@tW#l(4CP(O zqaq~1uPr@m!;hYNM&c6J3=U(E6lyrkQelHNxtJP7|Fl;A|>$c2whBYdO z?VqBG*3{Es{HRI(?DotW4pO(;B1UkqoZ5~Ts9q~5j@F#SCdESEdoETnO3*2u_d~oD zi~L3=P=+8=h@F(>Uo%c|pM5FI$mLECzJv{_qcak2A! zWh{8@M0#6i&YF}Q2APb5ZGsewd0d4i6JEh@@>lq}x<(Jv>z`fDa)y>d$B49Tcj|Ly14#pU#xipCCn7+hE}vJn;qH6b{rtM_w~g+kCvLj?`!+ z!6={9_4;8xj9&+MdDnH%B@WM|J74PE5Ot}Yr(@*;VZZZkBQrpqJxz+>2RcGXCrwR6NriHOr)ZdsEf+&pvpS7Lby} zWFd2fa+1EbCZfb!C&;2#EEyy%Om7!^9s$RueOMXy}dcoG|tbbs;i zD(%0ny)KRDQ(|JvCg_e9Y4#=lB>#|v#E2>^&q*T#UV#tw9vn!db+E<7-(hCD_E%!a zk6vb-{dL>XdC`aX;WHJ*xh`f;*{eCri| z`G#FSE75zu9#kg}*D%bpGOTFFoHHvaUU=yy{}$rcR-?iG3N4W=Lrr`>* zIZ=*T^5TJMyzqi{;74(aPb#NLe2`ROL|w@w6RO1|pblCkTf55^FewIMVJE{3!m5}4 z8I>a-_a;S%b|XS! z>Bl~h*+4-2z+gGVD#YlgcAJRt{vdBakO|fTZ?ah;q>_}nx_un(8q|bQ_yQ}`C^5E7 zQhb3dCK0eCc1z#E0bvSB{a65!qddPU*-S7opN_FOyQ3#CxiIlm&5C29tVF`IM<*+O zVxPFq6MLc=wu%rI7XaA}p%WULd=uvUAyPcWUT>5V`hBBz+QwW$I+o35p=0JB@^>sD zs?ZQFrlnMppuLk^-W2U-u6W@&xi4_5I~` zpI2TMCgwlCQBn_8^KrIB|JJk6_K}S3HG2JV68$>=_b! zmVlYLKj?!ssRsur6lP7HtZSRnj%pRNaREQO`;!+KVajzIST?^G6oap|`@U{4rWha_ zs=N72VYmO-*Qvb%i+h!e)P_uiZ2^HngB9*aMbMJ|9b4y=CD!zuIE(|1dC{~K8dR(U zO=`;F^#dMMLVK;CyQwMyoAF^R7}>@?FD3JN4fYHmzxd}rGbNrcefz)42cI?unO$;| zU^8GE8WI-hG!cJZbW#9I(gsve>7!9>ea~2 z(<-8AbBZ3TJf5QifP#EK#)T>h2`~o68x{ZhZ#xcVM~4#p2|x}?NPV|K^v=AmDMV-h zQkuGf57_8weQ(Qu^eFIt`&=rE6oonBn`8fbX2(z=apoKD3wO17@;r81I&BN(x4=Q$ zEHu706oLL!Wk%@)qg9erT^T8cGtHip^-25&K9AcFp1(GqD_EBcdU1o22yN7{^F026 zhGNZ@?JGv(t4;SZPO>(qT}_e@oJt316g7s5yRq zK{krWs@Q2oTxW50pA>yAEVBSQK#Pn~#4lI(gX9;0dr=q9DsCqLMqx_nWP%lDWzsqjK1an*utloet>N zhpgrg2zqiR;NOh|pVM#QwtuH42=ko%BTN=7?|W}3Y!oGp=pDfw-Npj&4*Ev5_jC{T zxS#c!x`$n%P!+-T+Ie0@B{HCR#Zic0DKQrv9_k@NeX(j16H&$QvuCxjv5D78tfpc@ z$Ibu728t!K$>dSqVX3)-;uqQextvHOy)p&(;^&|%2L)l4kt#7Kd~5}1kp#WyMCf)G zjk?+wJ$6S2@kn8`;+&X+Q}`XRGDtJrG(@CZo$NGtB*kA!d9+3vszlIdQ?X{?8KQc` z)raCKqF$)Y&}$?&g=xz0pEJx0 z)Rug>!WuHTQ$&I#Ie>^$sOjQWot|s{M-+kz4wL^eDW1`b-=f_R!%jvbx?nJ2mXQz_rS zcP2BWWj|zxueX3;b?RB-{b>g}QI-;bc?t|FVJuj!G}? z1Zl06PT|z@JAo9gBZO4QtXv_RmYB|3!BThGc09sChO^w@QC!r_>T{Gw&Idch0wu4! zAvEDSq?2A^frn+1S`~?u{@}0>@@BpnmqeD;pOd4cXXz*$Xr!jPj6Mq-hzW@>=|&Nv zNTBLG=$AZAzU-u&4qY+e8$(V%kZ$<`GOjS&(1{$>N<{KE0bU4KZXa%&{vB~!O@C09 zS}@*P)g&PTi5=b?n@xZmDnOGdM!}r`&t?nE`DhjiZ<>51-DDOXAHZ+{%uRWWX#vr zii%M9MWP;gjy`fY@$5cv52krh7^nG03snIWNOA@0JaUV?5!OOs_HMh*d1d#wV98!_L zjZPrQWYuP!I;p-TF)Wc4S-1xcHFv+LA6-Zpt0s7abZa915a44T|J^MC;!3!dEah+W zper~x^SWY!jPm|@vqCDAkw;3Wi$z2w$JTSk$W_m$e;~BNQpK7#*w?d=rX`APi>UWu zjbV1lW{(R`GA(%Q&`8{Ev*&7QX85mr3WZChJkn38)?-O1JcI zRM0E{UH%#(4;q&tl-ETyHQJ503FA8Ml4s+5YR@e{2_+6e-=;dJch|g=wVQ^ThpDy@ zd6JsB*`{%D|GU|jcOT`FZ2^Ct%W0MwwiRfNJ95QJxZMTfiVGrQxBj9?O^Q7Yb zZ&d1SSt1|z*U4r`5dDHgK%grz=vTL!aON!01Vj;h07Wd$(pExgDn4fncln;Va*D$r zydCuw``#+f1_~hnTcMFM2humc4+NofW1pXeBH$3+|1;WcQl|raPAFvw<#P0|{6mW( zc?f510t{6|i);={S=3p(md{+kG={*bY5#Ne`lHv-&}v z!s{c|%#O-oO@)2ZeqjzJ0~D=Fu#)) zg$8IU`pR5)AdLj)lu|*{dKfH;PI#7|s1p$K5v@DFNZ|78g;q?oBN)N&@N4Tv@WQ^x zT!wbym_zky?+0#qqF;|4nJrWT{_Fxc4i*zrH4IH6VZebC>uyTQ+Ik7YcP~3BPZb!T z@t`r#xC?hHibl;C=MCWG)z#j&^v>lwr5;Dj%|pH3`aQl+)c=9do?>Z%85zFPvL^O7 zC*g<~@d9fQ56sSRs^GV70TPL99Ed@RCv1uHUA!XSr@HIQWySc(47k@s!m3{-VQv=i;10Xf;5-vmZIBF-hnco{P`?)+LIqx2F!DPZb}f_dh7x(1FwF>R z>_1i8HIgL6IBS!u8bK0yt3H0tt+*P`>hkjp4yteq7fje-#Yl1;Dk(A0ATk_bZ60=% z8ac$>k&#CJ$97e)zuWl!5fcc~HDwDkAYMnurfL#0XY}`wZP^TYb)2y^ca+tpYTNes zcP?iH4h#sHgdU%cRedZkfOoKpf=|>RA0JOP-Fke)iFl^aB}_X=3A8CKp^Pfe17wEr za%1_4+S@E*!|9TCmq195Iv72~!-TTH3?F+f{Bcd=4oT?`GPWjqu^d~GN0hAkGR6-H4h+HxO`k5*%TjoH*l(~Pt zp9u7|>2`_TU6VU6)j1JFEhIRgThb*|zrsDvfFLJQ|zb)zb)rFcASZ<^e=TSb;57N^s^&` zYf4P9N7_s=i~yiLI=+88xuh|qrn(QG5399B*!FDsp!EU@3vSeBl1Nzii6Tdg3E>I? zl`|13%NTj98UWn-C+K0}VG2Ylv{O977B5m@d7GW2m4Mejw0_!w@=gAEn9tNF^sX|8 zJV~tz>MrxH{I;ov9N()M1uZXpS+U(=r$s(}$g`yu28Fao#jhOel zweR>6W7I59*YH!vqR?+=rIT@qNFe+obP+SWGx{gZU|0d4f_2W2?4UYdbQ$$ZRoRzk zn>hR(jdd>)9TItVCe+vg4vA-bq>JzL>eW#kt+U%51@QieCHX;7ViR!6!@Rd(yFOv7 znkIVL6GYD_xY(XdYyD9Txh%;K15K@|~(B>Kbm(Iz%dU z+zDf|$g9@-%OYD0rruwW(qWmWzYh_`yD%KJ>D?ZUuiCFg;mNPWF|)&N5BTJ~8tKtG z1k0Eims%}`kLqFQlPY^FJz>oSANtGRtYTh5T+WZkO|!SS4lsdNXH9VRJPn2%=ui`r z4)G`L-R~ztT9TGqxu4arQpbJgKsMWMKOTviRB!o`T~5p$hKOILqt=fnx(x2TS)*}Q zc(e|t6^nHFFRGqZwI+ABn+FFa@L(6In5IFv;a7IxchA#dYuylX)owRie?&0p*dT6T zK{usd0%HJ`yG$@)*X8rUsxy`+e_y^KN`Z zh=1_2=${GPl@+mhoS`_-M#vK~{G2;>M12F6XTGb5WY9&R>^K6+#ywqMBS{MxF zDsN_11M8?@qQBmxcJOFChq0$GPSTcTvgZm#qnF4u%@>8iFm}xp#l@L%;IIUzsrv_h z6h}Z(61UUd1mdH~KD3LX(iJsxj~t=Nl0K`5fM(6TVHMD|y-83hlm>>eqH($jKu&5i zw@k!HM1g1>YgVIzCP(v5wIjxz>Y1buA(cv63`Q|hfxQS7Ln8&1-O`miT|_4>0F|5r zem79rwLEsTFly7H@G*SXGR6tbJCb06Q%kzUWDrWwE+Sq2xlM7W^s%x3nv4)DBfBm+ zz#a96H+l*ECv^(y2Q|0{@$}HyQ$Z$w&mxiaNh zi+2~o1#fqhZO{7F^=A`>(*I}p)f?pq_Xnj(FZM|yH{;M0cSuJ86(ZK>Ob zMX-nrE%-M}3vrl9O8`AIMx7>PflYVbGtU`PiL)_I9II)pqH|3Jlrr=>i-X;bA&?1| z>jp?0AhjzI_RnUKqzT-Zc_S@_-}XC?r~<4nl1AC;Kxc&h$KwJy>~o)h2_M2&@^UGV zL-~SQ*$E+iwdqFvWhu~MjWw6j%O%EuH#=3{rFWVpA2aR+MLLpIHy9ZH0O9kCawV*< zJ<@rLGm|*4rR||z=iF!i1)+;PJp0F`Ds7q&97(%gu{m2eRhCMW;md3(`r~y(E3P;P*gqUQwYNkyKy?aJKadgD*+$oHyfcn7Fs4; z@*2i5uj2}%P_L%nTxc)V9|7>4faUm_4q3b-l81M|xCsVMBGzFrc=iGXkUtMVBQ|Mn zOv+MZer?`Lq#Lh|;HAN0&t|hJoC<+9BhH34gLC3=qxF>MF}xda00eg0MmWdK05KCz z9srK}GYJz3nf??5E&VcxAMLVx2!DlW`fayu0!(C8PrN`y`-6m_qPd0~X9|R30`dwW z)IA4gt@|9n_AC^p18@(9Ls0B~&9ZV-lBk*2H39l=wTrw$5CY$@qoQ46dbuhIEx!>9 ztQ&P>ToT&9JPY*5bQ-9_QnENo%=Kx{&;x6n2u=+W!-Zw8ZFB1mwbr|L)s~jKcWR?0N*c$?DoWzWV*LcxJoUK|qb_^5-3+eg zgq(;V&sbPX*MA`pp6hB%10T{>HZBMTu-ZOAQU3hZhx6bozzh_1rwc~}8YeWEOn0)u!bvQ3s=*m` zzeC|BgjnyIuFj(#g00a4vOW?Rpv4W7;=I?&5M^8;C|(mkfrrRK=lje#30T}*YIuO4 zkgk?#h&QmH9882LE;Mm$fdplqcX|usV2SVXId~ygsRrS7?sUsb3oFAt{b;nqt5nr< zrvM@oS__mbL7u~67Ac}_PRG#5B(5gLqZ5ep)-ai9uY|#4JEA;-IN;|N+81xd@yE}? z7eUCJT#BLXAOmQ1DHJqP!Ju?FVAIdZ zm{&q(rdXcPFrOm`GcmG!NYb7f;M61luYC-(b&%OLN$$4sxQqM$ni^$mx*0TEtdJ0@ zN2$@f7TD)L5t>riC9XIJ&|f&HeQghl@%0kP@>lY;hHktmA1Jlt05fcbZish>@xj znK6!0HQb=3vE+i&FmZ$9*v^v(<690ZA{kXO{mv9>u^CO2xVhc6JrVj!OhD#ReoHQG zlE)^HD3!!`2iup^JESw0HF$!0&vpQZfF+hGJjma^+5%uQ*)+@{!o_p}VoB<_};2r3+@j4>BEzMJzvP$2(%lS-vKZQN!EJOG=jm zF3@A;0USz_B}%F+swpl~33L353^7op=iJXg2#=-O?_DKl1PbW*`-EfvPm0}_^8x$4 zEEM^v{8fEOgE=pwAH)WBRa=gcPt)o0!9+ryDeYp@bX1+k6s-`&oEn&Hu3l2iily{f%g0Ktf^-ff6$YHL1qh(=B59@ z4oQ7nK{|%CR{}0E7P>Vs#kvu7svxY>9-A2?gw{@C@)aVSk%Uh_I~3PJ@KlpTkc*^q z$CsoNo}q}FxP1aPprZv?=(4DP=p4ItDtyjg5pg*T`zX^iMQ!3^8|RH6i$Ggdnew){ zXrLKGeM;&c{PRuW_KnanN*#^%Q~*=2#6&1OWg!vz-3oY$c!U^iUger-+p`cTBJDl? z=r%0GOY?$Evy>ke77InGaSk96`yd1s9@CkL#Az34w7yfIv*y_6v+YOU5J&^DhP=i% zc9A85O}uze_L-I1B2ozA>>WjuT)oI(hFhvwVhssug&2y|am<9N<<*)aZoJZT9Ax|d ztpq`ffk`YrdYE~sz?2OEPbc_Kg4q!Fr`8m6#}`HG%kZ5*PKyT!ojd>OVtiCft3ExW zv&JQi#mCwnk#2wiE7Da-{zb{5$y_s3i{@3*D6+$CDmcN|-BY`%Y%}$}pc6{Vma|;^i1Oimy z-)Tye4(1~Wg0(saDWVgWLyIXw(M8N5h5>1{RUcGvbk)YF<;?2tGIRB&JxZVa76S`+ z%#e^sgVn-u&wZ$uI3(G8Ut})IZG;VF5n>zB&39~27;HYiLK5LhV`-8QBF+k62BE!5 zi&nzDKUBeCAoQg^eYcI2_iq)$_gWRnS*rrC$?5$&^ywGFE^x|WM&dt_h>vxT<1>C^ zW9r^j;8-}SznoRY&Q%GlF}tp^EnmWckwA10a4se_s6}PTDlIyG96~2caZ-w@Hjm5@wzU8-@wCAm;*$ z4Z1VkOAZW+7$lp|IXT^F1SjWy&`d1d;QX*JPl2wJ&PSlI>uVQuwqm;6QPi z*7d~;^B_+{fj~@Fw$TU0t*nML;%4*nkt8DszC<8_9x;4?fRGXcF$s9_T(Uh!?RPCm z4u*jV{s8BFCO>+Ku}a*vFLMht0(PF%zkoJE@(>wH2O)T8iiXSxng{WO@(7%^Fd~*l z0@*ghCWe2HfG%px%9>)dd&}*@U;$w%)UxE^-lN0*(mdp}6F*J&;|i!@DZqOF{zRxa z1m8U_3#b)ZWDQW^Ar!&19_}BREi5P-#naOd%jZ))2j_xW+Tg0m1`;+;ZF>D0KEi4~ z@QSA2l=-MrY!=tD0zHF(0jH^)5i16i>TuvX&`Glc)Dxqvf3>5Vw6+3JshY`mlWs_i-R4l5-zra!0kD1 zxPv!z)EzYcLBy4tnYiuI2PB#fcn3?C1wvY$a_bQzv>sqXNll99e-nq`52l7}o{#f^iK! z1abEQU=xUG1#%bgG+c;ak-i5R8RbQChZ{J zNg!Oc6um0sc!=_zNcW+|e@QZuMd}-#S(=}ugX-^uE;Y_gtjqZ&{?{)nL%Ev8-0WAL2C(t96kshxl7c+5&--kvE=CP7}kDDU!H+L#s>w z^A@q#RdNm5i_w~aXuJS96hZ4+kt`K1vDgKmkDvCH*HD5Sap2vACxsi9hhcimbF;Rg z7i29kg6t&X40b{T7sLJOavMyg1nfj8+KCZ`=GI-;W0P1&c5&-QNqDwr>FGcy>WV2c zGEqHX3RJFb9&I@;V*sTBYq}FK<5Ls9QCxt~!$;UqhJj3IS}9$pjl_k)V>)J%4Oeb8 zD1amA2}l|zPAz(5x?sYOK-H}(cs~B3I^ma}-xE!Wf7mzzTX1olIv%M z$dsa{{)Oru5aRK{NXr*s(At8*rg_^r!xI4)|78Fo zac#kZ(grT^ka0Gj;?))qQ*m>V$6`a0qc;T|qzHi47trYjQ79ltPBe@gq`C{JxGgtnnXsfksD}?11-@B)K5AHLc6#THtMMX&}PFE+>5LLN|ur8qp>6j zB#DD0HFHu~lY?vXil%3&Df!T{%Gkt45m^$>Po8TiiT8Mmdib17>B3Zv+;G(qFixDm zBdD~N1Jg)2wn+XkB7qGK44@kNj~UDwHv|P1hWi!5YF>{i?MrB}QU;9ciTS7EN`{yT zK|6d6dIY&Bfc`{He z#l3!iNsacDd(%R1eFer!pBU}Z!zSFY-DiNr;@lJ$|vG&G%jzad^eIvx8MpZ@Z`*yAb!PZw9f$s}!xJb>7 zQJV>gJuieamj~jI7X0J9Q1*{t)KT=rrYT{Vc`8MRL7)!t#N=^YJWAtdh|Rarmd&LK zK8+i~h=7}bP{veSr@2-FS;2;&xPVF}zBmy=$?vEoGQ|xmH|X&2Gq+^QiX4;;$#yu3 z6P$_X5=8kr+|ez34wVdC0nqt?Z);@zyUadkH9B`SP}*zac+!w#4sE@Hrw2b2A#w1L zN(zNrlWD-jC0mh`8nNZ6`Y*o&BiVcMeh$`S7;-p6#d*1=8B~+QXeCe$CZuw#B3o{r z(jjoVdr08VE)i|hn60eYDiNwABQVx7!bcPa*zPz^7FMbt!&rl3xSRw0HG&z0rs42g z+}PVjh!_w#P1TQZGixlPK#9uHsMcC}Fu`9L&Cc2*Kd+$)xLF-m#13(c!y>J)`nLx3 z-AO3^khu%SFA`1#`5WXm!yQ7&p~=PHUP5?$Egmq3Q*giLy{AxlB*fs5<+z0IR$1%aNe&OL9yecaNPCo zDJCW!`cv?L6|!1^U>{LN0h7nOu!msknPDFbMgJPPdO%|Cd>`#lWN3|i9MHgp<75D0 zMTnsTzZ}FTD_TWawBjmnxybv3PC!4uf+b7lJZA%PC)x-*$wTr%6>ba|qS#E+MURs0 zbVh(KkOZZyqUaI&2?zD$kUgPy%sVxDaF+%g$K7ZH`BDo_+b{K|vsvE?#fQVlemX5m zQk?u#U-DQ?<~CM|Ln4Bb@Gl_Hw}?O3D^(vAlct0R&b>h`ADb02gX?u7(dplCu|v$kqaoSlq` z|8!{Pz`sgK?^2IoFHGI2&?MApX7X|kA}&ghaM6Ncu0Wsb6ADC#8bXgGrj1NwJ*(;j zj{xZ`9S&6{k*-M4Q$+}%7_)&Pf}XN9mC*@h)MR=^7YHf@Qbls4imw_en4|It!n`3U zSb{x5VIQ_AAmD?WO4{~4ZqVWai&m>6 zh!$h|g1A2B2ElC#gQaDWOaJ3ho$%BqY-eIp_}0J%SX`1L@MfQEMiFR8^;`H8amcGW zVB>^j!<_qC*YeGfji*eZBA7g4*-~Ro)?ldV3)dL*0LPY+1WSA}BxgXL!!Ns#F|(_p zey$wmYuTud&AW>+kwqOd!kOg24vz+PLOM&_6qJ^|M4nrMkQDE!UCrE(AMdix4Al5Z z>xy6kX+RstY9w!PLz&o6K5r;+pDJR{B|dVmF{sZN*Z`sFn%$H?E`Y_D391&CMTbIa z5PcG+Ms?Fd&E4>tgdR765p7T}$kBV!OOXUpdx@ijoI zW(M&nxJ>w!hHD~@8pPNzR7o_;QXL!-^iez7Io#E-?d|E#yeQ^!`L3cexJW?hi97*z zo04qo|FsnuTGXV}5J<`JR6z&hF=aH+`<-UGTmlOWI+%pH=PZj`Wp=KIlNUMnm9Sd@ zlS5EX*p7S_H2W0FWTDC>I0DWbc;zuafhwkKtfo+~o6E(c=0E4Js~9&t`9u+bk=!tZ zu?j>u{x=E%_yhKk{jWZ65U)L?#I|*>_Uw>`t+-8K5A*kMUvdu4F5tW_pt5y&__jeu zV`Lk*CXA6%+mscOlND_CDKlz#ms8cO!7!4F2o_tL&Zf(>K<+*lY`6cG`BxA6nZr}3 z05YkkE%Mpt2HLjeOB=njnI#l}xFV>}ZW1*Fsxgv+Nv>1`zEn^_`2=`;CAb2ABy)`$ z111!djW9fm$mDK%MYgLbyp3K@nFxE;)R5*2&~R86skOzBpa>9e=WPQ8@Cwq%Y!uLK z2feP#j z8!oDD$k>#PP}Wq7<1xx-pNlJ^kNN(JYNF;2Z`Qrm+CPgOHy^I>dxt_9ih{-g-06Tt&nUD`~z+0!rQ z3X8K7v{G10D}=?um4r4K)=VXIE>@JG>&>}xi?24~OXzJNnHR7Xz7wAfZM3G0ttS~s zWj>ROK;I;Is6;bGQE7GNFLS=-jN@WO}oJV7Nz1GD06JP6PMs5#~|)d5+jf z_}~W{qyS`ZNPuK)FDS4R17UJV@lp&Op#8Lt(S$~bhk;y=ftB}Gy(ZFSVA9>%ggtYQ zP>WcpycZ>3cqKsln^xJTCo)$eq_MD&ME@d!UMfSBps|ueo!bKm6@QY3Dym`XUN@>R z^^cER!=AipH9|H@X^Akc!%LvTK2n%vBSXe2Ofs8(F_;N(*WoI&S)TN(#Walu2N?&7 z8zQqDYC?!58`C&fJOmvNUo;htVJlu2EydtXOwX4}m@Rh`qT5YkW4YE(V$XNVR=`JN zP`dDBB0zQg+Lh1-N?aP)#+-0bsgUSHv#VW{+}v>7@rLcg`X36=613SC1mTuMnFLcc z7^_l$HxmJOtJKii*J2yd_Qz zX9XRG6|*P$aN<@E&N80YUR(p!#_@|o1v=0RZFA|D0ou|5=Fy<6$rh9n!o&;jSWQ6T zHkG)RmeNjeKzn=fXFQ3E6m7sSEG0q${JF{s{k5l4iCsVqbR?^H_PzL|Zw*x$8KE=Y z)m=989k+<|=>dpKoUk=mln4_vudqv=PP4v)#1hoc5FK|OAdoYvIA(JlWN2ks=Q3=? z0>e~_B(J*Rqit$z&86bTBqLq!xDNoKW!N^2@9 zfqO*l)7ig23jCIK4+26fh&ZqzhtdV)0Bj7pU5qf!REI>>(hHrhtd9hEQa~FC3?x;- zo{X!4(-P=YQ4rnM^<=0gB8n6C;#oYv-N*3vl!DnU>z1+d*?>w(iPhAT*hI|pH8NTp z)0F!^@(}_s^FdJ>?f^6PQv2k@PBCgOFazknCg%k#F_s((^c2Lr%xq_N?vqg&i?K5u zW{LU{$$n%%HMvshzc9gpVLC@JJ{5(e?{f&!GPy4n^sl%LHxD}Didthz)HgV;=PFMY z0e`J*G=?Z!BFV41(Q@jCX!r;+l?EQ$FgDC(@KK~o12_71z4;T1F^0=pWF~MP5vcYy zCQ)^>|I6Zmz4xk$Sb??@d}35G&SS_wWsT5<2q{FlyR}-J5xpzg<{1v3Lc;E**<_rM zMtSb1)+bc;$DlPiFXQ`Ip*r^Ad_C2QOXE*`bnZbo8prtV&qEP|OlM}2xx>=YggEGiCjMd;$CtsM4YUReO>T&KEwfU!A!WZl4O&o5p(7sB;~Yl8 zT4Hk;u;u?psO?hIrK85uih>!}QnV_(aa2)}8S-;h(*W>YCY;1?I=?7OCEGAoIcq2` zI0ZmUqV7sL-#!)CxmDYw3FJ;^bq?+gDQMd*#o8#C)!XVpSf@DW4ZFSHoSX8fOOe{R ztHKAA;r-(wlIIhd?!%Yikxk@1Kvy^k2N%X}Wy7gy$B5}AI0#b8Ryx%9MbQy-(r2;r zp-so*6rR%@g`>PNbiNy@O3CVI@yL$j@Hz->H)hCg+(bZ|;=$>Ujo%X1O~h8x(!SS* z5M7{qu`p-&#E8~9o`sdebh3#S7K=(f zMBCcc@KHQ3)QGPT7Nmu31vwH?o1t+P)>xHgJ5y+San)h0X5mX*yH_KQN}9_pu)@&6 zt2T77@sl*>oW>>YlKm+s`qyG@Xs#z5b{XzQ!v^A#DS|w{N8G^>#W!=VlN5&|v&LGG?lTXE53q}dFLlYUnf_I9zF3xB4t6%ZiB#jm0-DStUB9Qrn`0zqE$6I)c!1HS zF7GF`=9*6aev#`QxmOiv-~BlJj@sSu6AHFG)8^41ZO!R7Q-jgn28 z$cTzm&t~@9V37!D^_$61sYH36;&6fBpgh% zu2b6uYH-MS1^4+O9jcZ1>&DWnvVrWag!JBOKuh=<`bbM@9{4*ExlPj>SBhw0Vowow^xe7EH8fCV`wM4WTH)=jg(Q=LM3Zj~w%iE-@X_ee2OAvjT+x&|7%tgfQ zz6V?!bxUn-V=T=tV|{>^IGXe+Q~REUkmCb%i-C^3Na?@)JNl&72G_h|kp_)n=PH?j zwajVVV8ctG<{1It+BinNBP#nHvP5@)+YtCosnZw&FcXBpVxMDJg9xt4-9Yf%aW1;T z8l{LDQ&6uIumJJshAPaNkQDMqOFF`bFQx?&Y!KlPKDaL`_L?RtHP=HpnQ`q% z|8;!Kz3Zd@6rbY_2*<(H^7Lmj;G#d+`bs>ie{+CQuk&v(J}Y;`&4|VXhQT|RoBbB1 z8Hj6OA_G@Kvtp2u(`Fyo*lbo*V&WI}uxN$_CW!%utKS=43A%jL*DpBc?~Y{p;*}J{ z*q$sNE)%a36r$k;)umJ;PgY1Oel7BI_--k`41@A5Vyx^K+1MKF62b?83ysgRj;4l3slfSAl!R$s%yhM8-ovalaJ&-iC*!sR0L zTH7OH_9KgB%p7?lrXmPt*y7MNN6*)%hJOqOn>GAClXL2F7;$y8Z=Kq?(iK_8_X}d) zED__Q8qI+D+eZ6%42I1@iTYEiN!ejp%OSe`XE8U-F2Pb!tB53mpYL%10Z5?w;NWOK z?H_i0b+H>s^Cpf}B^iPw$LWuqb#wzaDx?Qp6;Os`sU-^6KKCgVsZ&~jHcD~el_^U| zO#*P8*P-N~n46MK6=M~hDS(3&cGn~e)f)UdZ7Gi|114bdcw(+Ic-_S86?Obw8MFh6 z3{@Gc-TO%yYAd1dosYz20r=1n2oVZ(C};qT0yJ5XEl#=@9DaFe!?_@C?m;B}7rV|q zHUM7F=G=2^ z8lB17v}%zc$|HVB;uuZVy@Whi>3zG%i97R+hD zA*w3LSh_GjNdS)(8siHev{DX#A}S?AcC0T9s0txa=I{+&K2XI#S$p!kZ?vS5NnwRK z&v=DWrJ<&H$!w!qXy2SLw{mgoazIK59Y=Me0GoQ~oy^BQB714r*H{dptBP2tU1aZE zyFIUCzuH7)of5yPaj2C&kx~LEC#MBWZNmjgn9Z^?QJiDw!3-yg}BTY}}qJlY$uR zTZ&ZTy}r`3pO{2fKe}S;FJ5~zR`AS@%hji51ql2mZ(JjWK$2+*$#hytRnpyNj}F7j z7idoIha5R{sc^#GAO^iybx)uhk#SOje-+I?F$+a8qsDJKbF8K+$te&x+(x7QK*4w9 z>75ZnBx-B1=LmVHs@0e+rqjuphPBfpl_FjrsXfL%#BUyIZA58!hcb}7d8$$Z9YvP# z90@MP+?3_&oQAfVF>K^F}h@nFJ* zGS~nQ43X>1_&SQH{C^@=E`X$37U)M!7oCGd=w6R3czwPomzfStupWf@fY!kBWs={@ zt8R(t_yDJBEVH?69ah+cL~ScX>CBX(?faKB-{cb-7oT$(v=TYcTBr8Hng>inwduQ^ z?2?JoJ`N0*mWc$D@PYxNXPt7LV4uo%A>-D^fGja{B)oI_1*YmBVEAyrLEvmmsdwx1?X2plQaGr`_@Su5J81tZMwLO24-z30Y;cuslg?F0 z40C69Yktjh9Dwy|ObCPUpA7AVaQ1ZNu%^izw_dIaA@ZM`QA)C%E`}Fq>=I!jx@;~T z5y>E!8#Yx$?1!?ukTP-n{Y|+;$Wx z$4){zhJZ>PGv3NDLMvjj_7p;fEVDTEoo3oT{NNA+PUaWv2ny;?DkI>^LYFAdYqUTe zDx)=QlkZE~*Z{iI4e98F<^nP?j8qJ@vcO8c?rcD zG!ha_XP7M_C`{jLz~%%bLLD3T!m)4cwmN(XZd|e@6jPt5wpyD2p($KqVb7L}6*x4P z%*3CneFQgPgu5g0C94w?)RSOY;}DyE-t=@SUFGLfGnay(E}0koYqIZLGOsh*fL7$V zi34hMs@0sVAjz7r>Y`Y%!S(E!A6sV{@PfG`@JC1}No9H%)~B&Jf*bq@iL#oB)4~YJ zD7e>JmITpLbr2I)%!EPaVmZVLpAHgA9)7Ce%|Q<=&C(xkE315iY^1>H3dFLF%*z!( zZ&iqfr^|oDgI0(ZC&d)l5RF2 zQiG%Jgv#0DdJ__=zL7#zRsm>Lgi$9vD8e&`eT@thL8Fx;9R%^Yk- zL;U9ypeu-a>V;~dSW-AePBNM|r?@xtt)%OM7_%l+1*8g22FibWBMa=y9T8Xruw#jG z*;Eyj0>`&jo%iOKa>MV;HM%I7P*^%G)p_K+8+ol7;>2RU+YjfsbI{4Wiy}3k*)ooT z0Pz1I@dh^p@uAA-xQOFDmIgto8rTHNhx#7g_RW|-Hegk$-zka%0kY*nNS+uYNJs#K zl$w}sr2v0-D5Bws~J&Gh+z=U2ncmZI#!*}|A`{#tLyY&2RzQP){E77mW4 zMZ??$RgKi$L{efWe14u;&R!uy zF%=OpXZen(2?Yi-Z5%0ipv$|O{*{hT3V@vEAZ{f_wgbAt5ZBK@cLhWOVL?FtChaac zEE(wo^o@Rz(EcRWo)dyRPlN_`*Ai}^QU-<)jb5VpoG9`+USqq)v~kN+Ix)&O{O6El z!%%JO2Vak5H4MS}vcRlWRnq+G@&j@x%=1p16;1AFahmPv=cS?gERif`0W^>3k-T)0 z4IK#=vv;hSGyvdnQWtd+M{zCTel*-QIFNz(B-oVxs{|ZN+!5lRbf}~iL+0(Gc$GRy zRk~L4Ls^Z9$$A;7ytqKp?aC}g2iif<&vvGcW?aZBn?Ia}*a=)IG@g%nuz&y*pw7mr zQ=iM)S%70K{+mspD~on1qni2|MOHfVqag%t`soNe&kM`kCF6!GtOnTa+`D3oqG(0R zi}U3YEiOmKpJ&P@DwULN=2XIBVV7BK04|=Q6^?}j#4n|#F4=$8RTq=^nf4Ct)joEz zZ!X?Dp#cVM^j;P~#6|cVL;GbI!fVnNYW2;b2pxoi^V7bWT(S}qL_B5aQhh`a)K5@M zN3S~)MquK(iT0P_(N~o6=B}dZF>z5K7ddV4XGGZM`IiSdF$33J6|kT8#8+@N(LEti z7Nfyrjt`CoS*dzh_Y9QOe}0h%E)2`eFtI;n2}%uO?8lf+7grfr!I#L9t z!wAAyRY#1iK$j8E3q^pZCPJ3zgEUdWDqC?tK@`h1FKs?qC55EgSP-W&}{xHZWfE-Q5E?BLN+QF~1gI1Q4sNW8EQ`y(gDJ z6dvhj3i(Q!=qbX!HD>t_SiDT;WaTphsp|+kB)tD`@VQoMk`;qU8=XNGie+^J<(Cx{ zx=jGB7vxbtzxLFp$*$=VPVic=F*x%}v{DPlv|#HF-BNAZoU zfL(?+Oq?qUTiJ<+-S�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�K@bW3x)FDfzJ%7a48&u?t_jyB;aJ>w6W!tlBD7uj z&J}7mnJCmDL&GZ8viNHPaP-4k;8-v%hs(mfn4vMQY=!4I+JyK`ql*o?59~t`Dld{43Q?*y32kOwD4bvy%e2MIFLvL&Er(T%eN||3mn=DGo!7;S_uvTUamgzzi&d zlZz)u-&h{y2$6Se#~+On2Y}qO@df4*fR$q2HFJ(}0hfjw$21r#R*c9R5s zQ6YS|?V7+gqNNU<3P?vgp+)0+lR+`D;s)Rbb_h}lW(*+!eAX}{ku7^g|3Z)O-eE;W zOga-Hp&k6eMX$D18IfZc&>}zgUvJ1Fy0h*gBU8@tf!KnVdXy4SC5KwU4?YqwP29*# zF%}fOMgCy5vn8?iKj@ceShVy( z28_xERvIThC?houA+P|5Jbs$f*At`4V(!(%kfQ;X1O|T)*v|$~n|YKJu(t#XVg&d1 zaUzfZ5Idy@phlX$iIIn4Vsg%OB0=DYvu7|t#7pr>TPf_y*+(JU0YaeLOcGaJA_X()|ExfdiaEXc;q?!+n3OSQ*DDsUozQJ zG0FffEQc&7Ki@b-E2Ix(yOldv+U&L=&@b`4w1t^(2)}-4&n8Iya1z1kp4Xww_ac>^ zG}q47Ebbe8;HljQ1rSB4@S~9Azw3bgCSyAWR}rjxaRY35%KBLLuy(ri=)mSv7*GsC z(rT~GlBPIqE%;wt23C83AoaU0m_x+Mxz^1?0trgSdO|-YfhYO8a3v42C+4k`?NsoL z+X=jvWX|hgx@;}T;NJ(5E04K`;z#y+MmYqM^7WB$15LoqU*uh-VA7JWeFX5yw<8_I z%&}DM%#R=G1_-smxFp{D*0Tc0Y?GC&;dDWvEWq&!L!XGy{duu@e|j)A7!-S;roB1G zPp*3FA#Usd|JfKg4uuHqz8|j^V~f;2O^Cp#?7GJ=`&-f@36oLSQOj$EZn7bJfEF-V zOs%;7$7}eQ?~@kEB1|6YkrpM9Ll#9qSrn&)R81@PxkB3M>!ioBO0y3p>k%9MGvX4p z;y%gMl-^nAq$I;5vOXmH#iFv>w&eJd#T{44hG@a5v0#1|IbgHo!vZXECaiSJ%!|=j zG786&bEf3-{#CUD*oRGaGY6SKJFJ2b8VcDnyNZdAv<@xCUa`GjTKhPLZLT(mBRm82 zr|om^*#y@{3_(aHvB-i00U;nmK9MP1WY{oOmQk>v%$hjfnaxA82Q2^V___foE-P$Z z3wLw*1A<552gm@?SV010OP1;PN^Puq5st&GmvRCK$=q5q+?fPX);zF&$KC?<3250i z7_$0q_Z8j|xfVVIR1uPTC{T&6);u{VShf-37~%Vm=G~ZmFnVHy+FGj!+0{N0q1IS8 z^qzFUXkS=~0Trb_GmuIAAuU5#2)~Oa06*3N`KB}{a@co>e7?>naZn5*j)=jvm&7t-o>6bS-}Bg zUS$%Jym}#9I@pH$fc(t9Dk9RWFCxS9EFf~R&;Xp1yCMzlOv+kw+pxCo6D)7`f+@;rv1Acd&q8@GM-CqqI`%0FV!4St4e8R~D<7 zDJSEL2fow-2WjzZvJgMkerOI1Rt}@-;_$xT0ytd2E5usvW`cksaI|guL=-kcUQ+g{J2yf$xlb|sr~gk0m$|a#kER1>tV5Xf|=zV;JQ!= zYYZ7;J^@=G&V&lrYS$c;k+L|XFWZ>tk^Sm|8)A_zFQ?ISM4C8q*FF6(3=04^5f`j5 z-yt!-#3=k)m0&;ogZF$Y-N3~sD-Ap)dgc$mOb>qlyaM_Vj!IFUgWiV3Kv`Q$1Oe3q zR*Qd~h-eJM`NWV%blVbGIo>u?^Tqi>&Nl%NFiK{w`W<*nrxV^NQli zs}NjUgdUM64z|Ore!+C6;X9D1mR)Hq1&1LptcPLvsvfDNWqgB&_SJ!EC(?`=yya z6ELReGog?uygvTOtkd{5x0(=Qc$r)G6^El^-XUJNu^V2=p2|g%4erD6gLt!@j01sl z1)H`JziP*a3_0LJnTkvzfdXZR06JjC@`0Hz4mKfgH1Q}WUBC(jz@U@NSd5th8B9bm zGKpE$Qm%u6ORR~NKe5J0hAINH~6r7td}%we~hmfRI_(h6rJN9 k5p~)5EySYmZ12V|7(cQ`N(Metl`L>V2;M1& literal 0 HcmV?d00001 diff --git a/assets/fonts/PTS56F_W.svg b/assets/fonts/PTS56F_W.svg new file mode 100644 index 00000000..6d7648a7 --- /dev/null +++ b/assets/fonts/PTS56F_W.svg @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTS56F_W.ttf b/assets/fonts/PTS56F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0fbee64d4fa884c4412dd740a82ec081a6b515be GIT binary patch literal 424296 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTS75F_W.eot b/assets/fonts/PTS75F_W.eot new file mode 100644 index 0000000000000000000000000000000000000000..f12d2ca7c58af322f896f2b1cbe00291e403b702 GIT binary patch literal 200631 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 z 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%0D=0Tb9s$tngFV++-F!cZLmnx@Pwn^VI)ib8>a zqQbES00D-}w(iC#6=nowiigVCQzx9R4BMU9CDz{xh1!9EFmPreYXLnLR(ZCiHCjd< z5EZI~q0WGO39v>6O}>F`1!Q!%XVyK06otjlX$3K$S^^PBdF@Dm97_mACM(Ec7H}Jy zC_2x)kQgH(EKte-nDi`-O~S8rBCrytF@X{$=bKc`4vI&x?Sgk)zW?oB545ltm`+2( zFgnhhdX$0|sPm@nao&6Eny#XbHgu<1*C3EJT2HWTs9D@)C6Tvktms zCL2DJy9@;eB2+?1Pg*?q$T1U_Y5|@TNXxA!RMKUfQY;u`(A`djBil75x zH+K>{rKCmSvtR)5$53)dZR@eN34oeJz_h#s(2cUFq^N1{FxZ|?>u?(&Ay>#kwUnvM znzDLUY@CCj25SS}AleODKn@rx1$5Ud6!9gd&L1ucmW=6K?i6_J@c2EMr61+j3 zGug^^V0u#Wk(hzy9}*5DjHoccjiO7w>5^N6*4>h&i~DK;V`HXR0&Klc!>mF@FS#oZ zU5_GT^Qp1-5T$bj$?$0$vJFWR$Rj}pqY{|7Cjdy2Kxj}Mm#Gt@v|;i+*GMK|k&cii z01X0B8EFQPtbiflgs7MQh^S16#w0`lt2O}|oM&u=3thoNZ9zCiAm~|?0@A<~Eqcg` zLds(yY}8+B&yhBw`yH`ED-;1kyEwB00m5Pz`vZCizTyOuahMq?jT8e!Y5+}dXA6)$ z+K>$2hQp24(kE%$jTQu-qTtR?j%`Q< + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTS75F_W.ttf b/assets/fonts/PTS75F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4f038bdcee60f87c1d6eddec9af6c90df72ac1f3 GIT binary patch literal 458088 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�p98VT59#57UeMGBD&76fg>&1Qp8_70EDc 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

      2JQ__?Zls72nC>JT=wQl%5 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

      n&8QwT6Vl|Ws|Q(9eE8fR%&qFkgkGzY)mNx& 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

      rpD0ng3?iyyC2R1s>8~Fff=|^NO?P6=%&W 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

      QUGMjR#tnVEyD_W$_s8VV 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTS76F_W.eot b/assets/fonts/PTS76F_W.eot new file mode 100644 index 0000000000000000000000000000000000000000..dcad7e933cbaa4fa46abc25e61981364cd455868 GIT binary patch literal 153061 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 + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/PTS76F_W.ttf b/assets/fonts/PTS76F_W.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9a2a6b803dffca5b765deb2818c84c10b4a68adb GIT binary patch literal 363052 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�ds5G!-V_VA{fl**V&RU|zgVYVU_kwgb(_k% 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTS76F_W.woff b/assets/fonts/PTS76F_W.woff new file mode 100644 index 0000000000000000000000000000000000000000..45e95c58e7b17cb21e71d2a5887c47d3fc98dfaf GIT binary patch literal 182624 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�Lq^2Z{fd0W2y5s3Yb)5`VBKUvY?>5u$UFgOhm{ zAVHn>0$zr6%|f28;@N$?-&oP&q%^<_cm*fr%nSGfR-KfET%C(FeYS8-w&RMyWTJO8 zmA(4pp3%X3|EVX^*Ba_5x|3${3kJQneMOpU98`1d6u~Yb zrK-ZzypdpycLT@lY9gi?oKbO*{vfl-t-ow%dBf$yKnnr+ffe5z;b-u+d`Me>+mQgo z$5pF16W}!OH>!b?dT(McYz19C;w-w3?Y0$`Up2UBL(!+z?z-nHeOF;{se=r`!IgWL zghE}*TiiJxc>yak{zCKEdV0s}$S(YAdPjrss>*#by`zj!NY$(l>xu18!9w`}K&MA< znPp1pL+-8)gIFsX+7t{tcFfd2QNx2}691c@asIAKU_3WcGizL>(b8Vj!utWe*zAK> zWPrhygA1$Cx?w4DC8o%^GT-A*W(gaL~Aw^AGWN}&3_S%Q0kM6qegRJTH z+u6t786s1dxABcLzmq=6{htr0bmd0x;%Ca~YJ!4>2PHHZfCKc*R`~l-Yt5+KAiyj&dOJ-7XTGWXzV4?O zUDJ!PCGQ731vm$L_oMLfLnx!ZVfiW&Uds)55O4_aMR+p@t?#uGCHdg?ya3Px_<$Ln zO!^d;=T)ziL3~1{gD&29u0|88E>Q7ps{nF9jlVYg&215jw)xW^nEvaXX}vD<^3JA* zS?`_iWA{%V1HLoF9yoNv^quwgo%tEboi9@R+SqFT%6ix?NPJQD@)Q`*^oMF%~$U zirL7mNR7xFTQKv+)@$Z>WgSFe!vG7wgaAjFHBw}5%R8Wz*k{Aw@ zWWtfh294<_pP7F9u18mzoB!++>^ipfTPs$4Yx=LIKl0k@)#|vr>!~fCMLbr`M8W_b znKp>SlJx*Ak1Hr^=*21`2^Mrs^PxPo`osVvRd`it1s*^r?{6Pul1%4*3_js8z)G2S zvTFZ8Fn)nAINJsqqd2d+`%uY2fDx4(!W{!Vxt{yBT-m#%27OA&H|{z)B5Go%pPYWB zbPv<8FHXO`dM(pVubTcH(co|By|?i9{!e~)Lp_)6h}!>P2NdevJE|h1O1KISj<7~! zqfQi2$LjGQbqG73Y(UNH)zzmIP<5cPnTNa@ZZc85JU_u5C-D?0_V|aVE$eL$3trrpEEUPHDgMdp{(~Pm z=so|_o5YuIstzmWG-k%6kIXB(=2I(3|c-d>T7@0!a) zo}BIBpO{O|oaHEp5Fd^oRr%-|>_`E6v@mHJqQp4%rTbQR1MBV*zdAj6Y;47Q)w=tq znK=94%%jvcQMKH2V}E&5IMhK5g-$u)Np!FmrE7;s_|GMMk??m_7(u=aY&%k5mF$FQi(IQkz>3cY5>x9 zwSI@5N=g(kAlGvgs^gB`4g~R`LGuLFyB&{X#~$n`IMnWl0KZL~u0!&U!(M5Yr!Gmf zeYZZE&5zPs(eaPSeNa19_S!4SxlF-+R1OcauYy;z17L*H*b0aMEC^iq-Q2{1+{Cbm zRRAL(fusr}obQn8e0RWfSd07YBB<)^exz!+`JmZAV-|@#(%*A*XA(`a~b(u!j zA?w1l3$y))>_xrI*iNg)l+5J=ONY|yZ@(gWWp?@p&Unb9?=nTKslKe+b1t(!X$_dR zIFk{_mX)jCzi+X{G=13S51W6k)wYgqZHwpOe|u-9*qg++E+JWufP`I;;27|n$II@n zuaPLF%__!4i+sqNP~*;myQYW?mS6Qm_+*&Kz#eYAlMN$o3xF~~^?dju9WRIN6%%n^ z995Ha&+As^T_laxYsfslVW$l{T2IvT`CVLgux!Prol@LBeVuKia}BA7{^9=WN74Vs ztPU&hEI_PE5F{a*mH`^Ry4$RDf3jy8(L$ z%0A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 Y9bX??&OM^iio| + + + +Font Face Demo + + + + + + +

      +

      PT Sans Regular

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      PT Sans Italic

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      PT Sans Bold

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      PT Sans Bold Italic

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      PT Sans Caption Regular

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      PT Sans Caption Bold

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      PT Sans Narrow Regular

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + +

      PT Sans Narrow Bold

      +

      96 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      72 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      60 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      48 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      36 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      30 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      24 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      21 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      18 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      17 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      16 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      15 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      14 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      13 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      12 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      11 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      10 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      +

      9 - The five boxing wizards jump quickly. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      + + + +
      + + \ No newline at end of file diff --git a/assets/fonts/stylesheet.css b/assets/fonts/stylesheet.css new file mode 100644 index 00000000..5422f333 --- /dev/null +++ b/assets/fonts/stylesheet.css @@ -0,0 +1,38 @@ +@font-face {font-family: 'PT Sans'; + src: url('pts55f_w.eot'); + src: local('PT Sans'), url('PTS55F_W.woff') format('woff'),url('PTS55F_W.ttf') format('truetype'), url('PTS55F_W.svg#PTSans-Regular') format('svg');} + +@font-face {font-family: 'PT Sans'; + font-style: italic; + src: url('pts56f_w.eot'); + src: local('PT Sans Italic'), url('PTS56F_W.woff') format('woff'),url('PTS56F_W.ttf') format('truetype'), url('PTS56F_W.svg#PTSans-Italic') format('svg');} + +@font-face {font-family: 'PT Sans'; + src: url('pts75f_w.eot'); + font-style: normal; + font-weight: bold; + src: local('PT Sans Bold'), url('PTS75F_W.woff') format('woff'),url('PTS75F_W.ttf') format('truetype'), url('PTS75F_W.svg#PTSans-Bold') format('svg');} + +@font-face {font-family: 'PT Sans'; + font-style: italic; + font-weight: bold; + src: url('pts76f_w.eot'); + src: local('PT Sans Bold Italic'), url('PTS76F_W.woff') format('woff'),url('PTS76F_W.ttf') format('truetype'), url('PTS76F_W.svg#PTSans-BoldItalic') format('svg');} + +@font-face {font-family: 'PT Sans Caption'; + src: url('ptc55f_w.eot'); + src: local('PT Sans Caption'), url('PTC55F_W.woff') format('woff'),url('PTC55F_W.ttf') format('truetype'), url('PTC55F_W.svg#PTSans-Caption') format('svg');} + +@font-face {font-family: 'PT Sans Caption'; + font-weight: bold; + src: url('ptc75f_w.eot'); + src: local('PT Sans Caption Bold'), url('PTC75F_W.woff') format('woff'),url('PTC75F_W.ttf') format('truetype'), url('PTC75F_W.svg#PTSans-CaptionBold') format('svg');} + +@font-face {font-family: 'PT Sans Narrow'; + src: url('ptn57f_w.eot'); + src: local('PT Sans Narrow'), url('PTN57F_W.woff') format('woff'),url('PTN57F_W.ttf') format('truetype'), url('PTN57F_W.svg#PTSans-Narrow') format('svg');} + +@font-face {font-family: 'PT Sans Narrow'; + font-weight: bold; + src: url('ptn77f_w.eot'); + src: local('PT Sans Narrow Bold'), url('PTN77F_W.woff') format('woff'),url('PTN77F_W.ttf') format('truetype'), url('PTN77F_W.svg#PTSans-NarrowBold') format('svg');} \ No newline at end of file diff --git a/assets/img/icon.vk.png b/assets/img/icon.vk.png new file mode 100644 index 0000000000000000000000000000000000000000..dbbb057fea27f65f3148a6ce749ab4fffd7380a2 GIT binary patch literal 3418 zcmV-g4W;slP)4Tx07wm;mUmPX*B8g%%xo{TU6vwc>AklFq%OTkl_mFQv@x1^BM1TV}0C2duqR=S6Xn?LjUp6xrb&~O43j*Nv zEr418u3H3zGns$s|L;SQD-ufpfWpxLJ03rmi*g~#S@{x?OrJ!Vo{}kJ7$ajbnjp%m zGEV!%=70KpVow?KvV}a4moSaFCQKV= zXBIPnpP$8-NG!rR+)R#`$7JVZi#Wn10DSspSrkx`)s~4C+0n+?(b2-z5-tDd^^cpM zz5W?wz5V3zGUCskL5!X++LzcbT23thtSPiMTfS&1I{|204}j|3FPi>70OSh+Xzlyz zdl<5LNtZ}OE>>3g`T3RtKG#xK(9i3CI(+v0d-&=+OWAp!Ysd8Ar*foO5~i%E+?=c& zshF87;&Ay)i~kOm zCIB-Z!^JGdti+UJsxgN!t(Y#%b<8kk67vyD#cE*9urAm@Y#cTXn~yERR$}Y1E!Yd# zo7hq8Ya9;8z!~A3Z~?e@Tn26#t`xT$*Ni)h>&K1Yrto;Y8r}@=h7ZGY@Dh9xekcA2 z{tSKqKZ<`tAQQ9+wgf*y0zpVvOQ<9qCY&Y=5XJ~ILHOG0j2XwBQ%7jM`P2tv~{#P+6CGu9Y;5!2hua>CG_v;z4S?CC1rc%807-x z8s$^ULkxsr$OvR)G0GUn7`GVjR5Vq*RQM{JRGL%DRgX~5SKp(4L49HleU9rK?wsN|$L8GCfHh1tA~lw29MI^|n9|hJ z^w$(=?$kW5IibbS^3=-Es?a*EHLgw5cGnhYS7@Kne#%s4dNH$@Rm?8tq>hG8fR0pW zzfP~tjINRHeBHIW&AJctNO~;2RJ{tlPQ6KeZT(RF<@$~KcMXUJEQ54|9R}S7(}qTd zv4$HA+YFx=sTu_uEj4O1x^GN1_Ap*-Tx)#81ZToB$u!w*a?KPrbudjgtugI0gUuYx z1ZKO<`pvQC&gMe%TJu2*iiMX&o<*a@uqDGX#B!}=o8@yWeX9hktybMuAFUm%v#jf^ z@7XBX1lg>$>9G0T*3_13TVs2}j%w#;x5}>F?uEUXJ>Pzh{cQ)DL#V?BhfaqNj!uqZ z$0o;dCw-@6r(I5iEIKQkRm!^LjCJ;QUgdn!`K^nii^S!a%Wtk0u9>cfU7yS~n#-SC zH+RHM*Nx-0-)+d9>7MMq&wa>4$AjZh>+#4_&y(j_?>XjW;+5fb#Ot}YwYS*2#e16V z!d}5X>x20C`xN{1`YQR(_pSDQ=%?$K=GW*q>F?mb%>QfvHXt})YrtTjW*|4PA#gIt zDQHDdS1=_wD!4lMQHW`XIHV&K4h;(37J7f4!93x-wlEMD7`83!LAX));_x3Ma1r4V zH4%>^Z6cRPc1O{olA;bry^i*dE{nc5-*~=serJq)Okzw!%yg_zYWi`#ol25V;v^kU#wN!mA5MPH z3FFjqrcwe^cBM>m+1wr6XFN|{1#g`1#xLiOrMjh-r#?w@OWT$Wgg6&&5F%x&L(6hXP*!%2{VOVIa)adIsGCtQITk9vCHD^izmgw;`&@D zcVTY3gpU49^+=7S>!rha?s+wNZ}MaEj~6Hw2n%|am@e70WNfM5(r=exmT{MLF4tMU zX8G_6uNC`OLMu~NcCOM}Rk&(&wg2ivYe;J{*Zj2BdTsgISLt?eJQu}$~QLORDCnMIdyYynPb_W zEx0YhEw{FMY&}%2SiZD;WLxOA)(U1tamB0cN!u@1+E?z~LE0hRF;o>&)xJ}I=a!xC ztJAA*)_B)6@6y<{Y1i~_-tK`to_m`1YVIxB`);3L-|hYW`&(-bYby`n4&)tpTo+T< z{VnU;hI;k-lKKw^g$IWYMIP#EaB65ctZ}%k5pI+=jvq-pa_u{x@7kLzn)Wv{noEv? zqtc^Kzfb=D*0JDYoyS?nn|?6(VOI;SrMMMpUD7()mfkkh9^c-7BIrbChiga6kCs0k zJgIZC=9KcOveTr~g{NoFEIl)IR&;jaT-v#j&ZN$J=i|=b=!)p-y%2oi(nY_E=exbS z&s=i5bn>#xz3Ke>~2=f&N;yEFGz-^boBexUH6@}b7V+Mi8+ZXR+R zIyLMw-18{v(Y+Dw$g^K^e|bMz_?Y^*a!h-y;fd{&ljDBl*PbqTI{HlXY-Xb9SH)j< zJvV;-!*8Cy^-RW1j=m7TnEk!-*eCR^}6nLl5fA~$M-qsd7k&VX<1d(zM?4hf(n#i z46K%A`Gy))LY49};566?b^z(uzNDFCzkm%H$%i9 zawnqFyA`?ZjAt8~Q<;lfN#D8!;&=mUrX7jr`$S&&ll-C7oJoyqZg?;2ySe_asoCt~ zAH@4p*V4ez3=ZILq}Yvp>P2Zfoz8UDoi{(p9xwXpzCESSrN$32P8$KmnOx|TDD=)h z;D5`y8=BY2f6SUUtz{4fN*?lJr&t-yR5`EDTJ!{p1FaXpkPcV4_lgW&qK zF_2fLVhh&q@=ENcDD(*YO0`qHO2vNhxM7NwS3UYEOE2a1n-*UK%IPq*M!7HzmjlO@ zv+3rQlOAe5olb0DV)>5edQ+nR-@_5rr@@bh!f-!0QUlG6o5lLdNviI+{@HmGH6!vX z--`bd$aM1Nca9`~JXDYCIJoQr>|sht=k<5%Vf_vwU->xxGhowVeJ8OR`!=4t2e~OA z(=b0!5BBi0*8jsSis35YUj@Vdi&3iPQ#X-3t>k}fMY^HJ!uk>5ZwD8_W3ULck004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv00000008+zyMF)x010qNS#tmYE+YT{E+YYWr9XB60Du5VL_t(|+U)&#u&wEJ z-iQ6(@tgK=#yj@CJvSNvK>!3qf}q3!B*jUT7+RDaSt^$XtK>MYB;}OyM@+>j+HoY= zm6T-5j>;@ajucs`kTfMzlt_vqDTv|-0t6aFqk*38?K_=mPv7*8`Qy8Qn_z=zaS%xr z-l|<^pS{oC=i9@(zGtoVJkJt*aeZ-paeZ<9)-Unf_}uyT%7K1yeQ|wp{pQyf_vmkI zz3D*t#W(ni>vwW}@%#6CZ~b2Q%<|{C{)S8cHXg|Dg*WSq>x=7O*ZRGx-Yo@BI4R_8AD?c=P{m-S=9F_$ z*Tolj%oo>h|N7$l{j1l%j`!m?^FMy49{aEQJYVQ6=Ff9UU*Om> zy!jybMuG12w+Y@DA^w}bey_jA-|ff$JAHh=X2bj@j_-H+Z-1+v^EYzeZ}sbWeGq(o z!28_m;^FnrecoS%2;WQ)e4}9ZxwpO13;3P>0>7Ep^l!rY-SS#~JCEb{dJXHh0&V?f zU&n70ef_K4{+mH~pRdgJxwpUmWRza_d-^<=&)oM$i11Az!Os@}1t9s=K~TQIV}7@; zf1Stnxd`I7`hWj!d!K(hj_0@XIe#Yt$(ywdmI@O|E3`s)Qj0Wb{1Uzbw;dA_*5xW2f)xPF(f)oS&(FI~Fy7hZSM>r>zKy4yax zzEC6<&bjz2&;1Pj_5mnCSiew4mDA^48v!7~)|J;>1S z?hv{iGItE2MXEilEs)g_rCpMer`x_lyL-TLd5M@ucBgj`N>MDXBa%iWN4dC(E@mJl zB00L<9s1QBVj5A}P|Y8sZZ4y%1vw>B7&yK2VWcY2MzcP9f#h~HizlgPhm7u=m;}p% z$1&xM><3)8!n+kd?np^t)C^lLDHjLCtnoujzj+y}4XBdM`7PSrEvm&emV1vv7!gv@ z96f|-;=|Rm;#vsQyySvhZtqhO5)o)tk*448?5Q*R=1E@qGyjG zgeUnCU0uai`}lE(b1Q;hp@b*ogo+J97YIA2s`d~{u|9hN;(*Z$lJ7ZRy^Pk1`Tixc z*h8j(v^DkOQF8XAv1c4k0Z;M+Stuf!d2@^@8+G%Uf+IzVYftI=`=AT*0HGzgmgqO+2r>331wu85Vve?Rly2x(FR;6~kFo_hdHVJQnIf{9p~N0B zJF3M2v-&z&Dg1Ds%vFCV2W_VDAHu06qzTa1*1Fe0Qzn;H__eAJ*FIKzQ9H^1mR&&!o_wO{KpO ztQF3=_{%@{j|c=7$Ip;l!n=;TnGs@-?=JAeIo|D%X2EuS3za$$1rb;_moddY!dPM) zaD7M8prl4cO%fx)4~*Lfct7G?hZG)DET<3G9%E(-tM?ekgfS4^h;t5Y7ic+<83{oU zf}*f9gia*CW7u2(Tf84hu}3LQ$_Z3#7$pl_e@eHzz}gv6 zfzAd}q}$!1AMPVUAp3x+=SXFd!eZvvP|{*-g-ae8GBFI;YK}4uIXJxApp+ylgHk0q zc?P$oJ-HynZBjM>c_mN?XES5w!lCmR7 z!?1n@w>u$gi%0@Qz?Az4S+c+XD9SdtxB~&nXJYi!%@vAffg8?<{SF}n%2tFNz;-ZX z83Q?bOu3|4JVO#4DRfljWn6NgYwFo`j8>%35r+#hnPE6bq>QpPzCU4e{wiRw zO@m01>7E>nkX0@v)=3xJ&RYg=*;C7HbX}x|iwtd*mn~ z4y0TVVoQz#b#sGy?{RYOutrgsC4=j*%{AuD5itw8_BBF(0=j0{yoNLd(ptvV9s1o} zlwD%1CdP=$22<}bKYEHZu5m7+ZG#)nnav-kTwW#%G40jueMsqcD;AfCv_|U)jd(;O{&~5K?_VQ1Wlc!u>V(<8^6!V)HyJWcdB(Ht?M;ZGI z%IX+fU8YdQ!(5GaQ2EiUdqhZKon*pg$QEM~+skP#Hcl40CX z&#z*n2BoQ&k7MjUE(ZMY04XA-KE|4T@Et>Uht2v$G=gq-LP!py=Y-JWMh7`z3qv!% zN{$L!H#C>tN?{MlDbQ|SBl#6V&8g;xl=U%vzoor+fqwN8-Uo*60Xb)k64-Kq&lVvv zN`NW%AO-5>WO)#_sms|OIbthe{D_6TD%-Z^~O zp=8DsHKFaXv#T6E_CD&_B|-@7R<9C5ww!*+E+P$1_@)=(yczh?&1!?Z-}X< zD6SyrA$fer#N;qV!O(Rq4&KVuC*Oy$$80xuX;&|j$1TE0n&o5Ei$@;}QC^1~1vLi-E4g;$@Kg;a+9X$4qKf%~NV0ZBX7bl;j-`+)JDCz^| zM^DnsA7_5}4zkj`_~E}rsgD7TV8DkhRdY-Zn%%`KtWQ41;_yixeaD|h$%ftPlRP;6 zVfu@E4539SL9=|4a&d#by+=8?@-ANf_}}CF_J=5{eN1y1TOKeBCxrfji~w;)zkZ3E zZ~x;gue^>wS`u5P0X#kDW_4~b(>yLy54{6)6sFOqUXDT6Kcm>)b# zd2pRekAE#MefTz;laEp_j;GX+no2Y%5peDSZGS;Lkv#cje~NN;iHp~MiM~CdTfYd& zlSt?X6?>PTMb($E2XE!D*ypuh{_lxtq?tcLHNSz9nce0!Le2$PPw}Y_|2O2W1)=fd1Cm+LR0oJ|jdzZ& zyT#s>f}3ys^K4en)15s>ySdNMy@($-fM$1bmHFav?Ch9JH@=RO_@lh`D?f>{OOmq4 z@&?L`jBX35z}SMU&p3MGD`=KaaQ52I;x1mKTfa&qA*DqTsSln)&#rTL?cH2^`;1q9 z?*EPJ6+%XG>=Ahe(lCxIa&}zY`vtB&`K?^O@pW9>|0TM!`*fR^*lk`Sq{Qm}&r{7F zp_<)fcJLV2pZsP%{n7t{)BDfSRM$y%hp8^JyZ98*cQnEH zbMfj2S)Dw`xV=sAEkn1#xA$n*pJ3eHqnIDDJbpLh<}NXM3cKL&k*}bhT_%JMr3-Ai zkFrZH-}nk#cb8kwe;;SB{7bs^ZHz5RQqitnraSo<+w+gHTffTT(U+2A$2gp$n#+ts zM>D&|^=H0~;C96EJ}F6VyyZJE^_w{tCmeLdJ}chA>>Px%-Q_xTaoS zqpFT+x1U05L$SEdmB+pXkrKgOpv!%7%*+q3Fgtvb`=9<1&R+RRF7ADd6i2GXRYZ*J zE?#1H`W$ZcDnoydVtxs7MyT18&I-x3CqBUO&97(JzDn|IbaRQL8{a^8@iMnx_+i?M zPe5Lylq7{j2$8tE#qQz-!q~FB^bBN4-`(ZB%UpWot9j~O-$lQ94UM9lU&kmzbMPeu zch2pP|9wtx|1^DjPFc>;c7e+skQC)1AjziW`rG~;4z9eL zi`9$tLty{-S(XQH<@DaqvA+K^v==WD;|M~abxBTZ`pq3&e}>AA#igeR;{`Hg=KD`` z^_f3Px%Uk1>eFa6<@^ds&Z%a{oP6qscj-^J7(B!FQ|wMZ%KF|f z5@S!HFM*QSsz&C5#ie)f#5?~CWp&8VKOm&U!Ik$QMdswCf6D2-4>9%^C|M$_775Jo#mR3ab}{_JaB17@-za^&{l8<<*b=UADJA$hv)i zwtF=5tC(^@H(W5RU#2_#1e*t+L`gFpBNAymB1?{Melw51^G`w^7`k(yVtM_`7MI^vpe}1w?6)ToZtNgV8GVbsOoDdQxn~e_31}hpFGF*T-^J4*7rWl>ih+?F{C`ADG?I^3O6xANv z^G|>AN?xau;JB@{{Z9W zHoBZ)%p4zDcI!`}6)1Crl#0Q1NU0E6l5!xY3(_zmWQ8sFz|J^doshdzZan=BT>Fym z#Bc6$|K)$m>D^zVuCL(wGo(?}vnzD{NKP##1+uBA>I32!@Zka}JzCERIL4ljAKW&c!aA@{~=Uyz}elOqrLYF#Bogu8EGtwgBvJQky6I>YowHv zc1Dt#7)OTH9b6i)rly`Z`EmN)D;RT#wllon5!w@MvxhEbWCNF1le-hBUQgvji+_sBW3clli$-T3_kw`P6+!|YbKaNQbfGT42p`ZCcE zBm#xD)-y!T#lEdGO)~Il22YESHbd9KDrt{v=uSq$JVW5XP4E z$%h$MuOLMxWlb7SiE%~96-9lWve0ZUUZrRj=%T^5=eTZ5N}jzdPlGHV38aW@H@6An zmb%zS7JCG35aZMw@LG|5z~)5J9HVTB@6H&86N+kyDGyPyVH{4$x@zD~>$V>Bu&`t}}v9MPtr z-g^`yms~vf2qJotw$od#B!^etPVybYutSNdFke)Mq?j2}hpm@{-3iW*Xf>lWN1z4W z_7(`s-tnWP)G_W(5n?_e#x&rDQ^=9U>?T8Uq;!s!HAZSgVetJHBPv{UwEYSY7;D)( zcobB@>Fp1ZV~4gCu5;AOV-60!l->3YA+89?WA&Wb>WTFVTx@ zB$XJ>ZlUcA>>)W^03$*eY;%>EI)?RKtf{c-khXn5NE?iahMhZ{oC5i%aiyJN|=SN7P8HN!T17&rY zx^8gYZKRl^%0q%bXV~3Gsv2qbFxt?!_bIEAW_gY6<^(@%ky;TW#Brc3JW4mDWYJoa za>ThvGrxqfCH?vHwA=fnZMT(gm136@d?gSxWvAhhrAca88nVchJ&Dh=|0A+PV z&XE)hLTaSSkTc|nkP<~kn1&oYLL{`VNUo=vq!ynguTnpVyb;40x1=d zObP>13WS8<6IvLQw#1YWIgoN-w|Rgt6|=-rmzJ51-}u+WUzrBeW$C zEur19f4M?E0!nMtY=KaUad$xo0jWJ^!0=Cj=cw!d{E-M@%%7WkVe^g%l_W(!jpT#1s)3(r$$P_n;e#R2Hoa zqOiE+NzP%k<|s&FfXaG$H!$BlLRCFV+pj2vV1DVXl+9z15?L9HQY5X3MDpkmvOoyP zaU=?fE^A_NxN%D!TC&h2kx|kzzf!Rr2edH=m6;7YtZfKckdmNjmSmlg+0gYnhH-;d z7AXv6SutNUT#A7QCnty$nav+XFJ58hE-0$&l=DX!bB#8Z3@rB!h{3Vj?(o5LprKjp z5wj%4K=7Wv+aY40Id~^hLN`Q=)*L^vL~BXcZO9?e#DvrtTh6GC3PSK$TaZ$q?>n?r zl*OE!1lB5Y_VoP#xq|TyXPmDoUuJa7X?*w z38^JHc!D2MQq%4>2nE_Un3O?h2A>F_L!=B@q6@h;3(c~WFD1_9H<~Co+LFwX($Cs7(@&hZHPG$yKZWfRRvNT#sJxk*g|5A!VLmRiLERl z4n!hCBw|03q#~ygjY3&X#1pfkFoqNYe(cH8;$uLlj4}41{!0?Z9v=c)DU>eIMU9kU zI>AfHI69(_%x5*;k4RfUO85}4))Hf;?|aI!LTf>Yo=izf24xk-TGH5~#7IKWcOx-* z>bjX89|B|F6LTUXNHJ2D1@qaA?RHB$IOcVQ1V-oa*&`4bTSNBjEe;7Gv)P=XltdfL zZo8$bOP0%hHk%Ej8)=$3&X0&Jsmhvd+mXXv9=!06Q7N*#@jmvhei_>bA3@hwc>6nk zKi1lJJw$@T>yY5 z(HU(GB14Rj(u&@X_@PEgi7HF1@JK8E3->rrGFCD8}6 z)}S+(3SkAoIZR5#ogj8wghbJ{!f=io99c+g(@ZBLnaLs&i6}jB1#_09FyM1U3W=_3g7-+K z@4NFOzTZ;TOO!Eas{lz%g5XD-+tT+ts%D@0a-ZNjq919y9gH1T&yWfb5v?^!3fkS4 zjG!zuws067i7qhqk+$uK+0!%)RXNAG#Kq|eLP_Sc8AVy*oJWWZTCv@%>DrEF(O|S- zwOUb?mS)x=SsmqnN2Tj9*`9={I=LuX$j%eubhsWY@Obdhx&I=<0ir#U4^9 zgfL{$QrLpN>zOq*Wm$5uI!7suQkJgoiOy5iB~@9``++1BA$f*Pj|(GB)1Y+0IJ89X zm^BNmDH+F>m;%GllGBu?&So>DwsgBSZX76^#Y5;kQa3Y(aUdsXH(Nx`6jhBB5~Vds z!O)K6)IkQR1Z8ayNJJ_LDG@_J2!-Ja zz$io3fh03T2+<*>AZ7s}g2>Zx6_#KPDT2xo1UTpMNfWyr+Rg}Q+VfLp`B zcAg{z_=Hsoy|<4a281eT$_nQkxGlnIV(*c@r)=gVDe+;zHVtZaKng86_N3es&Q@q4 z5W;{pxNb)p22xIBqtN^Nn6e>{10s21k__WR&YVrCU5k4V@qo3G^6E7xYe*42M#l99 zwe8WiCPj}ZEMifUr9wuBh|qT(Qd`P{V}kdLs}=a3ZxN~>)fM*W04XxjM^e`!h*S1*dWs?=>jq&; z(4AL-L z9zpUrmvGMETw)jpmh(OK_72%?H>}oYq;;k!N}6VYwu-qH2qbOW(zXv+%;)SK9MX3! zyUhk=Mx+!tKT=gCmo8mlv)Qp(Z)lo|`K+eh^^9SI)fN#!s>EzQ$A`dncY*UYS{iyk zFq_vL%=TEVHtcpSWmVuqAoxI4DspK-T9P+}v?FH2z2|?3&H6O@m^Rsh|(HtCI zVjQ*%Lrct4vh8EQ8pC4m5~KHQH!F(5aBy^);3KQ`#q?z`8YLBFQ=+B8jgD@2j@6ds zVh>YRxN*QoLA%}JLqJJQQ4|<6rIqXR`!FhOHNzTB29&f&B?!SW4n4+Lw31*1B4=u~ zAfbtA1lOZeMrwnU60#uWL;_@pSYt_2;C+uW4N8=ZLyIIKWeI>JlY}OQ0jVW1C&&^b z1%7lS0m(VEvQUq|FYI!gTCblk1YKEm}o10@pjn&4xVgP@*7fH>Las z*GO8@ZZ{YSLMg(~;&*Gr*ip^*peTt-Ak@Qjys$`X5mFEk#LnT*SJ=Wp)gX;UYl-)s zuxjyrN5-J*IpY|}?V76Ualt?sNomBE7L@}@WZY(hSZ@%vL5N894kZnO$o9M?7Lsfv zscw+LBVCx%I;|1QIXcdX{fOLcr#h@v7$S0vAQe)AnjKIqjtRaY`;1Z<5i4X&gkd0_ zUm%(SD=oe(uysv{9xZF6gzOTu17wQ~hJ?cuhK#}(Ly99|Xi=&nTSZxDlxpzaQPw54 zRwNe@aYFDRLyjJ$G(v$ed8$*ogdYc_0A1Du9gwakMo*T4oE3eyLn=vO8*cU0W9Oh7g%f=zXSbJ5m(XO+}U^-F8P+H|!rB;zJ@QM--m6 z9f=8w(lV>}==y=8&@@Fs+pciqKvm6ItuF}PvzRZ~?RK1BY-#E_f=mpavbu_Q7mVWt zW4~g%z6I&>n*n~G8|&WCzUKAaVdb3bKl!mAWp{p;l%^DQ|MHg*+?sLNuz%&fjQs|b zMG6?lfwHJD*09^PgcPZ(nqlZ6Wy-R`lqKUhlDtF6OmH3{rn-R98t)zb&{5Yl##%_3 zB&H4LhYs&Ob!Dk%2l$xStWGgfQdV<93KYhmjUgnDcY)|5QU*fIC~YxHkx6(zRanNc zLr5r!YD(YIi0fOFEXfjL@}J$HWH7oQB!Nr;A;iN}Rv>Ld3X?7sZ6O4Nj!0dRLL>_i zLQR_%AO@t=C^OYqa>_^&5kEC@ydXJ`Dl4Ki#Na8c1f{1UdWO*rC?6;mdt?Q!8%Z*v z=1XGNBT_)23ES1Qab@xFF$2PusJg<=_YeyFc1<1}2}x2D=Q9lsnIWct$R433IY?BN zBqfMMjL>*f;8lr|9uo$l8%W-cFk3NKukyK+25s zi3~`Qr+R4)7^OiM5`&7^5NCLtgtN>h+>oKCn(PWoZ3 ziP5v&t&vhsd&ydgvce6XVQh&p5@Vz)8)ox4LJ0bPVCXuOkyK@cQUxLQKqAJ>(09a; zD5{#-Y{71O#yC34YJmV^bnNXNkh9?8;tU}rv-zAD2KsiKUZ*hx?+_wQH9i;cApn9H zCjIkbF~?ZRdbL7GO;K3-u15&PY}OEC#5s>GYSyQpz;9n>c6gKfFaIPW8_L-svbfCq zKk%ntUlSZ(cliuO<}(E9&vb|1R827N9Xuv-Ow9IgLbeR6PvOQ5WqC|#1>Jf>vAFWE zt7FMT&d)Efx@3Q`VCYAJA6f1nfDp9Zj^qN?XoQd$D=>w@kAcm_ilQ!9E|;VX-7paP z5v>&|2b40*W^-b6tXJoZ&QsMD^{gf*ffzk~*FNlMO}bC54MjNzH{hKoIEO7PnE+W) z*A>7dSL#Q!Q502$5CuYtDNS}g5s4BO?^|5d*kXoJVd9ddX_H8)32sD2k2b|a6zL|S zX!Z!-Bcw(!HH)H5_~cPiOd4JkIY8_kWDi<{QYbkQ)WZ;vd7NrzN@JBF7aA`U%FHO1 zYHCIep4<=MMuN7Oy?sQX$Ub3bC0a_zkj5S3gIf?4A&wv+CV}@3jY4ZnE(K~?q3scL zo-vG2l#m5Ow?!#IAzJqKBg=hBr7Zmj&)+`aiFd4kJ(9ePQi)eT@)1UttVQ>**@FbrYqDLCAxg-n0eE*QKow~`0L?)x9r79b87DyEt`jLD0?y;CR zESCo~bw%IzI6n}Fo^kLPtC`Oh6t-Zy+tBwdLO@k5sB4XLJ=R)=A#-wiAFT@Ny1@rW zyWLS$1E{Q zOHo)-3P_=;tD3W2Hq< z&PvLXl|{}qQWqqjAdbk^k-9a>Lhd@GFqoo(S%pv*Wop9i95wU^QxSzE4*i6NG|0wM z>Y5}aAw*9Ku$FSvVe#rpOM%1A_(6lfScem4?yMpYL29cc_CW06IHu4{5V zb>c>aj_@H z0Vzt7wRnFYY4*XE#Mq&YMI;bJgwc#{M8=4;1u?`aC`yNp25S{vx5N8DGi$I_L%p04 zonvS_qV@=B@y=n4VQ=pkW43HI7dW3N3WL!FmDTip&vH4r1f8ATN11|ygJXj4*{-(? z!!Vr~lP5&a!Tx22v1PS7qwh1#tYOGKyLQ03M8*?CpsE@U4lZ$Vc8+rnTNVT#Xor!- z!NJrk7&^Sq7*o;r-DK!dS5ryGM+#fA*=>nkJ2_A}L){#*y7(kARcQIy#P;(JRr=gi z_{|_e08$#sIYEXHMncZG6v;WTJ^dK{xa0WoZvrIFdr(siWZMq(qv!BwkDMjzi~BUy zjH;Qj>vn)3X9#0YQ#aI$IpoA{wT1-y57D4=p1$1yX)1o(isjxhA&hwM>ADdmpebr% zPAF~2F*COP)Ok$;r4&U`P!t92u4lbjp%rLVAcUZvYjT#8^v{pPn2}nLMIyvB1vU+1 z-=XCURRq$ur7RkZk;H5PNpK@tXUK_|Jf@fvvmlOZlr%_PqVRa1iP1geqs_@=at@?n zKuD;If)Fz)dbClbazP@HQbMW%ksP@jAS4VHYDJVDqJrfTw4P2#s|)hj;nD+4H7Nte zev2s^%(5V>Iaw%NKhpI*v^_=}wAG|8AVVNqg{T^YnWz-qHj_us)uVx{d!CEOG5>jC#N8h(Z&!7NNFB&P%}v; zG)&(krO-`9awEI#IZBr(TaraY3NulDiVB|`-EKo+3J?O96G}~N0jVTH&+*Pf8c8`J zbwOQfT=EpvoT|=v*Wed3GWAD48&-NG4SBz_5_3$dvtxrZrf5f6;(Ag zc)(!ol>PO6&wRd^C}A)n<*5g6JdGR2*GC z=E3dTFm$~7@$YB1{uDW^5mF+};@3lhpLe~fAXqN0(~mFF4_oTy2It`;leLaD2%%Wr z`zQyG{Xty6!xS}A!7vVJBbhJejH729M#{37(BWo{kkHg~5CSj7)JPNnCSr2rED2!% z5;DuFNfI4VN`z8arGQLKFm*)&IeSE|h+{xn4W$LZlJR{+L=b*QbO~}s%?cYaMAn9}H?Aoc@s za2#HpKiW@}4In?MEWd-*-H7GtdP{vf|RdrC96{b3xon#$AW49d*+X$6?|# zYEQe%9M1Qc9bDnT$thvALe&t=3<2moQ6IF1A`4>IlDaK<+Y^TA^Fd`oQY2fTt-#D@ zh^EH-fKnRCY^ujrJI1pP!3c#RNQG$TND;}=BheVC2)hj~WlU2|H98~7IU+(rC`c)g zx-g}_A|Y}{NWB(g-yaXpb4gAafg>|1WQ0s) zVI~f#6iA`4)}VEXkC~h^qubE;0i`X?e1TLYlEB!vbo~aSE#7COieM}D4-QzbPFbza zn9Y`yWl2#KNTo4eVx6Yzx3pbLRTk{;?-N2~vssZd7;CZCP*w$nE!gcg?An&9DrxE& zeLvE51A>gv3Lhhj`I5zApR=RziFol6 zv*pt$vqv+36gQ5P)x<8}?$(eaWwW4f14_Vb)*wY@vtDCNK~pu1Lr;tmtsZv2grsR2 zOj*!ww)o(%)?jTz63}-$lAmguIR~0%j?xA<_V_T>X{vfQ*-9x%$^w@hR!LF_2w_M$ zftcX=Zqt!tPfQcqtEvX8rW9F9L5d#l2COLwt^*}$W)Z86LNPjrl>${vDS8S4DFi_Xq?F_sCplYDA&Pn`feV2`5Je>S0|G@55|lt_imVYeX-JzWR3_RQWA8C;Eu9*WE(NB0@rlHJ8X6cw&4dHflH5f$4LOVkQ& zdk(B&eeSW1pjp7npLmVkT5teW{CD-b8o*UCW&ks z@B#0p;45S%hB$pTT20SamQx_wY^Dyg^-~ri9}?$N1}n+Y(Vm{6O+`^wq#W?UPc~$7 zs?)cdbEH+1);1=TEwNHfb!1uNAHGH@Eu$MTN|U6bb8z+AHHxxgwb@{_LFt-$zC>#^ zadOEB6fq`Z4qSWWG1Nn;+pgb$m^hL>bGKy*)xq_~54)V2i1)p97EFe1y^UkPVlvT&5jc`t3kvE3WJNLYg2+;YV=e zM0`$6iU^@eWU^9Iv0n&`tx!3WL?*?_`Y037d8$R_oYB^T(Nm{61JaPACwq^Kiex1y zi87WD{B%4iql6{95fvkpHKNdDC5c%eLPVAoVrWU;L7W;dvMNaugi&Z!Ve+Kfk@Z8;qt>A<@nL)a2*~ z0w7bypYL$VqwG{Bk!3-a0+Az9mD76_AqR)ln&tkIRx7%;$101khMXfgWU>OK3|SR~ zuptXi78NlG(m3M1V=^L>4HKNimW`B0iM7R?Q*aIbxX7@Q@_SW{;14 z{1ZI)@lUb8w;;s8IE<5$L@K-w)bq(r=(XE-P+G89>`@gZA&%5dMT~;e^YiI@p9O9l zxP18%LTb9*ma48XTCv$&AeBLzsZ`UqElOtQi#cu_DeTmo2_ZmEggkj%k|X`lVoX7b ziM_=VL}GLvYbv(uHKQLWN{i7J5X@#Xio#BTy4}*YJCxKs^Y*v%&ZjPM{z^p_GqQU? zik{iQGn1>;7e;=+=DyFRSpS+~O5gq6-~E3M-ieID4{O}Gq5%6lwQXo7e67$!beshQ2@7-bp8HEp{>i;AK&7-K1HLCTPFV(8n4lmkTqimF8A zMDPJnty>J+c7EAF({xzk9B?*XVx1b4h#bto z7GkQ)77JoZSQDV{c<$ppW?3;?ENGLYs7s<&i1`dXUt+4790D>+2uvGIS<-4pTyF^d zcA~JC+rNZ) zUGdZtkFvL1;)COvC!c_rxOx2=&pr1scDpU#{Ec5rKlD8D#G{l&#k`sE=#5K+khyXF z5&q#1{sYRg;u}BkH4q$cd*&@vW^wQ+MLFm4wWs)=@A;np zmS5jmKmRKS!MxY727yu~jWQR14BU(#rS)#SURt-5vTsPoHk1Z`_QIQgaIFjO2AT6uv;Tfu; z>stD5me;-J}gO3Ovro&bvjV2k1PmY`dxtnM@GB~8sU@TG@FhE%%(AYRIZnmUhm|pJ~ z$z6{y5;JSib%CjBq_O0jk!td#Ok>Z`wmg1)iExhXd1Ph=mh;TT>Kdx7S(uJ_bHRnU z%!lt@;nS<@oDBz@T|k!%qp#TZnu{Lpu1a1yuUWZT^>-B3z7j@Ns8rSk_2wHNF-W-+ip=&qN<8u z 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

      |Z0w?M=FHU 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

      QH&A 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

      #Wa`E5+-D<@<-t~T7{i-LCC3AAJ=BcOeaB{Nb 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 P00000NkvXXu0mjfHaboX literal 0 HcmV?d00001 diff --git a/assets/img/preview/certificate_egryl2.png b/assets/img/preview/certificate_egryl2.png new file mode 100644 index 0000000000000000000000000000000000000000..90ed099ed0bae7d85cbd9d6bb933e4265a6afa9d GIT binary patch literal 318009 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

      VnU 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̯GDeDJg}3(&$U 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 literal 0 HcmV?d00001 diff --git a/assets/img/preview/certificate_gov.png b/assets/img/preview/certificate_gov.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7d22f183556668ebb8d7d3bebd14ade554dd2c GIT binary patch literal 217485 zcmV*)KsCRKP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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

      0QSg1VYDGs3Yx@wMqZ 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

      @f;7w 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 z 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 z�GEv@Wsr5#ClQ-`BSY8lpC|t_Be(iXow0AZ5guGU1=x9Hl^nZlE?ify@U)*Anm) zHXZ{$;dQ9d}WpO@XxwTJMRqO_R*rbTk`4DWp_LZ4j-8rbQJQBF_-H zCIo@(g2RH31nWRVWTp{5!AgA$pe5c~1cA^jL3Jf#;}OoL?4N#yT-xNO3LcefluD!^ zB@{+$@^KFlz%QEa{wYjuXqI!VYq2gQVsw`9^Ts3sb2@DWmdhngn_wYjZ;*7l1e7#* z+oEJAhYIP0rc@$ZhuFbBY>SWv=K?-qWN*ldYE?;*7PZ*9NwgNvr^*?v zvDRVRRABT6>6q-jPhNSYAi4xd!6S$$k+O+{gsN$1tw(1mo7soN@+|YLgFysz-orHq zwDp{ojfWVoou*zMq(r7K;qyfo!R5hidc7@1oA+UZr(N#SHWdU(@G(VA2AdYBm=-u^ zZ5LinlE6gKEoLpPt-JAhM)0wV1df;-oNs`D$0!)z1v*c*KsT?@#$d{{;CL7Ctw(1niA1%bZ5`?+aQR@D8Y3}eKF#iIt4lD5-$Ql2tw83rc0DcNqkSsr1^6@&>akFL=!=VbX1WKK2Rq3jJYy)n~+JIrTy@i^>!0#5Q%`;q)B1_1eqS7v?ME5$<%;6S7gNq5l9R^q0m&QOpx_PXd<*Tmh(GEyTmW2 zEarD8$`!Opzy=7280q!KWGXN{yp9w_ilM~Q8=Xcp9+?M3b}xQ9C0a!1@oi0XfxJIN z^-Xd*kYQ^}Xj5-PYeUomW72)ZS)vq4!XYKTO=0&Ut=hy);^z%To+Ua=KSPCxZQJgl zguG|Sd~!@k9mt3Gbc8KZrHQM|QV)}mP6@$!q%<^5qP8Tedzn%neM*e8J`#k)c~VbM zcWozSP%%x>Qz&{0gwITdR1)ta-U2ci8@#vFtwrZK)<$A5)NLdPL0OjAHsW1^vl^2j zm7;AeN-Mkz=oB}ZDo^LrCLuj}ks~G8WzuabovKcSLdzt(@xdo@dl1x(#ri;*Wheq| zU8AxLV|vtwcW`#jxflNt27`4LN4JPV{obYPe_SQ#?TqQc4NgAr26Q=QF}v}+%H4aL z>|;SpQNtqq-{%SR5>=IFq@X=AtZjtsP zhl&zq`YabW@%0Xa(H6te8b#4(xOSelopH4LEG8QxwWOKuq-x$-W|KYUhj*yz1{rz; z=?PhZtp(Nv+R7pW_{9=mTOn+k~qLPV=83Q7Mh>?8I z!&`^f8iGKYm@-82B)t-C5&^3Sz2P8jX59c#WfIxXh|30S${x{W(FG29@}lSlXX7*| zY-+rVI7{ODxjEK3oOkq!oL*5<*9}5|Qd#PyBM2gr6$aZT{iBc(L~310m4d*fOi>rm ziJE1~C$_dF≦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 literal 0 HcmV?d00001 diff --git a/config.js b/config.js new file mode 100644 index 00000000..63deb7bd --- /dev/null +++ b/config.js @@ -0,0 +1,3 @@ +module.exports = { + pub: "./" +} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 9d4cd038..d6cedcfb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,8 +1,10 @@ var gulp = require("gulp"); var sass = require("gulp-sass"); var minifyCSS = require("gulp-minify-css"); +var imageMin = require("gulp-imagemin"); -var pub = "~/Dropbox/Dev/Hud school/public/"; +// var pub = "~/Dropbox/Dev/Hud school/public/"; +var pub = "./public/"; var list = []; task("sass", function () { @@ -12,6 +14,17 @@ task("sass", function () { .pipe(gulp.dest(pub+"s")); }); +task("imagemin", function(){ + gulp.src("./assets/img/**/*") + .pipe(imageMin()) + .pipe(gulp.dest(pub+"img")); +}); + +task("copy", function(){ + gulp.src("./assets/fonts/*") + .pipe(gulp.dest(pub+"fonts")); +}); + function task(name, f){ list.push(name); gulp.task(name, f); diff --git a/node_modules/gulp-imagemin/index.js b/node_modules/gulp-imagemin/index.js new file mode 100644 index 00000000..41b4b110 --- /dev/null +++ b/node_modules/gulp-imagemin/index.js @@ -0,0 +1,56 @@ +'use strict'; +var path = require('path'); +var fs = require('graceful-fs'); +var gutil = require('gulp-util'); +var map = require('map-stream'); +var filesize = require('filesize'); +var tempWrite = require('temp-write'); +var imagemin = require('image-min'); + +module.exports = function (options) { + return map(function (file, cb) { + if (file.isNull()) { + return cb(null, file); + } + + if (file.isStream()) { + return cb(new gutil.PluginError('gulp-imagemin', 'Streaming not supported')); + } + + if (['.jpg', '.jpeg', '.png', '.gif'].indexOf(path.extname(file.path).toLowerCase()) === -1) { + gutil.log('gulp-imagemin: Skipping unsupported image ' + gutil.colors.blue(file.relative)); + return cb(null, file); + } + + tempWrite(file.contents, path.basename(file.path), function (err, tempFile) { + if (err) { + return cb(new gutil.PluginError('gulp-imagemin', err)); + } + + // workaround: https://github.com/kevva/image-min/issues/8 + fs.stat(tempFile, function (err, stats) { + if (err) { + return cb(new gutil.PluginError('gulp-imagemin', err)); + } + + var origSize = stats.size; + + imagemin(tempFile, tempFile, options, function () { + fs.readFile(tempFile, function (err, data) { + if (err) { + return cb(new gutil.PluginError('gulp-imagemin', err)); + } + + var saved = origSize - data.length; + var savedMsg = saved > 0 ? 'saved ' + filesize(saved, {round: 1}) : 'already optimized'; + + gutil.log('gulp-imagemin:', gutil.colors.green('✔ ') + file.relative + gutil.colors.gray(' (' + savedMsg + ')')); + + file.contents = data; + cb(null, file); + }); + }); + }); + }); + }); +}; diff --git a/node_modules/gulp-imagemin/node_modules/filesize/.npmignore b/node_modules/gulp-imagemin/node_modules/filesize/.npmignore new file mode 100644 index 00000000..9cacf8da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/filesize/.npmignore @@ -0,0 +1,8 @@ +/node_modules/ +/lib/filesize.min.js +/lib/filesize.map +/src/ +/test/ +.jshintrc +.travis.yml +Gruntfile.js diff --git a/node_modules/gulp-imagemin/node_modules/filesize/LICENSE b/node_modules/gulp-imagemin/node_modules/filesize/LICENSE new file mode 100644 index 00000000..c6f00fdd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/filesize/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2013, Jason Mulligan +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 {organization} 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 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/gulp-imagemin/node_modules/filesize/README.md b/node_modules/gulp-imagemin/node_modules/filesize/README.md new file mode 100644 index 00000000..62b6fea4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/filesize/README.md @@ -0,0 +1,47 @@ +[![build status](https://secure.travis-ci.org/avoidwork/filesize.js.png)](http://travis-ci.org/avoidwork/filesize.js) +# filesize.js + +filesize.js provides a simple way to get a human readable file size string from a number (float or integer) or string. + +## Optional settings + +`filesize()` accepts an optional descriptor Object as a second argument, so you can customize the output. + +### bits +_***(boolean)***_ Enables `bit` sizes, default is `false` + +### unix +_***(boolean)***_ Enables unix style human readable output, e.g `ls -lh`, default is `false` + +### base +_***(number)***_ Number base, default is `10` + +### round +_***(number)***_ Decimal place, default is `2` + +### spacer +_***(string)***_ Character between the `result` and `suffix`, default is `" "` + +## Examples + +```javascript +filesize(500); // "500 B" +filesize(500, {bits: true}); // "4.00 kb" +filesize(265318); // "265.32 kB" +filesize(265318, {base: 2}); // "259.10 kB" +filesize(265318, {base: 2, round: 1}); // "259.1 kB" +``` + +## How can I load filesize.js? + +filesize.js supports AMD loaders (require.js, curl.js, etc.), node.js & npm (npm install filesize), or using a script tag. + +## Support + +If you're having problems, use the support forum at CodersClan. + + + +## License +Copyright (c) 2013 Jason Mulligan +Licensed under the BSD-3 license. diff --git a/node_modules/gulp-imagemin/node_modules/filesize/lib/filesize.js b/node_modules/gulp-imagemin/node_modules/filesize/lib/filesize.js new file mode 100644 index 00000000..74f60006 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/filesize/lib/filesize.js @@ -0,0 +1,141 @@ +/** + * filesize + * + * @author Jason Mulligan + * @copyright 2013 Jason Mulligan + * @license BSD-3 + * @link http://filesizejs.com + * @module filesize + * @version 2.0.0 + */ +( function ( global ) { +"use strict"; + +var bit = /b$/, + bite = /^B$/, + radix = 10, + right = /\.(.*)/, + zero = /^0$/; + +/** + * filesize + * + * @method filesize + * @param {Mixed} arg String, Int or Float to transform + * @param {Object} descriptor [Optional] Flags + * @return {String} Readable file size String + */ +function filesize ( arg, descriptor ) { + var result = "", + skip = false, + i = 6, + base, bits, neg, num, round, size, sizes, unix, spacer, suffix, z; + + if ( isNaN( arg ) ) { + throw new Error( "Invalid arguments" ); + } + + descriptor = descriptor || {}; + bits = ( descriptor.bits === true ); + unix = ( descriptor.unix === true ); + base = descriptor.base !== undefined ? descriptor.base : unix ? 2 : 10; + round = descriptor.round !== undefined ? descriptor.round : unix ? 1 : 2; + spacer = descriptor.spacer !== undefined ? descriptor.spacer : unix ? "" : " "; + num = Number( arg ); + neg = ( num < 0 ); + + // Flipping a negative number to determine the size + if ( neg ) { + num = -num; + } + + // Zero is now a special case because bytes divide by 1 + if ( num === 0 ) { + if ( unix ) { + result = "0"; + } + else { + result = "0" + spacer + "B"; + } + } + else { + sizes = options[base][bits ? "bits" : "bytes"]; + + while ( i-- ) { + size = sizes[i][1]; + suffix = sizes[i][0]; + + if ( num >= size ) { + // Treating bytes as cardinal + if ( bite.test( suffix ) ) { + skip = true; + round = 0; + } + + result = ( num / size ).toFixed( round ); + + if ( !skip && unix ) { + if ( bits && bit.test( suffix ) ) { + suffix = suffix.toLowerCase(); + } + + suffix = suffix.charAt( 0 ); + z = right.exec( result ); + + if ( !bits && suffix === "k" ) { + suffix = "K"; + } + + if ( z !== null && z[1] !== undefined && zero.test( z[1] ) ) { + result = parseInt( result, radix ); + } + + result += spacer + suffix; + } + else if ( !unix ) { + result += spacer + suffix; + } + + break; + } + } + } + + // Decorating a 'diff' + if ( neg ) { + result = "-" + result; + } + + return result; +} + +/** + * Size options + * + * @type {Object} + */ +var options = { + 2 : { + bits : [["B", 1], ["kb", 128], ["Mb", 131072], ["Gb", 134217728], ["Tb", 137438953472], ["Pb", 140737488355328]], + bytes : [["B", 1], ["kB", 1024], ["MB", 1048576], ["GB", 1073741824], ["TB", 1099511627776], ["PB", 1125899906842624]] + }, + 10 : { + bits : [["B", 1], ["kb", 125], ["Mb", 125000], ["Gb", 125000000], ["Tb", 125000000000], ["Pb", 125000000000000]], + bytes : [["B", 1], ["kB", 1000], ["MB", 1000000], ["GB", 1000000000], ["TB", 1000000000000], ["PB", 1000000000000000]] + } +}; + +// CommonJS, AMD, script tag +if ( typeof exports !== "undefined" ) { + module.exports = filesize; +} +else if ( typeof define === "function" ) { + define( function () { + return filesize; + } ); +} +else { + global.filesize = filesize; +} + +} )( this ); diff --git a/node_modules/gulp-imagemin/node_modules/filesize/package.json b/node_modules/gulp-imagemin/node_modules/filesize/package.json new file mode 100644 index 00000000..d39de5af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/filesize/package.json @@ -0,0 +1,55 @@ +{ + "name": "filesize", + "description": "JavaScript library to generate a human readable String describing the file size", + "version": "2.0.0", + "homepage": "http://filesizejs.com", + "author": { + "name": "Jason Mulligan", + "email": "jason.mulligan@avoidwork.com" + }, + "repository": { + "type": "git", + "url": "git://github.com/avoidwork/filesize.js.git" + }, + "bugs": { + "url": "https://github.com/avoidwork/filesize.js/issues" + }, + "licenses": [ + { + "type": "BSD-3", + "url": "https://raw.github.com/avoidwork/filesize.js/master/LICENSE" + } + ], + "main": "lib/filesize", + "engines": { + "node": ">= 0.4.0" + }, + "scripts": { + "test": "grunt test" + }, + "devDependencies": { + "grunt": "~0.4.1", + "grunt-cli": "~0.1.6", + "grunt-exec": "~0.4", + "grunt-sed": "~0.1", + "grunt-contrib-concat": "~0.1.3", + "grunt-contrib-jshint": "~0.1", + "grunt-contrib-nodeunit": "~0.1.2", + "grunt-contrib-watch": "~0.2" + }, + "keywords": [ + "file", + "filesize", + "size", + "readable", + "file system" + ], + "readme": "[![build status](https://secure.travis-ci.org/avoidwork/filesize.js.png)](http://travis-ci.org/avoidwork/filesize.js)\n# filesize.js\n\nfilesize.js provides a simple way to get a human readable file size string from a number (float or integer) or string.\n\n## Optional settings\n\n`filesize()` accepts an optional descriptor Object as a second argument, so you can customize the output.\n\n### bits\n_***(boolean)***_ Enables `bit` sizes, default is `false`\n\n### unix\n_***(boolean)***_ Enables unix style human readable output, e.g `ls -lh`, default is `false`\n\n### base\n_***(number)***_ Number base, default is `10`\n\n### round\n_***(number)***_ Decimal place, default is `2`\n\n### spacer\n_***(string)***_ Character between the `result` and `suffix`, default is `\" \"`\n\n## Examples\n\n```javascript\nfilesize(500); // \"500 B\"\nfilesize(500, {bits: true}); // \"4.00 kb\"\nfilesize(265318); // \"265.32 kB\"\nfilesize(265318, {base: 2}); // \"259.10 kB\"\nfilesize(265318, {base: 2, round: 1}); // \"259.1 kB\"\n```\n\n## How can I load filesize.js?\n\nfilesize.js supports AMD loaders (require.js, curl.js, etc.), node.js & npm (npm install filesize), or using a script tag.\n\n## Support\n\nIf you're having problems, use the support forum at CodersClan.\n\n\n\n## License\nCopyright (c) 2013 Jason Mulligan \nLicensed under the BSD-3 license.\n", + "readmeFilename": "README.md", + "_id": "filesize@2.0.0", + "dist": { + "shasum": "4242899128eebf8c96804d05ef2da04e20ad09f6" + }, + "_from": "filesize@~2.0.0", + "_resolved": "https://registry.npmjs.org/filesize/-/filesize-2.0.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/graceful-fs/.npmignore b/node_modules/gulp-imagemin/node_modules/graceful-fs/.npmignore new file mode 100644 index 00000000..c2658d7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/.npmignore @@ -0,0 +1 @@ +node_modules/ diff --git a/node_modules/gulp-imagemin/node_modules/graceful-fs/LICENSE b/node_modules/gulp-imagemin/node_modules/graceful-fs/LICENSE new file mode 100644 index 00000000..0c44ae71 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/LICENSE @@ -0,0 +1,27 @@ +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/gulp-imagemin/node_modules/graceful-fs/README.md b/node_modules/gulp-imagemin/node_modules/graceful-fs/README.md new file mode 100644 index 00000000..eb1a1093 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/README.md @@ -0,0 +1,26 @@ +# graceful-fs + +graceful-fs functions as a drop-in replacement for the fs module, +making various improvements. + +The improvements are meant to normalize behavior across different +platforms and environments, and to make filesystem access more +resilient to errors. + +## Improvements over fs module + +graceful-fs: + +* Queues up `open` and `readdir` calls, and retries them once + something closes if there is an EMFILE error from too many file + descriptors. +* fixes `lchmod` for Node versions prior to 0.6.2. +* implements `fs.lutimes` if possible. Otherwise it becomes a noop. +* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or + `lchown` if the user isn't root. +* makes `lchmod` and `lchown` become noops, if not available. +* retries reading a file if `read` results in EAGAIN error. + +On Windows, it retries renaming a file for up to one second if `EACCESS` +or `EPERM` error occurs, likely because antivirus software has locked +the directory. diff --git a/node_modules/gulp-imagemin/node_modules/graceful-fs/graceful-fs.js b/node_modules/gulp-imagemin/node_modules/graceful-fs/graceful-fs.js new file mode 100644 index 00000000..1865f92c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/graceful-fs.js @@ -0,0 +1,159 @@ +// Monkey-patching the fs module. +// It's ugly, but there is simply no other way to do this. +var fs = module.exports = require('fs') + +var assert = require('assert') + +// fix up some busted stuff, mostly on windows and old nodes +require('./polyfills.js') + +// The EMFILE enqueuing stuff + +var util = require('util') + +function noop () {} + +var debug = noop +var util = require('util') +if (util.debuglog) + debug = util.debuglog('gfs') +else if (/\bgfs\b/i.test(process.env.NODE_DEBUG || '')) + debug = function() { + var m = util.format.apply(util, arguments) + m = 'GFS: ' + m.split(/\n/).join('\nGFS: ') + console.error(m) + } + +if (/\bgfs\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug('fds', fds) + debug(queue) + assert.equal(queue.length, 0) + }) +} + + +var originalOpen = fs.open +fs.open = open + +function open(path, flags, mode, cb) { + if (typeof mode === "function") cb = mode, mode = null + if (typeof cb !== "function") cb = noop + new OpenReq(path, flags, mode, cb) +} + +function OpenReq(path, flags, mode, cb) { + this.path = path + this.flags = flags + this.mode = mode + this.cb = cb + Req.call(this) +} + +util.inherits(OpenReq, Req) + +OpenReq.prototype.process = function() { + originalOpen.call(fs, this.path, this.flags, this.mode, this.done) +} + +var fds = {} +OpenReq.prototype.done = function(er, fd) { + debug('open done', er, fd) + if (fd) + fds['fd' + fd] = this.path + Req.prototype.done.call(this, er, fd) +} + + +var originalReaddir = fs.readdir +fs.readdir = readdir + +function readdir(path, cb) { + if (typeof cb !== "function") cb = noop + new ReaddirReq(path, cb) +} + +function ReaddirReq(path, cb) { + this.path = path + this.cb = cb + Req.call(this) +} + +util.inherits(ReaddirReq, Req) + +ReaddirReq.prototype.process = function() { + originalReaddir.call(fs, this.path, this.done) +} + +ReaddirReq.prototype.done = function(er, files) { + Req.prototype.done.call(this, er, files) + onclose() +} + + +var originalClose = fs.close +fs.close = close + +function close (fd, cb) { + debug('close', fd) + if (typeof cb !== "function") cb = noop + delete fds['fd' + fd] + originalClose.call(fs, fd, function(er) { + onclose() + cb(er) + }) +} + + +var originalCloseSync = fs.closeSync +fs.closeSync = closeSync + +function closeSync (fd) { + try { + return originalCloseSync(fd) + } finally { + onclose() + } +} + + +// Req class +function Req () { + // start processing + this.done = this.done.bind(this) + this.failures = 0 + this.process() +} + +Req.prototype.done = function (er, result) { + var tryAgain = false + if (er) { + var code = er.code + var tryAgain = code === "EMFILE" + if (process.platform === "win32") + tryAgain = tryAgain || code === "OK" + } + + if (tryAgain) { + this.failures ++ + enqueue(this) + } else { + var cb = this.cb + cb(er, result) + } +} + +var queue = [] + +function enqueue(req) { + queue.push(req) + debug('enqueue %d %s', queue.length, req.constructor.name, req) +} + +function onclose() { + var req = queue.shift() + if (req) { + debug('process', req.constructor.name, req) + req.process() + } +} diff --git a/node_modules/gulp-imagemin/node_modules/graceful-fs/package.json b/node_modules/gulp-imagemin/node_modules/graceful-fs/package.json new file mode 100644 index 00000000..3e4131e8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/package.json @@ -0,0 +1,53 @@ +{ + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "name": "graceful-fs", + "description": "A drop-in replacement for fs, making various improvements.", + "version": "2.0.1", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-graceful-fs.git" + }, + "main": "graceful-fs.js", + "engines": { + "node": ">=0.4.0" + }, + "directories": { + "test": "test" + }, + "scripts": { + "test": "tap test/*.js" + }, + "keywords": [ + "fs", + "module", + "reading", + "retry", + "retries", + "queue", + "error", + "errors", + "handling", + "EMFILE", + "EAGAIN", + "EINVAL", + "EPERM", + "EACCESS" + ], + "license": "BSD", + "readme": "# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* Queues up `open` and `readdir` calls, and retries them once\n something closes if there is an EMFILE error from too many file\n descriptors.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n `lchown` if the user isn't root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/node-graceful-fs/issues" + }, + "homepage": "https://github.com/isaacs/node-graceful-fs", + "_id": "graceful-fs@2.0.1", + "dist": { + "shasum": "ec829a5953ea8ab7c1ba4c5de223ad6a44432ad6" + }, + "_from": "graceful-fs@~2.0.0", + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.1.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/graceful-fs/polyfills.js b/node_modules/gulp-imagemin/node_modules/graceful-fs/polyfills.js new file mode 100644 index 00000000..afc83b3f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/polyfills.js @@ -0,0 +1,228 @@ +var fs = require('fs') +var constants = require('constants') + +var origCwd = process.cwd +var cwd = null +process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process) + return cwd +} +var chdir = process.chdir +process.chdir = function(d) { + cwd = null + chdir.call(process, d) +} + +// (re-)implement some things that are known busted or missing. + +// lchmod, broken prior to 0.6.2 +// back-port the fix here. +if (constants.hasOwnProperty('O_SYMLINK') && + process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + fs.lchmod = function (path, mode, callback) { + callback = callback || noop + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + callback(err) + return + } + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + callback(err || err2) + }) + }) + }) + } + + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) + + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + var err, err2 + try { + var ret = fs.fchmodSync(fd, mode) + } catch (er) { + err = er + } + try { + fs.closeSync(fd) + } catch (er) { + err2 = er + } + if (err || err2) throw (err || err2) + return ret + } +} + + +// lutimes implementation, or no-op +if (!fs.lutimes) { + if (constants.hasOwnProperty("O_SYMLINK")) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + cb = cb || noop + if (er) return cb(er) + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + return cb(er || er2) + }) + }) + }) + } + + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + , err + , err2 + , ret + + try { + var ret = fs.futimesSync(fd, at, mt) + } catch (er) { + err = er + } + try { + fs.closeSync(fd) + } catch (er) { + err2 = er + } + if (err || err2) throw (err || err2) + return ret + } + + } else if (fs.utimensat && constants.hasOwnProperty("AT_SYMLINK_NOFOLLOW")) { + // maybe utimensat will be bound soonish? + fs.lutimes = function (path, at, mt, cb) { + fs.utimensat(path, at, mt, constants.AT_SYMLINK_NOFOLLOW, cb) + } + + fs.lutimesSync = function (path, at, mt) { + return fs.utimensatSync(path, at, mt, constants.AT_SYMLINK_NOFOLLOW) + } + + } else { + fs.lutimes = function (_a, _b, _c, cb) { process.nextTick(cb) } + fs.lutimesSync = function () {} + } +} + + +// https://github.com/isaacs/node-graceful-fs/issues/4 +// Chown should not fail on einval or eperm if non-root. + +fs.chown = chownFix(fs.chown) +fs.fchown = chownFix(fs.fchown) +fs.lchown = chownFix(fs.lchown) + +fs.chownSync = chownFixSync(fs.chownSync) +fs.fchownSync = chownFixSync(fs.fchownSync) +fs.lchownSync = chownFixSync(fs.lchownSync) + +function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er, res) { + if (chownErOk(er)) er = null + cb(er, res) + }) + } +} + +function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er + } + } +} + +function chownErOk (er) { + // if there's no getuid, or if getuid() is something other than 0, + // and the error is EINVAL or EPERM, then just ignore it. + // This specific case is a silent failure in cp, install, tar, + // and most other unix tools that manage permissions. + // When running as root, or if other types of errors are encountered, + // then it's strict. + if (!er || (!process.getuid || process.getuid() !== 0) + && (er.code === "EINVAL" || er.code === "EPERM")) return true +} + + +// if lchmod/lchown do not exist, then make them no-ops +if (!fs.lchmod) { + fs.lchmod = function (path, mode, cb) { + process.nextTick(cb) + } + fs.lchmodSync = function () {} +} +if (!fs.lchown) { + fs.lchown = function (path, uid, gid, cb) { + process.nextTick(cb) + } + fs.lchownSync = function () {} +} + + + +// on Windows, A/V software can lock the directory, causing this +// to fail with an EACCES or EPERM if the directory contains newly +// created files. Try again on failure, for up to 1 second. +if (process.platform === "win32") { + var rename_ = fs.rename + fs.rename = function rename (from, to, cb) { + var start = Date.now() + rename_(from, to, function CB (er) { + if (er + && (er.code === "EACCES" || er.code === "EPERM") + && Date.now() - start < 1000) { + return rename_(from, to, CB) + } + cb(er) + }) + } +} + + +// if read() returns EAGAIN, then just try it again. +var read = fs.read +fs.read = function (fd, buffer, offset, length, position, callback_) { + var callback + if (callback_ && typeof callback_ === 'function') { + var eagCounter = 0 + callback = function (er, _, __) { + if (er && er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + return read.call(fs, fd, buffer, offset, length, position, callback) + } + callback_.apply(this, arguments) + } + } + return read.call(fs, fd, buffer, offset, length, position, callback) +} + +var readSync = fs.readSync +fs.readSync = function (fd, buffer, offset, length, position) { + var eagCounter = 0 + while (true) { + try { + return readSync.call(fs, fd, buffer, offset, length, position) + } catch (er) { + if (er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + continue + } + throw er + } + } +} + diff --git a/node_modules/gulp-imagemin/node_modules/graceful-fs/test/open.js b/node_modules/gulp-imagemin/node_modules/graceful-fs/test/open.js new file mode 100644 index 00000000..104f36b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/graceful-fs/test/open.js @@ -0,0 +1,39 @@ +var test = require('tap').test +var fs = require('../graceful-fs.js') + +test('graceful fs is monkeypatched fs', function (t) { + t.equal(fs, require('fs')) + t.end() +}) + +test('open an existing file works', function (t) { + var fd = fs.openSync(__filename, 'r') + fs.closeSync(fd) + fs.open(__filename, 'r', function (er, fd) { + if (er) throw er + fs.close(fd, function (er) { + if (er) throw er + t.pass('works') + t.end() + }) + }) +}) + +test('open a non-existing file throws', function (t) { + var er + try { + var fd = fs.openSync('this file does not exist', 'r') + } catch (x) { + er = x + } + t.ok(er, 'should throw') + t.notOk(fd, 'should not get an fd') + t.equal(er.code, 'ENOENT') + + fs.open('neither does this file', 'r', function (er, fd) { + t.ok(er, 'should throw') + t.notOk(fd, 'should not get an fd') + t.equal(er.code, 'ENOENT') + t.end() + }) +}) diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/.npmignore b/node_modules/gulp-imagemin/node_modules/gulp-util/.npmignore new file mode 100644 index 00000000..b5ef13a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/.npmignore @@ -0,0 +1,6 @@ +.DS_Store +*.log +node_modules +build +*.node +components \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/.travis.yml b/node_modules/gulp-imagemin/node_modules/gulp-util/.travis.yml new file mode 100644 index 00000000..33ad9f8c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - "0.9" + - "0.10" +after_script: + - npm run coveralls \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/LICENSE b/node_modules/gulp-imagemin/node_modules/gulp-util/LICENSE new file mode 100755 index 00000000..7cbe012c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2014 Fractal + +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/gulp-imagemin/node_modules/gulp-util/README.md b/node_modules/gulp-imagemin/node_modules/gulp-util/README.md new file mode 100644 index 00000000..fd0e506e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/README.md @@ -0,0 +1,166 @@ +# gulp-util [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Dependency Status](https://david-dm.org/gulpjs/gulp-util.png?theme=shields.io)](https://david-dm.org/gulpjs/gulp-util) + +## Information + + + + + + + + + + + + + +
      Packagegulp-util
      DescriptionUtility functions for gulp plugins
      Node Version>= 0.9
      + +## Usage + +```javascript +var gutil = require('gulp-util'); + +gutil.log('stuff happened', 'Really it did', gutil.colors.cyan('123')); +gutil.beep(); + +gutil.replaceExtension('file.coffee', '.js'); // file.js + +var opt = { + name: 'todd', + file: someGulpFile +}; +gutil.template('test <%= name %> <%= file.path %>', opt) // test todd /js/hi.js +``` + +### log(msg...) + +Logs stuff. Already prefixed with [gulp] and all that. Use the right colors for values. If you pass in multiple arguments it will join them by a space. + +``` +values (files, module names, etc.) = magenta +numbers (times, counts, etc) = cyan +``` + +### colors + +This is an instance of [chalk](https://github.com/sindresorhus/chalk) + +### date + +This is an instance of [node-dateformat](https://github.com/felixge/node-dateformat). + +### linefeed + +Just `\n`. Use this. + +### replaceExtension(path, newExtension) + +Replaces a file extension in a path. Returns the new path. + +### isStream(obj) + +Returns true or false if an object is a stream. + +### isBuffer(obj) + +Returns true or false if an object is a Buffer. + +### template(string[, data]) + +This is a lodash.template function wrapper. You must pass in a valid gulp file object so it is available to the user or it will error. You can not configure any of the delimiters. Look at the [lodash docs](http://lodash.com/docs#template) for more info. + +## new File(obj) + +This is just [vinyl](https://github.com/wearefractal/vinyl) + +```javascript +var file = new gutil.File({ + base: join(__dirname, './fixtures/'), + cwd: __dirname, + path: join(__dirname, './fixtures/test.coffee') +}); +``` + +## noop() + +Returns a stream that does nothing but pass data straight through. + +```javascript +gulp.task('scripts', function() { + gulp.src('src/**/*.js') + .pipe(concat('script.js')) + .pipe(gulp.env.production ? uglify() : gutil.noop()) + .pipe(gulp.dest('dist/'); +}); +``` + +## combine(streams...) + +Argument may also be an array of streams. Returns a function that returns the combined stream. Useful for keeping things DRY. This is a simple wrapper around event-stream's `.pipeline` + +```javascript +var scripts = gutil.combine( + coffee({bare: true}), + uglify(), + concat('script.js'), + gulp.dest('dist/') +); + +gulp.task('default', function() { + gulp.src('*.coffee').pipe(scripts()); +}); +``` + +## buffer(cb) + +This is similar to es.wait but instead of buffering text into one string it buffers anything into an array (so very useful for file objects). + +Returns a stream that can be piped to. + +The stream will emit one data event after the stream piped to it has ended. The data will be the same array passed to the callback. + +Callback is optional and receives two arguments: error and data + +```javascript +gulp.src('stuff/*.js') + .pipe(gutil.buffer(function(err, files){ + + }); +``` + +## new PluginError(pluginName, message[, options]) + +- pluginName should be the module name of your plugin +- message can be a string or an existing error +- By default the stack will not be shown. Set `options.showStack` to true if you think the stack is important for your error. +- If you pass an error in as the message the stack will be pulled from that, otherwise one will be created. + +These are all acceptable forms of instantiation: + +```javascript +var err = new gutil.PluginError('test', { + message: 'something broke' +}); + +var err = new gutil.PluginError({ + plugin: 'test', + message: 'something broke' +}); + +var err = new gutil.PluginError('test', 'something broke'); + +var err = new gutil.PluginError('test', 'something broke', {showStack: true}); + +var existingError = new Error('OMG'); +var err = new gutil.PluginError('test', existingError, {showStack: true}); +``` + +[npm-url]: https://npmjs.org/package/gulp-util +[npm-image]: https://badge.fury.io/js/gulp-util.png +[travis-url]: https://travis-ci.org/gulpjs/gulp-util +[travis-image]: https://travis-ci.org/gulpjs/gulp-util.png?branch=master +[coveralls-url]: https://coveralls.io/r/gulpjs/gulp-util +[coveralls-image]: https://coveralls.io/repos/gulpjs/gulp-util/badge.png +[depstat-url]: https://david-dm.org/gulpjs/gulp-util +[depstat-image]: https://david-dm.org/gulpjs/gulp-util.png diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/index.js b/node_modules/gulp-imagemin/node_modules/gulp-util/index.js new file mode 100644 index 00000000..6746ee4b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/index.js @@ -0,0 +1,18 @@ +module.exports = { + File: require('./lib/File'), + replaceExtension: require('./lib/replaceExtension'), + colors: require('./lib/colors'), + date: require('./lib/date'), + log: require('./lib/log'), + template: require('./lib/template'), + env: require('./lib/env'), + beep: require('./lib/beep'), + noop: require('./lib/noop'), + isStream: require('./lib/isStream'), + isBuffer: require('./lib/isBuffer'), + isNull: require('./lib/isNull'), + linefeed: require('./lib/linefeed'), + combine: require('./lib/combine'), + buffer: require('./lib/buffer'), + PluginError: require('./lib/PluginError') +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/File.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/File.js new file mode 100644 index 00000000..690a508a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/File.js @@ -0,0 +1 @@ +module.exports = require('vinyl'); \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/PluginError.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/PluginError.js new file mode 100644 index 00000000..96555672 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/PluginError.js @@ -0,0 +1,65 @@ +var util = require('util'); +var colors = require('./colors'); + +// wow what a clusterfuck +var parseOptions = function(plugin, message, opt) { + if (!opt) opt = {}; + if (typeof plugin === 'object') { + opt = plugin; + } else if (message instanceof Error) { + opt.message = message; + opt.plugin = plugin; + } else if (typeof message === 'object') { + opt = message; + opt.plugin = plugin; + } else if (typeof opt === 'object') { + opt.plugin = plugin; + opt.message = message; + } + return opt; +}; + +function PluginError(plugin, message, opt) { + if (!(this instanceof PluginError)) throw new Error('Call PluginError using new'); + + Error.call(this); + + var options = parseOptions(plugin, message, opt); + + this.plugin = options.plugin; + this.showStack = options.showStack; + + // if message is an Error grab crap off it + if (options.message instanceof Error) { + this.name = options.message.name; + this.message = options.message.message; + this.fileName = options.message.fileName; + this.lineNumber = options.message.lineNumber; + this.stack = options.message.stack; + } else { // else check options obj + this.name = options.name; + this.message = options.message; + this.fileName = options.fileName; + this.lineNumber = options.lineNumber; + this.stack = options.stack; + } + + // defaults + if (!this.name) this.name = 'Error'; + + // TODO: figure out why this explodes mocha + if (!this.stack) Error.captureStackTrace(this, arguments.callee || this.constructor); + + if (!this.plugin) throw new Error('Missing plugin name'); + if (!this.message) throw new Error('Missing error message'); +} + +util.inherits(PluginError, Error); + +PluginError.prototype.toString = function () { + var sig = '['+colors.green('gulp')+'] '+this.name+' in plugin \''+colors.cyan(this.plugin)+'\''; + var msg = this.showStack ? (this._stack || this.stack) : this.message; + return sig+': '+msg; +}; + +module.exports = PluginError; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/beep.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/beep.js new file mode 100644 index 00000000..5473d754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/beep.js @@ -0,0 +1,3 @@ +module.exports = function() { + process.stdout.write('\x07'); +}; diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/buffer.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/buffer.js new file mode 100644 index 00000000..4cb064ac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/buffer.js @@ -0,0 +1,15 @@ +var through = require('through2'); + +module.exports = function(fn) { + var buf = []; + var end = function(cb) { + this.push(buf); + cb(); + if(fn) fn(null, buf); + }; + var push = function(data, enc, cb) { + buf.push(data); + cb(); + }; + return through.obj(push, end); +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/colors.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/colors.js new file mode 100644 index 00000000..bc804940 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/colors.js @@ -0,0 +1 @@ +module.exports = require('chalk'); \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/combine.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/combine.js new file mode 100644 index 00000000..f20712d2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/combine.js @@ -0,0 +1,11 @@ +var pipeline = require('multipipe'); + +module.exports = function(){ + var args = arguments; + if (args.length === 1 && Array.isArray(args[0])) { + args = args[0]; + } + return function(){ + return pipeline.apply(pipeline, args); + }; +}; diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/date.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/date.js new file mode 100644 index 00000000..935793cc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/date.js @@ -0,0 +1 @@ +module.exports = require('dateformat'); \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/env.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/env.js new file mode 100644 index 00000000..ea1e03e4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/env.js @@ -0,0 +1,4 @@ +var parseArgs = require('minimist'); +var argv = parseArgs(process.argv.slice(2)); + +module.exports = argv; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isBuffer.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isBuffer.js new file mode 100644 index 00000000..0e23782c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isBuffer.js @@ -0,0 +1,7 @@ +var buf = require('buffer'); +var Buffer = buf.Buffer; + +// could use Buffer.isBuffer but this is the same exact thing... +module.exports = function(o) { + return typeof o === 'object' && o instanceof Buffer; +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isNull.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isNull.js new file mode 100644 index 00000000..403bb30e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isNull.js @@ -0,0 +1,3 @@ +module.exports = function(v) { + return v === null; +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isStream.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isStream.js new file mode 100644 index 00000000..9ce0929b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/isStream.js @@ -0,0 +1,5 @@ +var Stream = require('stream').Stream; + +module.exports = function(o) { + return !!o && o instanceof Stream; +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/linefeed.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/linefeed.js new file mode 100644 index 00000000..5b0dfa4b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/linefeed.js @@ -0,0 +1 @@ +module.exports = '\n'; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/log.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/log.js new file mode 100644 index 00000000..cdbb22fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/log.js @@ -0,0 +1,9 @@ +var colors = require('./colors'); + +module.exports = function(){ + var sig = '['+colors.green('gulp')+']'; + var args = Array.prototype.slice.call(arguments); + args.unshift(sig); + console.log.apply(console, args); + return this; +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/noop.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/noop.js new file mode 100644 index 00000000..7862cb16 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/noop.js @@ -0,0 +1,5 @@ +var through = require('through2'); + +module.exports = function () { + return through.obj(); +}; diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/replaceExtension.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/replaceExtension.js new file mode 100644 index 00000000..3f76938e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/replaceExtension.js @@ -0,0 +1,9 @@ +var path = require('path'); + +module.exports = function(npath, ext) { + if (typeof npath !== 'string') return npath; + if (npath.length === 0) return npath; + + var nFileName = path.basename(npath, path.extname(npath))+ext; + return path.join(path.dirname(npath), nFileName); +}; \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/lib/template.js b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/template.js new file mode 100644 index 00000000..c467820f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/lib/template.js @@ -0,0 +1,19 @@ +var template = require('lodash.template'); +var reInterpolate = require('lodash._reinterpolate'); + +var forcedSettings = { + escape: /<%-([\s\S]+?)%>/g, + evaluate: /<%([\s\S]+?)%>/g, + interpolate: reInterpolate +}; + +module.exports = function(tmpl, data){ + var fn = template(tmpl, null, forcedSettings); + + var wrapped = function(o) { + if (typeof o === 'undefined' || typeof o.file === 'undefined') throw new Error('Failed to provide the current file as "file" to the template'); + return fn(o); + }; + + return (data ? wrapped(data) : wrapped); +}; diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/index.js b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/index.js new file mode 100644 index 00000000..a21f7022 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/index.js @@ -0,0 +1,63 @@ +'use strict'; +var ansi = require('ansi-styles'); +var stripAnsi = require('strip-ansi'); +var hasColor = require('has-color'); +var defineProps = Object.defineProperties; +var chalk = module.exports; + +var styles = (function () { + var ret = {}; + + ansi.grey = ansi.gray; + + Object.keys(ansi).forEach(function (key) { + ret[key] = { + get: function () { + this._styles.push(key); + return this; + } + }; + }); + + return ret; +})(); + +function init() { + var ret = {}; + + Object.keys(styles).forEach(function (name) { + ret[name] = { + get: function () { + var obj = defineProps(function self() { + var str = [].slice.call(arguments).join(' '); + + if (!chalk.enabled) { + return str; + } + + return self._styles.reduce(function (str, name) { + var code = ansi[name]; + return str ? code.open + str + code.close : ''; + }, str); + }, styles); + + obj._styles = []; + + return obj[name]; + } + } + }); + + return ret; +} + +defineProps(chalk, init()); + +chalk.styles = ansi; +chalk.stripColor = stripAnsi; +chalk.supportsColor = hasColor; + +// detect mode if not set manually +if (chalk.enabled === undefined) { + chalk.enabled = chalk.supportsColor; +} diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi new file mode 120000 index 00000000..b65c9f81 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi @@ -0,0 +1 @@ +../strip-ansi/cli.js \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js new file mode 100644 index 00000000..3da548c4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js @@ -0,0 +1,38 @@ +'use strict'; +var styles = module.exports; + +var codes = { + reset: [0, 0], + + bold: [1, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + strikethrough: [9, 29], + + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49] +}; + +Object.keys(codes).forEach(function (key) { + var val = codes[key]; + var style = styles[key] = {}; + style.open = '\x1b[' + val[0] + 'm'; + style.close = '\x1b[' + val[1] + 'm'; +}); diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/package.json b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/package.json new file mode 100644 index 00000000..633d5e9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/package.json @@ -0,0 +1,62 @@ +{ + "name": "ansi-styles", + "version": "1.0.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { + "url": "https://github.com/sindresorhus/ansi-styles/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "ansi-styles.js" + ], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles)\n\n> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for colorizing strings in the terminal.\n\nYou probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings.\n\n![screenshot](screenshot.png)\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles`\n\n\n## Example\n\n```js\nvar ansi = require('ansi-styles');\n\nconsole.log(ansi.green.open + 'Hello world!' + ansi.green.close);\n```\n\n## API\n\nEach style has an `open` and `close` property.\n\n\n## Styles\n\n### General\n\n- reset\n- bold\n- italic\n- underline\n- inverse\n- strikethrough\n\n### Text colors\n\n- black\n- red\n- green\n- yellow\n- blue\n- magenta\n- cyan\n- white\n- gray\n\n### Background colors\n\n- bgBlack\n- bgRed\n- bgGreen\n- bgYellow\n- bgBlue\n- bgMagenta\n- bgCyan\n- bgWhite\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "ansi-styles@1.0.0", + "dist": { + "shasum": "cb102df1c56f5123eab8b67cd7b98027a0279178" + }, + "_from": "ansi-styles@~1.0.0", + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/readme.md b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/readme.md new file mode 100644 index 00000000..4ac8cbd0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/readme.md @@ -0,0 +1,65 @@ +# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles) + +> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for colorizing strings in the terminal. + +You probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings. + +![screenshot](screenshot.png) + + +## Install + +Install with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles` + + +## Example + +```js +var ansi = require('ansi-styles'); + +console.log(ansi.green.open + 'Hello world!' + ansi.green.close); +``` + +## API + +Each style has an `open` and `close` property. + + +## Styles + +### General + +- reset +- bold +- italic +- underline +- inverse +- strikethrough + +### Text colors + +- black +- red +- green +- yellow +- blue +- magenta +- cyan +- white +- gray + +### Background colors + +- bgBlack +- bgRed +- bgGreen +- bgYellow +- bgBlue +- bgMagenta +- bgCyan +- bgWhite + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/has-color.js b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/has-color.js new file mode 100644 index 00000000..27316b1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/has-color.js @@ -0,0 +1,24 @@ +'use strict'; +module.exports = (function () { + if (process.argv.indexOf('--no-color') !== -1) { + return false; + } + + if (process.argv.indexOf('--color') !== -1) { + return true; + } + + if (!process.stdout.isTTY) { + return false; + } + + if (process.platform === 'win32') { + return true; + } + + if ('COLORTERM' in process.env) { + return true; + } + + return /^screen|^xterm|color|ansi|cygwin|linux/i.test(process.env.TERM); +})(); diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/package.json b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/package.json new file mode 100644 index 00000000..d60b2d0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/package.json @@ -0,0 +1,59 @@ +{ + "name": "has-color", + "version": "0.1.4", + "description": "Detect whether a terminal supports color", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "capability", + "detect" + ], + "homepage": "https://github.com/sindresorhus/has-color", + "bugs": { + "url": "https://github.com/sindresorhus/has-color/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "has-color.js" + ], + "main": "has-color", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/has-color.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color)\n\n> Detect whether a terminal supports color.\n\nUsed in the terminal color module [chalk](https://github.com/sindresorhus/chalk).\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/has-color): `npm install --save has-color`\n\n\n## Example\n\n```js\nvar hasColor = require('has-color');\n\nif (hasColor) {\n\tconsole.log('Terminal supports color.');\n}\n```\n\nIt obeys the CLI flags `--color` and `--no-color`.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "has-color@0.1.4", + "dist": { + "shasum": "d1dadeea5b9e8b446bf08603532333710c95a290" + }, + "_from": "has-color@~0.1.0", + "_resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.4.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/readme.md b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/readme.md new file mode 100644 index 00000000..0918c851 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/has-color/readme.md @@ -0,0 +1,28 @@ +# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color) + +> Detect whether a terminal supports color. + +Used in the terminal color module [chalk](https://github.com/sindresorhus/chalk). + + +## Install + +Install with [npm](https://npmjs.org/package/has-color): `npm install --save has-color` + + +## Example + +```js +var hasColor = require('has-color'); + +if (hasColor) { + console.log('Terminal supports color.'); +} +``` + +It obeys the CLI flags `--color` and `--no-color`. + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/cli.js b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/cli.js new file mode 100755 index 00000000..f8019cda --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/cli.js @@ -0,0 +1,27 @@ +#!/usr/bin/env node +'use strict'; +var fs = require('fs'); +var strip = require('./index'); +var input = process.argv[2]; + +if (process.argv.indexOf('-h') !== -1 || process.argv.indexOf('--help') !== -1) { + console.log('strip-ansi > '); + console.log('or'); + console.log('cat | strip-ansi > '); + return; +} + +if (process.argv.indexOf('-v') !== -1 || process.argv.indexOf('--version') !== -1) { + console.log(require('./package').version); + return; +} + +if (input) { + process.stdout.write(strip(fs.readFileSync(input, 'utf8'))); + return; +} + +process.stdin.setEncoding('utf8'); +process.stdin.on('data', function (data) { + process.stdout.write(strip(data)); +}); diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/index.js b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/index.js new file mode 100644 index 00000000..62320c59 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/index.js @@ -0,0 +1,4 @@ +'use strict'; +module.exports = function (str) { + return typeof str === 'string' ? str.replace(/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]/g, '') : str; +}; diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/package.json b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/package.json new file mode 100644 index 00000000..459be932 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/package.json @@ -0,0 +1,68 @@ +{ + "name": "strip-ansi", + "version": "0.1.1", + "description": "Strip ANSI escape codes (used for colorizing strings in the terminal)", + "license": "MIT", + "bin": { + "strip-ansi": "cli.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/strip-ansi" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "engines": { + "node": ">=0.8.0" + }, + "scripts": { + "test": "mocha" + }, + "files": [ + "index.js", + "cli.js" + ], + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { + "mocha": "~1.x" + }, + "readme": "# strip-ansi [![Build Status](https://secure.travis-ci.org/sindresorhus/strip-ansi.png?branch=master)](http://travis-ci.org/sindresorhus/strip-ansi)\n\n> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) (used for colorizing strings in the terminal)\n\nUsed in the terminal color module [chalk](https://github.com/sindresorhus/chalk).\n\n\n## Install\n\nInstall locally with [npm](https://npmjs.org/package/strip-ansi):\n\n```\nnpm install --save strip-ansi\n```\n\nOr globally if you want to use it as a CLI app:\n\n```\nnpm install --global strip-ansi\n```\n\nYou can then use it in your Terminal like:\n\n```\nstrip-ansi file-with-color-codes\n```\n\nOr pipe something to it:\n\n```\nls | strip-ansi\n```\n\n\n## Example\n\n```js\nvar stripAnsi = require('strip-ansi');\nstripAnsi('\\x1b[4mcake\\x1b[0m');\n//=> cake\n```\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "bugs": { + "url": "https://github.com/sindresorhus/strip-ansi/issues" + }, + "homepage": "https://github.com/sindresorhus/strip-ansi", + "_id": "strip-ansi@0.1.1", + "dist": { + "shasum": "39e8a98d044d150660abe4a6808acf70bb7bc991" + }, + "_from": "strip-ansi@~0.1.0", + "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/readme.md b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/readme.md new file mode 100644 index 00000000..eb661b3d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/readme.md @@ -0,0 +1,46 @@ +# strip-ansi [![Build Status](https://secure.travis-ci.org/sindresorhus/strip-ansi.png?branch=master)](http://travis-ci.org/sindresorhus/strip-ansi) + +> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) (used for colorizing strings in the terminal) + +Used in the terminal color module [chalk](https://github.com/sindresorhus/chalk). + + +## Install + +Install locally with [npm](https://npmjs.org/package/strip-ansi): + +``` +npm install --save strip-ansi +``` + +Or globally if you want to use it as a CLI app: + +``` +npm install --global strip-ansi +``` + +You can then use it in your Terminal like: + +``` +strip-ansi file-with-color-codes +``` + +Or pipe something to it: + +``` +ls | strip-ansi +``` + + +## Example + +```js +var stripAnsi = require('strip-ansi'); +stripAnsi('\x1b[4mcake\x1b[0m'); +//=> cake +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/package.json b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/package.json new file mode 100644 index 00000000..5ed4c5d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/gulp-util/node_modules/chalk/package.json @@ -0,0 +1,65 @@ +{ + "name": "chalk", + "version": "0.4.0", + "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "engines": { + "node": ">=0.8.0" + }, + "scripts": { + "test": "mocha" + }, + "files": [ + "index.js" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "has-color": "~0.1.0", + "ansi-styles": "~1.0.0", + "strip-ansi": "~0.1.0" + }, + "devDependencies": { + "mocha": "~1.x" + }, + "readme": "# \"chalk\"\n\n> Terminal string styling done right\n\n[![Build Status](https://secure.travis-ci.org/sindresorhus/chalk.png?branch=master)](http://travis-ci.org/sindresorhus/chalk)\n\n[colors.js](https://github.com/Marak/colors.js) is currently the most popular string styling module, but it has serious deficiencies like extending String.prototype which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68). Although there are other ones, they either do too much or not enough.\n\n**Chalk is a clean and focused alternative.**\n\n![screenshot](screenshot.png)\n\n\n## Why\n\n- **Doesn't extend String.prototype**\n- Expressive API\n- Clean and focused\n- Auto-detects color support\n- Actively maintained\n- [Used by 150+ modules](https://npmjs.org/browse/depended/chalk)\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/chalk): `npm install --save chalk`\n\n\n## Example\n\nChalk comes with an easy to use composable API where you just chain and nest the styles you want.\n\n```js\nvar chalk = require('chalk');\n\n// style a string\nconsole.log( chalk.blue('Hello world!') );\n\n// combine styled and normal strings\nconsole.log( chalk.blue('Hello'), 'World' + chalk.red('!') );\n\n// compose multiple styles using the chainable API\nconsole.log( chalk.blue.bgRed.bold('Hello world!') );\n\n// nest styles\nconsole.log( chalk.red('Hello', chalk.underline.bgBlue('world') + '!') );\n\n// pass in multiple arguments\nconsole.log( chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz') );\n```\n\nYou can easily define your own themes.\n\n```js\nvar chalk = require('chalk');\nvar error = chalk.bold.red;\nconsole.log(error('Error!'));\n```\n\n\n## API\n\n### chalk.` + + + + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js new file mode 100644 index 00000000..24692256 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js @@ -0,0 +1,228 @@ +if (!this.uuid) { + // node.js + uuid = require('../uuid'); +} + +// +// x-platform log/assert shims +// + +function _log(msg, type) { + type = type || 'log'; + + if (typeof(document) != 'undefined') { + document.write('

      ' + msg.replace(/\n/g, '
      ') + '
      '); + } + if (typeof(console) != 'undefined') { + var color = { + log: '\033[39m', + warn: '\033[33m', + error: '\033[31m' + }; + console[type](color[type] + msg + color.log); + } +} + +function log(msg) {_log(msg, 'log');} +function warn(msg) {_log(msg, 'warn');} +function error(msg) {_log(msg, 'error');} + +function assert(res, msg) { + if (!res) { + error('FAIL: ' + msg); + } else { + log('Pass: ' + msg); + } +} + +// +// Unit tests +// + +// Verify ordering of v1 ids created with explicit times +var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 + +function compare(name, ids) { + ids = ids.map(function(id) { + return id.split('-').reverse().join('-'); + }).sort(); + var sorted = ([].concat(ids)).sort(); + + assert(sorted.toString() == ids.toString(), name + ' have expected order'); +} + +// Verify ordering of v1 ids created using default behavior +compare('uuids with current time', [ + uuid.v1(), + uuid.v1(), + uuid.v1(), + uuid.v1(), + uuid.v1() +]); + +// Verify ordering of v1 ids created with explicit times +compare('uuids with time option', [ + uuid.v1({msecs: TIME - 10*3600*1000}), + uuid.v1({msecs: TIME - 1}), + uuid.v1({msecs: TIME}), + uuid.v1({msecs: TIME + 1}), + uuid.v1({msecs: TIME + 28*24*3600*1000}) +]); + +assert( + uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), + 'IDs created at same msec are different' +); + +// Verify throw if too many ids created +var thrown = false; +try { + uuid.v1({msecs: TIME, nsecs: 10000}); +} catch (e) { + thrown = true; +} +assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); + +// Verify clock regression bumps clockseq +var uidt = uuid.v1({msecs: TIME}); +var uidtb = uuid.v1({msecs: TIME - 1}); +assert( + parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, + 'Clock regression by msec increments the clockseq' +); + +// Verify clock regression bumps clockseq +var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); +var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); +assert( + parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, + 'Clock regression by nsec increments the clockseq' +); + +// Verify explicit options produce expected id +var id = uuid.v1({ + msecs: 1321651533573, + nsecs: 5432, + clockseq: 0x385c, + node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] +}); +assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); + +// Verify adjacent ids across a msec boundary are 1 time unit apart +var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); +var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); + +var before = u0.split('-')[0], after = u1.split('-')[0]; +var dt = parseInt(after, 16) - parseInt(before, 16); +assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); + +// +// Test parse/unparse +// + +id = '00112233445566778899aabbccddeeff'; +assert(uuid.unparse(uuid.parse(id.substr(0,10))) == + '00112233-4400-0000-0000-000000000000', 'Short parse'); +assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == + '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); + +// +// Perf tests +// + +var generators = { + v1: uuid.v1, + v4: uuid.v4 +}; + +var UUID_FORMAT = { + v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, + v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i +}; + +var N = 1e4; + +// Get %'age an actual value differs from the ideal value +function divergence(actual, ideal) { + return Math.round(100*100*(actual - ideal)/ideal)/100; +} + +function rate(msg, t) { + log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); +} + +for (var version in generators) { + var counts = {}, max = 0; + var generator = generators[version]; + var format = UUID_FORMAT[version]; + + log('\nSanity check ' + N + ' ' + version + ' uuids'); + for (var i = 0, ok = 0; i < N; i++) { + id = generator(); + if (!format.test(id)) { + throw Error(id + ' is not a valid UUID string'); + } + + if (id != uuid.unparse(uuid.parse(id))) { + assert(fail, id + ' is not a valid id'); + } + + // Count digits for our randomness check + if (version == 'v4') { + var digits = id.replace(/-/g, '').split(''); + for (var j = digits.length-1; j >= 0; j--) { + var c = digits[j]; + max = Math.max(max, counts[c] = (counts[c] || 0) + 1); + } + } + } + + // Check randomness for v4 UUIDs + if (version == 'v4') { + // Limit that we get worried about randomness. (Purely empirical choice, this!) + var limit = 2*100*Math.sqrt(1/N); + + log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); + + for (var i = 0; i < 16; i++) { + var c = i.toString(16); + var bar = '', n = counts[c], p = Math.round(n/max*100|0); + + // 1-3,5-8, and D-F: 1:16 odds over 30 digits + var ideal = N*30/16; + if (i == 4) { + // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits + ideal = N*(1 + 30/16); + } else if (i >= 8 && i <= 11) { + // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits + ideal = N*(1/4 + 30/16); + } else { + // Otherwise: 1:16 odds on 30 digits + ideal = N*30/16; + } + var d = divergence(n, ideal); + + // Draw bar using UTF squares (just for grins) + var s = n/max*50 | 0; + while (s--) bar += '='; + + assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); + } + } +} + +// Perf tests +for (var version in generators) { + log('\nPerformance testing ' + version + ' UUIDs'); + var generator = generators[version]; + var buf = new uuid.BufferClass(16); + + for (var i = 0, t = Date.now(); i < N; i++) generator(); + rate('uuid.' + version + '()', t); + + for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); + rate('uuid.' + version + '(\'binary\')', t); + + for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); + rate('uuid.' + version + '(\'binary\', buffer)', t); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js new file mode 100644 index 00000000..2fac6dc4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js @@ -0,0 +1,245 @@ +// uuid.js +// +// Copyright (c) 2010-2012 Robert Kieffer +// MIT License - http://opensource.org/licenses/mit-license.php + +(function() { + var _global = this; + + // Unique ID creation requires a high quality random # generator. We feature + // detect to determine the best RNG source, normalizing to a function that + // returns 128-bits of randomness, since that's what's usually required + var _rng; + + // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html + // + // Moderately fast, high quality + if (typeof(require) == 'function') { + try { + var _rb = require('crypto').randomBytes; + _rng = _rb && function() {return _rb(16);}; + } catch(e) {} + } + + if (!_rng && _global.crypto && crypto.getRandomValues) { + // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto + // + // Moderately fast, high quality + var _rnds8 = new Uint8Array(16); + _rng = function whatwgRNG() { + crypto.getRandomValues(_rnds8); + return _rnds8; + }; + } + + if (!_rng) { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var _rnds = new Array(16); + _rng = function() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } + + return _rnds; + }; + } + + // Buffer class to use + var BufferClass = typeof(Buffer) == 'function' ? Buffer : Array; + + // Maps for number <-> hex string conversion + var _byteToHex = []; + var _hexToByte = {}; + for (var i = 0; i < 256; i++) { + _byteToHex[i] = (i + 0x100).toString(16).substr(1); + _hexToByte[_byteToHex[i]] = i; + } + + // **`parse()` - Parse a UUID into it's component bytes** + function parse(s, buf, offset) { + var i = (buf && offset) || 0, ii = 0; + + buf = buf || []; + s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { + if (ii < 16) { // Don't overflow! + buf[i + ii++] = _hexToByte[oct]; + } + }); + + // Zero out remaining bytes if string was short + while (ii < 16) { + buf[i + ii++] = 0; + } + + return buf; + } + + // **`unparse()` - Convert UUID byte array (ala parse()) into a string** + function unparse(buf, offset) { + var i = offset || 0, bth = _byteToHex; + return bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]]; + } + + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + + // random #'s we need to init node and clockseq + var _seedBytes = _rng(); + + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + var _nodeId = [ + _seedBytes[0] | 0x01, + _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] + ]; + + // Per 4.2.2, randomize (14 bit) clockseq + var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; + + // Previous uuid creation time + var _lastMSecs = 0, _lastNSecs = 0; + + // See https://github.com/broofa/node-uuid for API details + function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; + + options = options || {}; + + var clockseq = options.clockseq != null ? options.clockseq : _clockseq; + + // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + var msecs = options.msecs != null ? options.msecs : new Date().getTime(); + + // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1; + + // Time since last uuid creation (in msecs) + var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; + + // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq == null) { + clockseq = clockseq + 1 & 0x3fff; + } + + // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { + nsecs = 0; + } + + // Per 4.2.1.2 Throw error if too many uuids are requested + if (nsecs >= 10000) { + throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + + // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000; + + // `time_low` + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; + + // `time_mid` + var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; + + // `time_high_and_version` + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + b[i++] = tmh >>> 16 & 0xff; + + // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + b[i++] = clockseq >>> 8 | 0x80; + + // `clock_seq_low` + b[i++] = clockseq & 0xff; + + // `node` + var node = options.node || _nodeId; + for (var n = 0; n < 6; n++) { + b[i + n] = node[n]; + } + + return buf ? buf : unparse(b); + } + + // **`v4()` - Generate random UUID** + + // See https://github.com/broofa/node-uuid for API details + function v4(options, buf, offset) { + // Deprecated - 'format' argument, as supported in v1.2 + var i = buf && offset || 0; + + if (typeof(options) == 'string') { + buf = options == 'binary' ? new BufferClass(16) : null; + options = null; + } + options = options || {}; + + var rnds = options.random || (options.rng || _rng)(); + + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ii++) { + buf[i + ii] = rnds[ii]; + } + } + + return buf || unparse(rnds); + } + + // Export public API + var uuid = v4; + uuid.v1 = v1; + uuid.v4 = v4; + uuid.parse = parse; + uuid.unparse = unparse; + uuid.BufferClass = BufferClass; + + if (typeof define === 'function' && define.amd) { + // Publish as AMD module + define(function() {return uuid;}); + } else if (typeof(module) != 'undefined' && module.exports) { + // Publish as node.js module + module.exports = uuid; + } else { + // Publish as global (in browsers) + var _previousRoot = _global.uuid; + + // **`noConflict()` - (browser only) to reset global 'uuid' var** + uuid.noConflict = function() { + _global.uuid = _previousRoot; + return uuid; + }; + + _global.uuid = uuid; + } +}).call(this); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE @@ -0,0 +1,55 @@ +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +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 + +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 \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md new file mode 100644 index 00000000..34c4a85d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md @@ -0,0 +1,4 @@ +oauth-sign +========== + +OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js new file mode 100644 index 00000000..e35bfa67 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js @@ -0,0 +1,43 @@ +var crypto = require('crypto') + , qs = require('querystring') + ; + +function sha1 (key, body) { + return crypto.createHmac('sha1', key).update(body).digest('base64') +} + +function rfc3986 (str) { + return encodeURIComponent(str) + .replace(/!/g,'%21') + .replace(/\*/g,'%2A') + .replace(/\(/g,'%28') + .replace(/\)/g,'%29') + .replace(/'/g,'%27') + ; +} + +function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) { + // adapted from https://dev.twitter.com/docs/auth/oauth and + // https://dev.twitter.com/docs/auth/creating-signature + + var querystring = Object.keys(params).sort().map(function(key){ + // big WTF here with the escape + encoding but it's what twitter wants + return escape(rfc3986(key)) + "%3D" + escape(rfc3986(params[key])) + }).join('%26') + + var base = [ + httpMethod ? httpMethod.toUpperCase() : 'GET', + rfc3986(base_uri), + querystring + ].join('&') + + var key = [ + consumer_secret, + token_secret || '' + ].map(rfc3986).join('&') + + return sha1(key, base) +} + +exports.hmacsign = hmacsign +exports.rfc3986 = rfc3986 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json new file mode 100644 index 00000000..abc9d21d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json @@ -0,0 +1,35 @@ +{ + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "name": "oauth-sign", + "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", + "version": "0.3.0", + "repository": { + "url": "https://github.com/mikeal/oauth-sign" + }, + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "scripts": { + "test": "node test.js" + }, + "readme": "oauth-sign\n==========\n\nOAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. \n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/mikeal/oauth-sign/issues" + }, + "homepage": "https://github.com/mikeal/oauth-sign", + "_id": "oauth-sign@0.3.0", + "dist": { + "shasum": "cb540f93bb2b22a7d5941691a288d60e8ea9386e" + }, + "_from": "oauth-sign@~0.3.0", + "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js new file mode 100644 index 00000000..46955ff6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js @@ -0,0 +1,49 @@ +var hmacsign = require('./index').hmacsign + , assert = require('assert') + , qs = require('querystring') + ; + +// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth + +var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', + { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' + , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' + , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' + , oauth_signature_method: 'HMAC-SHA1' + , oauth_timestamp: '1272323042' + , oauth_version: '1.0' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98") + +console.log(reqsign) +console.log('8wUi7m5HFQy76nowoCThusfgB+Q=') +assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=') + +var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', + { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' + , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' + , oauth_signature_method: 'HMAC-SHA1' + , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' + , oauth_timestamp: '1272323047' + , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' + , oauth_version: '1.0' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") + +console.log(accsign) +console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') +assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') + +var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', + { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" + , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" + , oauth_signature_method: "HMAC-SHA1" + , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" + , oauth_timestamp: "1272325550" + , oauth_version: "1.0" + , status: 'setting up my twitter 私のさえずりを設定する' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") + +console.log(upsign) +console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=') +assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=') + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules new file mode 100644 index 00000000..49e31dac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules @@ -0,0 +1,6 @@ +[submodule "support/expresso"] + path = support/expresso + url = git://github.com/visionmedia/expresso.git +[submodule "support/should"] + path = support/should + url = git://github.com/visionmedia/should.js.git diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore new file mode 100644 index 00000000..e85ce2af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore @@ -0,0 +1,7 @@ +test +.travis.yml +benchmark.js +component.json +examples.js +History.md +Makefile diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md new file mode 100644 index 00000000..27e54a4a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md @@ -0,0 +1,58 @@ +# node-querystring + + query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others. + +## Installation + + $ npm install qs + +## Examples + +```js +var qs = require('qs'); + +qs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com'); +// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } } + +qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }}) +// => user[name]=Tobi&user[email]=tobi%40learnboost.com +``` + +## Testing + +Install dev dependencies: + + $ npm install -d + +and execute: + + $ make test + +browser: + + $ open test/browser/index.html + +## License + +(The MIT License) + +Copyright (c) 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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js new file mode 100644 index 00000000..b05938ac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js @@ -0,0 +1,366 @@ +/** + * Object#toString() ref for stringify(). + */ + +var toString = Object.prototype.toString; + +/** + * Object#hasOwnProperty ref + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Array#indexOf shim. + */ + +var indexOf = typeof Array.prototype.indexOf === 'function' + ? function(arr, el) { return arr.indexOf(el); } + : function(arr, el) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === el) return i; + } + return -1; + }; + +/** + * Array.isArray shim. + */ + +var isArray = Array.isArray || function(arr) { + return toString.call(arr) == '[object Array]'; +}; + +/** + * Object.keys shim. + */ + +var objectKeys = Object.keys || function(obj) { + var ret = []; + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + ret.push(key); + } + } + return ret; +}; + +/** + * Array#forEach shim. + */ + +var forEach = typeof Array.prototype.forEach === 'function' + ? function(arr, fn) { return arr.forEach(fn); } + : function(arr, fn) { + for (var i = 0; i < arr.length; i++) fn(arr[i]); + }; + +/** + * Array#reduce shim. + */ + +var reduce = function(arr, fn, initial) { + if (typeof arr.reduce === 'function') return arr.reduce(fn, initial); + var res = initial; + for (var i = 0; i < arr.length; i++) res = fn(res, arr[i]); + return res; +}; + +/** + * Cache non-integer test regexp. + */ + +var isint = /^[0-9]+$/; + +function promote(parent, key) { + if (parent[key].length == 0) return parent[key] = {} + var t = {}; + for (var i in parent[key]) { + if (hasOwnProperty.call(parent[key], i)) { + t[i] = parent[key][i]; + } + } + parent[key] = t; + return t; +} + +function parse(parts, parent, key, val) { + var part = parts.shift(); + + // illegal + if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; + + // end + if (!part) { + if (isArray(parent[key])) { + parent[key].push(val); + } else if ('object' == typeof parent[key]) { + parent[key] = val; + } else if ('undefined' == typeof parent[key]) { + parent[key] = val; + } else { + parent[key] = [parent[key], val]; + } + // array + } else { + var obj = parent[key] = parent[key] || []; + if (']' == part) { + if (isArray(obj)) { + if ('' != val) obj.push(val); + } else if ('object' == typeof obj) { + obj[objectKeys(obj).length] = val; + } else { + obj = parent[key] = [parent[key], val]; + } + // prop + } else if (~indexOf(part, ']')) { + part = part.substr(0, part.length - 1); + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + // key + } else { + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + } + } +} + +/** + * Merge parent key/val pair. + */ + +function merge(parent, key, val){ + if (~indexOf(key, ']')) { + var parts = key.split('[') + , len = parts.length + , last = len - 1; + parse(parts, parent, 'base', val); + // optimize + } else { + if (!isint.test(key) && isArray(parent.base)) { + var t = {}; + for (var k in parent.base) t[k] = parent.base[k]; + parent.base = t; + } + set(parent.base, key, val); + } + + return parent; +} + +/** + * Compact sparse arrays. + */ + +function compact(obj) { + if ('object' != typeof obj) return obj; + + if (isArray(obj)) { + var ret = []; + + for (var i in obj) { + if (hasOwnProperty.call(obj, i)) { + ret.push(obj[i]); + } + } + + return ret; + } + + for (var key in obj) { + obj[key] = compact(obj[key]); + } + + return obj; +} + +/** + * Parse the given obj. + */ + +function parseObject(obj){ + var ret = { base: {} }; + + forEach(objectKeys(obj), function(name){ + merge(ret, name, obj[name]); + }); + + return compact(ret.base); +} + +/** + * Parse the given str. + */ + +function parseString(str){ + var ret = reduce(String(str).split('&'), function(ret, pair){ + var eql = indexOf(pair, '=') + , brace = lastBraceInKey(pair) + , key = pair.substr(0, brace || eql) + , val = pair.substr(brace || eql, pair.length) + , val = val.substr(indexOf(val, '=') + 1, val.length); + + // ?foo + if ('' == key) key = pair, val = ''; + if ('' == key) return ret; + + return merge(ret, decode(key), decode(val)); + }, { base: {} }).base; + + return compact(ret); +} + +/** + * Parse the given query `str` or `obj`, returning an object. + * + * @param {String} str | {Object} obj + * @return {Object} + * @api public + */ + +exports.parse = function(str){ + if (null == str || '' == str) return {}; + return 'object' == typeof str + ? parseObject(str) + : parseString(str); +}; + +/** + * Turn the given `obj` into a query string + * + * @param {Object} obj + * @return {String} + * @api public + */ + +var stringify = exports.stringify = function(obj, prefix) { + if (isArray(obj)) { + return stringifyArray(obj, prefix); + } else if ('[object Object]' == toString.call(obj)) { + return stringifyObject(obj, prefix); + } else if ('string' == typeof obj) { + return stringifyString(obj, prefix); + } else { + return prefix + '=' + encodeURIComponent(String(obj)); + } +}; + +/** + * Stringify the given `str`. + * + * @param {String} str + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyString(str, prefix) { + if (!prefix) throw new TypeError('stringify expects an object'); + return prefix + '=' + encodeURIComponent(str); +} + +/** + * Stringify the given `arr`. + * + * @param {Array} arr + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyArray(arr, prefix) { + var ret = []; + if (!prefix) throw new TypeError('stringify expects an object'); + for (var i = 0; i < arr.length; i++) { + ret.push(stringify(arr[i], prefix + '[' + i + ']')); + } + return ret.join('&'); +} + +/** + * Stringify the given `obj`. + * + * @param {Object} obj + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyObject(obj, prefix) { + var ret = [] + , keys = objectKeys(obj) + , key; + + for (var i = 0, len = keys.length; i < len; ++i) { + key = keys[i]; + if ('' == key) continue; + if (null == obj[key]) { + ret.push(encodeURIComponent(key) + '='); + } else { + ret.push(stringify(obj[key], prefix + ? prefix + '[' + encodeURIComponent(key) + ']' + : encodeURIComponent(key))); + } + } + + return ret.join('&'); +} + +/** + * Set `obj`'s `key` to `val` respecting + * the weird and wonderful syntax of a qs, + * where "foo=bar&foo=baz" becomes an array. + * + * @param {Object} obj + * @param {String} key + * @param {String} val + * @api private + */ + +function set(obj, key, val) { + var v = obj[key]; + if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; + if (undefined === v) { + obj[key] = val; + } else if (isArray(v)) { + v.push(val); + } else { + obj[key] = [v, val]; + } +} + +/** + * Locate last brace in `str` within the key. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function lastBraceInKey(str) { + var len = str.length + , brace + , c; + for (var i = 0; i < len; ++i) { + c = str[i]; + if (']' == c) brace = false; + if ('[' == c) brace = true; + if ('=' == c && !brace) return i; + } +} + +/** + * Decode `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +function decode(str) { + try { + return decodeURIComponent(str.replace(/\+/g, ' ')); + } catch (err) { + return str; + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json new file mode 100644 index 00000000..313485c0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json @@ -0,0 +1,38 @@ +{ + "name": "qs", + "description": "querystring parser", + "version": "0.6.6", + "keywords": [ + "query string", + "parser", + "component" + ], + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-querystring.git" + }, + "devDependencies": { + "mocha": "*", + "expect.js": "*" + }, + "scripts": { + "test": "make test" + }, + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "main": "index", + "engines": { + "node": "*" + }, + "readme": "# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require('qs');\n\nqs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com');\n// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } }\n\nqs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", + "bugs": { + "url": "https://github.com/visionmedia/node-querystring/issues" + }, + "homepage": "https://github.com/visionmedia/node-querystring", + "_id": "qs@0.6.6", + "_from": "qs@~0.6.0" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc new file mode 100644 index 00000000..8fcead4f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc @@ -0,0 +1,72 @@ +{ + // Settings + "passfail" : false, // Stop on first error. + "maxerr" : 100, // Maximum error before stopping. + + + // Predefined globals whom JSHint will ignore. + "browser" : false, // Standard browser globals e.g. `window`, `document`. + "node" : true, + "rhino" : false, + "couch" : false, + "wsh" : false, // Windows Scripting Host. + + "jquery" : false, + "prototypejs" : false, + "mootools" : false, + "dojo" : false, + + "predef" : [ // Custom globals. + "escape", "unescape" // aren't picked up by node flag above :/ + ], + + + // Development. + "debug" : false, // Allow debugger statements e.g. browser breakpoints. + "devel" : false, // Allow developments statements e.g. `console.log();`. + + + // EcmaScript 5. + "es5" : true, // Allow EcmaScript 5 syntax. + "esnext" : true, // Allow ES "next" syntax, specifically 'const' (V8 has this) + "strict" : false, // Require `use strict` pragma in every file. + "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). + + + // The Good Parts. + "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). + "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. + "bitwise" : true, // Prohibit bitwise operators (&, |, ^, etc.). + "boss" : false, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. + "curly" : false, // Require {} for every new block or scope. + "eqeqeq" : false, // Require triple equals i.e. `===`. + "eqnull" : true, // Tolerate use of `== null`. + "evil" : false, // Tolerate use of `eval`. + "expr" : true, // Tolerate `ExpressionStatement` as Programs. + "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. + "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef" : false, // Prohibit variable use before definition. + "loopfunc" : false, // Allow functions to be defined within loops. + "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "regexp" : true, // Prohibit `.` and `[^...]` in regular expressions. + "regexdash" : false, // Tolerate unescaped last dash i.e. `[-...]`. + "scripturl" : true, // Tolerate script-targeted URLs. + "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. + "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. + "undef" : true, // Require all non-global variables be declared before they are used. + + + // Personal styling prefrences. + "lastsemic" : true, // Prohibit missing semicolon for the last statement in a one-line block + "newcap" : false, // Require capitalization of all constructor functions e.g. `new F()`. + "noempty" : true, // Prohipit use of empty blocks. + "nonew" : true, // Prohibit use of constructors for side-effects. + "nomen" : false, // Prohibit use of initial or trailing underbars in names. + "onevar" : false, // Allow only one `var` statement per function. + "onecase" : false, // Allow switches with one case statement + "plusplus" : false, // Prohibit use of `++` & `--`. + "proto" : false, // Allow use of __proto__ + "sub" : true, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. + "trailing" : true, // Prohibit trailing whitespaces. + "white" : false // Check against strict whitespace and indentation rules. +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore new file mode 100644 index 00000000..54efff98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore @@ -0,0 +1,3 @@ +node_modules/ +.*.sw[nmop] +npm-debug.log diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE new file mode 100644 index 00000000..3fac4c85 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE @@ -0,0 +1,78 @@ +Copyright GoInstant, Inc. and other contributors. 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. + +The following exceptions apply: + +=== + +`pubSufTest()` of generate-pubsuffix.js is in the public domain. + + // Any copyright is dedicated to the Public Domain. + // http://creativecommons.org/publicdomain/zero/1.0/ + +=== + +`public-suffix.txt` was obtained from + +via . + +That file contains the usual Mozilla triple-license, for which this project uses it +under the terms of the MPL 1.1: + + // ***** BEGIN LICENSE BLOCK ***** + // Version: MPL 1.1/GPL 2.0/LGPL 2.1 + // + // The contents of this file are subject to the Mozilla Public License Version + // 1.1 (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.mozilla.org/MPL/ + // + // Software distributed under the License is distributed on an "AS IS" basis, + // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + // for the specific language governing rights and limitations under the + // License. + // + // The Original Code is the Public Suffix List. + // + // The Initial Developer of the Original Code is + // Jo Hermans . + // Portions created by the Initial Developer are Copyright (C) 2007 + // the Initial Developer. All Rights Reserved. + // + // Contributor(s): + // Ruben Arakelyan + // Gervase Markham + // Pamela Greene + // David Triendl + // Jothan Frakes + // The kind representatives of many TLD registries + // + // Alternatively, the contents of this file may be used under the terms of + // either the GNU General Public License Version 2 or later (the "GPL"), or + // the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + // in which case the provisions of the GPL or the LGPL are applicable instead + // of those above. If you wish to allow use of your version of this file only + // under the terms of either the GPL or the LGPL, and not to allow others to + // use your version of this file under the terms of the MPL, indicate your + // decision by deleting the provisions above and replace them with the notice + // and other provisions required by the GPL or the LGPL. If you do not delete + // the provisions above, a recipient may use your version of this file under + // the terms of any one of the MPL, the GPL or the LGPL. + // + // ***** END LICENSE BLOCK ***** diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md new file mode 100644 index 00000000..fd1dbb1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md @@ -0,0 +1,380 @@ +[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js + +![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg) + +# Synopsis + +``` javascript +var cookies = require('tough-cookie'); // note: not 'cookie', 'cookies' or 'node-cookie' +var Cookie = cookies.Cookie; +var cookie = Cookie.parse(header); +cookie.value = 'somethingdifferent'; +header = cookie.toString(); + +var cookiejar = new cookies.CookieJar(); +cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb); +// ... +cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) { + res.headers['cookie'] = cookies.join('; '); +}); +``` + +# Installation + +It's _so_ easy! + +`npm install tough-cookie` + +Requires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default. + +Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken. + +# API + +cookies +======= + +Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound". + +parseDate(string[,strict]) +----------------- + +Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. "Thu, 01 Jan 1970 00:00:010 GMT" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid). + +formatDate(date) +---------------- + +Format a Date into a RFC1123 string (the RFC6265-recommended format). + +canonicalDomain(str) +-------------------- + +Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects). + +domainMatch(str,domStr[,canonicalize=true]) +------------------------------------------- + +Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match". + +The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not. + +defaultPath(path) +----------------- + +Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC. + +The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output. + +pathMatch(reqPath,cookiePath) +----------------------------- + +Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean. + +This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`. + +parse(header[,strict=false]) +---------------------------- + +alias for `Cookie.parse(header[,strict])` + +fromJSON(string) +---------------- + +alias for `Cookie.fromJSON(string)` + +getPublicSuffix(hostname) +------------------------- + +Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it. + +For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`. + +For further information, see http://publicsuffix.org/. This module derives its list from that site. + +cookieCompare(a,b) +------------------ + +For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest. + +``` javascript +var cookies = [ /* unsorted array of Cookie objects */ ]; +cookies = cookies.sort(cookieCompare); +``` + +permuteDomain(domain) +--------------------- + +Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores. + + +permutePath(path) +----------------- + +Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores. + +Cookie +====== + +Cookie.parse(header[,strict=false]) +----------------------------------- + +Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. If in strict mode, returns `undefined` if the cookie doesn't follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off. + +Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response: + +``` javascript +if (res.headers['set-cookie'] instanceof Array) + cookies = res.headers['set-cookie'].map(Cookie.parse); +else + cookies = [Cookie.parse(res.headers['set-cookie'])]; +``` + +Cookie.fromJSON(string) +----------------------- + +Convert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects. + +Properties +========== + + * _key_ - string - the name or key of the cookie (default "") + * _value_ - string - the value of the cookie (default "") + * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()` + * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()` + * _domain_ - string - the `Domain=` attribute of the cookie + * _path_ - string - the `Path=` of the cookie + * _secure_ - boolean - the `Secure` cookie flag + * _httpOnly_ - boolean - the `HttpOnly` cookie flag + * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside) + +After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes: + + * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied) + * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one. + * _created_ - `Date` - when this cookie was added to the jar + * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute. + +Construction([{options}]) +------------ + +Receives an options object that can contain any Cookie properties, uses the default for unspecified properties. + +.toString() +----------- + +encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`. + +.cookieString() +--------------- + +encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '='). + +.setExpires(String) +------------------- + +sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set. + +.setMaxAge(number) +------------------- + +sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly. + +.expiryTime([now=Date.now()]) +----------------------------- + +.expiryDate([now=Date.now()]) +----------------------------- + +expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds. + +Max-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute. + +If Expires (`.expires`) is set, that's returned. + +Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents). + +.TTL([now=Date.now()]) +--------- + +compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply. + +The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. + +.canonicalizedDoman() +--------------------- + +.cdomain() +---------- + +return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters. + +.validate() +----------- + +Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive. + +validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct: + +``` javascript +if (cookie.validate() === true) { + // it's tasty +} else { + // yuck! +} +``` + +CookieJar +========= + +Construction([store = new MemoryCookieStore()][, rejectPublicSuffixes]) +------------ + +Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used. + + +Attributes +---------- + + * _rejectPublicSuffixes_ - boolean - reject cookies with domains like "com" and "co.uk" (default: `true`) + +Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods. + +.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie)) +------------------------------------------------------------------- + +Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _strict_ - boolean - default `false` - perform extra checks + * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren't ignored by this option. + +As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual). + +.storeCookie(cookie, [{options},] cb(err,cookie)) +------------------------------------------------- + +__REMOVED__ removed in lieu of the CookieStore API below + +.getCookies(currentUrl, [{options},] cb(err,cookies)) +----------------------------------------------------- + +Retrieve the list of cookies that can be sent in a Cookie header for the current url. + +If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially). + * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it). + +The `.lastAccessed` property of the returned cookies will have been updated. + +.getCookieString(...) +--------------------- + +Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`. + +.getSetCookieStrings(...) +------------------------- + +Accepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`. + +# CookieStore API + +The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores. + +All `domain` parameters will have been normalized before calling. + +The Cookie store must have all of the following methods. + +store.findCookie(domain, path, key, cb(err,cookie)) +--------------------------------------------------- + +Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned. + +Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error). + +store.findCookies(domain, path, cb(err,cookies)) +------------------------------------------------ + +Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above. + +If no cookies are found, the callback MUST be passed an empty array. + +The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done. + +As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only). + +store.putCookie(cookie, cb(err)) +-------------------------------- + +Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur. + +The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties. + +Pass an error if the cookie cannot be stored. + +store.updateCookie(oldCookie, newCookie, cb(err)) +------------------------------------------------- + +Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store. + +The `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion). + +Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object. + +The `newCookie` and `oldCookie` objects MUST NOT be modified. + +Pass an error if the newCookie cannot be stored. + +store.removeCookie(domain, path, key, cb(err)) +---------------------------------------------- + +Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint). + +The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie. + +store.removeCookies(domain, path, cb(err)) +------------------------------------------ + +Removes matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed. + +Pass an error ONLY if removing any existing cookies failed. + +# TODO + + * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()` + * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891 + * better tests for `validate()`? + +# Copyright and License + +(tl;dr: MIT with some MPL/1.1) + +Copyright GoInstant, Inc. and other contributors. 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. + +Portions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js new file mode 100644 index 00000000..a7fa5452 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js @@ -0,0 +1,230 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +var fs = require('fs'); +var assert = require('assert'); +var punycode = require('punycode'); + +fs.readFile('./public-suffix.txt', 'utf8', function(err,string) { + if (err) throw err; + var lines = string.split("\n"); + process.nextTick(function() { + processList(lines); + }); +}); + +var index = {}; + +var COMMENT = new RegExp('//.+'); +function processList(lines) { + while (lines.length) { + var line = lines.shift(); + line = line.replace(COMMENT,'').trim(); + if (!line) continue; + addToIndex(index,line); + } + + pubSufTest(); + + var w = fs.createWriteStream('./lib/pubsuffix.js',{ + flags: 'w', + encoding: 'utf8', + mode: 0644, + }); + w.on('end', process.exit); + w.write("/****************************************************\n"); + w.write(" * AUTOMATICALLY GENERATED by generate-pubsuffix.js *\n"); + w.write(" * DO NOT EDIT! *\n"); + w.write(" ****************************************************/\n\n"); + + w.write("module.exports.getPublicSuffix = "); + w.write(getPublicSuffix.toString()); + w.write(";\n\n"); + + w.write("// The following generated structure is used under the MPL version 1.1\n"); + w.write("// See public-suffix.txt for more information\n\n"); + w.write("var index = module.exports.index = Object.freeze(\n"); + w.write(JSON.stringify(index)); + w.write(");\n\n"); + w.write("// END of automatically generated file\n"); + + w.end(); +} + +function addToIndex(index,line) { + var prefix = ''; + if (line.replace(/^(!|\*\.)/)) { + prefix = RegExp.$1; + line = line.slice(prefix.length); + } + line = prefix + punycode.toASCII(line); + + if (line.substr(0,1) == '!') + index[line.substr(1)] = false; + else + index[line] = true; +} + +// include the licence in the function since it gets written to pubsuffix.js +function getPublicSuffix(domain) { + /* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + if (!domain) return null; + if (domain.match(/^\./)) return null; + + domain = domain.toLowerCase(); + var parts = domain.split('.').reverse(); + + var suffix = ''; + var suffixLen = 0; + for (var i=0; i suffixLen) { + return parts.slice(0,suffixLen+1).reverse().join('.'); + } + + return null; +} + +function checkPublicSuffix(give,get) { + var got = getPublicSuffix(give); + assert.equal(got, get, give+' should be '+(get==null?'NULL':get)+' but got '+got); +} + +// pubSufTest() was converted to JavaScript from http://publicsuffix.org/list/test.txt +function pubSufTest() { + // For this function-scope and this function-scope ONLY: + // Any copyright is dedicated to the Public Domain. + // http://creativecommons.org/publicdomain/zero/1.0/ + + // NULL input. + checkPublicSuffix(null, null); + // Mixed case. + checkPublicSuffix('COM', null); + checkPublicSuffix('example.COM', 'example.com'); + checkPublicSuffix('WwW.example.COM', 'example.com'); + // Leading dot. + checkPublicSuffix('.com', null); + checkPublicSuffix('.example', null); + checkPublicSuffix('.example.com', null); + checkPublicSuffix('.example.example', null); + // Unlisted TLD. + checkPublicSuffix('example', null); + checkPublicSuffix('example.example', null); + checkPublicSuffix('b.example.example', null); + checkPublicSuffix('a.b.example.example', null); + // Listed, but non-Internet, TLD. + checkPublicSuffix('local', null); + checkPublicSuffix('example.local', null); + checkPublicSuffix('b.example.local', null); + checkPublicSuffix('a.b.example.local', null); + // TLD with only 1 rule. + checkPublicSuffix('biz', null); + checkPublicSuffix('domain.biz', 'domain.biz'); + checkPublicSuffix('b.domain.biz', 'domain.biz'); + checkPublicSuffix('a.b.domain.biz', 'domain.biz'); + // TLD with some 2-level rules. + checkPublicSuffix('com', null); + checkPublicSuffix('example.com', 'example.com'); + checkPublicSuffix('b.example.com', 'example.com'); + checkPublicSuffix('a.b.example.com', 'example.com'); + checkPublicSuffix('uk.com', null); + checkPublicSuffix('example.uk.com', 'example.uk.com'); + checkPublicSuffix('b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('a.b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('test.ac', 'test.ac'); + // TLD with only 1 (wildcard) rule. + checkPublicSuffix('cy', null); + checkPublicSuffix('c.cy', null); + checkPublicSuffix('b.c.cy', 'b.c.cy'); + checkPublicSuffix('a.b.c.cy', 'b.c.cy'); + // More complex TLD. + checkPublicSuffix('jp', null); + checkPublicSuffix('test.jp', 'test.jp'); + checkPublicSuffix('www.test.jp', 'test.jp'); + checkPublicSuffix('ac.jp', null); + checkPublicSuffix('test.ac.jp', 'test.ac.jp'); + checkPublicSuffix('www.test.ac.jp', 'test.ac.jp'); + checkPublicSuffix('kyoto.jp', null); + checkPublicSuffix('c.kyoto.jp', null); + checkPublicSuffix('b.c.kyoto.jp', 'b.c.kyoto.jp'); + checkPublicSuffix('a.b.c.kyoto.jp', 'b.c.kyoto.jp'); + checkPublicSuffix('pref.kyoto.jp', 'pref.kyoto.jp'); // Exception rule. + checkPublicSuffix('www.pref.kyoto.jp', 'pref.kyoto.jp'); // Exception rule. + checkPublicSuffix('city.kyoto.jp', 'city.kyoto.jp'); // Exception rule. + checkPublicSuffix('www.city.kyoto.jp', 'city.kyoto.jp'); // Exception rule. + // TLD with a wildcard rule and exceptions. + checkPublicSuffix('om', null); + checkPublicSuffix('test.om', null); + checkPublicSuffix('b.test.om', 'b.test.om'); + checkPublicSuffix('a.b.test.om', 'b.test.om'); + checkPublicSuffix('songfest.om', 'songfest.om'); + checkPublicSuffix('www.songfest.om', 'songfest.om'); + // US K12. + checkPublicSuffix('us', null); + checkPublicSuffix('test.us', 'test.us'); + checkPublicSuffix('www.test.us', 'test.us'); + checkPublicSuffix('ak.us', null); + checkPublicSuffix('test.ak.us', 'test.ak.us'); + checkPublicSuffix('www.test.ak.us', 'test.ak.us'); + checkPublicSuffix('k12.ak.us', null); + checkPublicSuffix('test.k12.ak.us', 'test.k12.ak.us'); + checkPublicSuffix('www.test.k12.ak.us', 'test.k12.ak.us'); + + +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js new file mode 100644 index 00000000..1d8615b5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js @@ -0,0 +1,947 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +/*jshint regexp:false */ +var net = require('net'); +var urlParse = require('url').parse; +var pubsuffix = require('./pubsuffix'); + +var punycode; +try { + punycode = require('punycode'); +} catch(e) { + console.warn("cookie: can't load punycode; won't use punycode for domain normalization"); +} + +var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/; + +// From RFC2616 S2.2: +var TOKEN = /[\x21\x23-\x26\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/; + +// From RFC6265 S4.1.1 +// note that it excludes \x3B ";" +var COOKIE_OCTET = /[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/; +var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/; + +// The name/key cannot be empty but the value can (S5.2): +var COOKIE_PAIR_STRICT = new RegExp('^('+TOKEN.source+'+)=("?)('+COOKIE_OCTET.source+'*)\\2'); +var COOKIE_PAIR = /^([^=\s]+)\s*=\s*("?)\s*(.*)\s*\2/; + +// RFC6265 S4.1.1 defines extension-av as 'any CHAR except CTLs or ";"' +// Note ';' is \x3B +var NON_CTL_SEMICOLON = /[\x20-\x3A\x3C-\x7E]+/; +var EXTENSION_AV = NON_CTL_SEMICOLON; +var PATH_VALUE = NON_CTL_SEMICOLON; + +// Used for checking whether or not there is a trailing semi-colon +var TRAILING_SEMICOLON = /;+$/; + +/* RFC6265 S5.1.1.5: + * [fail if] the day-of-month-value is less than 1 or greater than 31 + */ +var DAY_OF_MONTH = /^(0?[1-9]|[12][0-9]|3[01])$/; + +/* RFC6265 S5.1.1.5: + * [fail if] + * * the hour-value is greater than 23, + * * the minute-value is greater than 59, or + * * the second-value is greater than 59. + */ +var TIME = /(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/; +var STRICT_TIME = /^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/; + +var MONTH = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$/i; +var MONTH_TO_NUM = { + jan:0, feb:1, mar:2, apr:3, may:4, jun:5, jul:6, aug:7, sep:8, oct:9, nov:10, dec:11 +}; +var NUM_TO_MONTH = [ + 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' +]; +var NUM_TO_DAY = [ + 'Sun','Mon','Tue','Wed','Thu','Fri','Sat' +]; + +var YEAR = /^([1-9][0-9]{1,3})$/; // 2 to 4 digits (will check range when parsing) + +var MAX_TIME = 2147483647000; // 31-bit max +var MAX_DATE = new Date(CookieJar.MAX_TIME); // 31-bit max +var MIN_TIME = 0; // 31-bit min +var MIN_DATE = new Date(CookieJar.MIN_TIME); // 31-bit min + + +// RFC6265 S5.1.1 date parser: +function parseDate(str,strict) { + if (!str) return; + var found_time, found_dom, found_month, found_year; + + /* RFC6265 S5.1.1: + * 2. Process each date-token sequentially in the order the date-tokens + * appear in the cookie-date + */ + var tokens = str.split(DATE_DELIM); + if (!tokens) return; + + var date = new Date(); + date.setMilliseconds(0); + + for (var i=0; i= 10 ? d : '0'+d; + var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h; + var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m; + var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s; + return NUM_TO_DAY[date.getUTCDay()] + ', ' + + d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+ + h+':'+m+':'+s+' GMT'; +} + +// S5.1.2 Canonicalized Host Names +function canonicalDomain(str) { + if (str == null) return null; + str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading . + + // convert to IDN if any non-ASCII characters + if (punycode && /[^\u0001-\u007f]/.test(str)) + str = punycode.toASCII(str); + + return str.toLowerCase(); +} + +// S5.1.3 Domain Matching +function domainMatch(str, domStr, canonicalize) { + if (str == null || domStr == null) return null; + if (canonicalize !== false) { + str = canonicalDomain(str); + domStr = canonicalDomain(domStr); + } + + /* + * "The domain string and the string are identical. (Note that both the + * domain string and the string will have been canonicalized to lower case at + * this point)" + */ + if (str == domStr) return true; + + /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */ + + /* "* The string is a host name (i.e., not an IP address)." */ + if (net.isIP(str)) return false; + + /* "* The domain string is a suffix of the string" */ + var idx = str.indexOf(domStr); + if (idx <= 0) return false; // it's a non-match (-1) or prefix (0) + + // e.g "a.b.c".indexOf("b.c") === 2 + // 5 === 3+2 + if (str.length !== domStr.length + idx) // it's not a suffix + return false; + + /* "* The last character of the string that is not included in the domain + * string is a %x2E (".") character." */ + if (str.substr(idx-1,1) !== '.') return false; + return true; +} + + +// RFC6265 S5.1.4 Paths and Path-Match + +/* + * "The user agent MUST use an algorithm equivalent to the following algorithm + * to compute the default-path of a cookie:" + * + * Assumption: the path (and not query part or absolute uri) is passed in. + */ +function defaultPath(path) { + // "2. If the uri-path is empty or if the first character of the uri-path is not + // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps. + if (!path || path.substr(0,1) !== "/") return "/"; + + // "3. If the uri-path contains no more than one %x2F ("/") character, output + // %x2F ("/") and skip the remaining step." + if (path === "/") return path; + + var rightSlash = path.lastIndexOf("/"); + if (rightSlash === 0) return "/"; + + // "4. Output the characters of the uri-path from the first character up to, + // but not including, the right-most %x2F ("/")." + return path.slice(0, rightSlash); +} + +/* + * "A request-path path-matches a given cookie-path if at least one of the + * following conditions holds:" + */ +function pathMatch(reqPath,cookiePath) { + // "o The cookie-path and the request-path are identical." + if (cookiePath === reqPath) + return true; + + var idx = reqPath.indexOf(cookiePath); + if (idx === 0) { + // "o The cookie-path is a prefix of the request-path, and the last + // character of the cookie-path is %x2F ("/")." + if (cookiePath.substr(-1) === "/") + return true; + + // " o The cookie-path is a prefix of the request-path, and the first + // character of the request-path that is not included in the cookie- path + // is a %x2F ("/") character." + if (reqPath.substr(cookiePath.length,1) === "/") + return true; + } + + return false; +} + +function parse(str, strict) { + str = str.trim(); + + // S4.1.1 Trailing semi-colons are not part of the specification. + // If we are not in strict mode we remove the trailing semi-colons. + var semiColonCheck = TRAILING_SEMICOLON.exec(str); + if (semiColonCheck) { + if (strict) return; + str = str.slice(0, semiColonCheck.index); + } + + // We use a regex to parse the "name-value-pair" part of S5.2 + var firstSemi = str.indexOf(';'); // S5.2 step 1 + var pairRx = strict ? COOKIE_PAIR_STRICT : COOKIE_PAIR; + var result = pairRx.exec(firstSemi === -1 ? str : str.substr(0,firstSemi)); + + // Rx satisfies the "the name string is empty" and "lacks a %x3D ("=")" + // constraints as well as trimming any whitespace. + if (!result) return; + + var c = new Cookie(); + c.key = result[1]; // the regexp should trim() already + c.value = result[3]; // [2] is quotes or empty-string + + if (firstSemi === -1) return c; + + // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question)." plus later on in the same section + // "discard the first ";" and trim". + var unparsed = str.slice(firstSemi).replace(/^\s*;\s*/,'').trim(); + + // "If the unparsed-attributes string is empty, skip the rest of these + // steps." + if (unparsed.length === 0) return c; + + /* + * S5.2 says that when looping over the items "[p]rocess the attribute-name + * and attribute-value according to the requirements in the following + * subsections" for every item. Plus, for many of the individual attributes + * in S5.3 it says to use the "attribute-value of the last attribute in the + * cookie-attribute-list". Therefore, in this implementation, we overwrite + * the previous value. + */ + var cookie_avs = unparsed.split(/\s*;\s*/); + while (cookie_avs.length) { + var av = cookie_avs.shift(); + + if (strict && !EXTENSION_AV.test(av)) return; + + var av_sep = av.indexOf('='); + var av_key, av_value; + if (av_sep === -1) { + av_key = av; + av_value = null; + } else { + av_key = av.substr(0,av_sep); + av_value = av.substr(av_sep+1); + } + + av_key = av_key.trim().toLowerCase(); + if (av_value) av_value = av_value.trim(); + + switch(av_key) { + case 'expires': // S5.2.1 + if (!av_value) { if(strict){return}else{break;} } + var exp = parseDate(av_value,strict); + // "If the attribute-value failed to parse as a cookie date, ignore the + // cookie-av." + if (exp == null) { if(strict){return}else{break;} } + c.expires = exp; + // over and underflow not realistically a concern: V8's getTime() seems to + // store something larger than a 32-bit time_t (even with 32-bit node) + break; + + case 'max-age': // S5.2.2 + if (!av_value) { if(strict){return}else{break;} } + // "If the first character of the attribute-value is not a DIGIT or a "-" + // character ...[or]... If the remainder of attribute-value contains a + // non-DIGIT character, ignore the cookie-av." + if (!/^-?[0-9]+$/.test(av_value)) { if(strict){return}else{break;} } + var delta = parseInt(av_value,10); + if (strict && delta <= 0) return; // S4.1.1 + // "If delta-seconds is less than or equal to zero (0), let expiry-time + // be the earliest representable date and time." + c.setMaxAge(delta); + break; + + case 'domain': // S5.2.3 + // "If the attribute-value is empty, the behavior is undefined. However, + // the user agent SHOULD ignore the cookie-av entirely." + if (!av_value) { if(strict){return}else{break;} } + // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E + // (".") character." + var domain = av_value.trim().replace(/^\./,''); + if (!domain) { if(strict){return}else{break;} } // see "is empty" above + // "Convert the cookie-domain to lower case." + c.domain = domain.toLowerCase(); + break; + + case 'path': // S5.2.4 + /* + * "If the attribute-value is empty or if the first character of the + * attribute-value is not %x2F ("/"): + * Let cookie-path be the default-path. + * Otherwise: + * Let cookie-path be the attribute-value." + * + * We'll represent the default-path as null since it depends on the + * context of the parsing. + */ + if (!av_value || av_value.substr(0,1) != "/") { if(strict){return}else{break;} } + c.path = av_value; + break; + + case 'secure': // S5.2.5 + /* + * "If the attribute-name case-insensitively matches the string "Secure", + * the user agent MUST append an attribute to the cookie-attribute-list + * with an attribute-name of Secure and an empty attribute-value." + */ + if (av_value != null) { if(strict){return} } + c.secure = true; + break; + + case 'httponly': // S5.2.6 -- effectively the same as 'secure' + if (av_value != null) { if(strict){return} } + c.httpOnly = true; + break; + + default: + c.extensions = c.extensions || []; + c.extensions.push(av); + break; + } + } + + // ensure a default date for sorting: + c.creation = new Date(); + return c; +} + +function fromJSON(str) { + if (!str) return null; + + var obj; + try { + obj = JSON.parse(str); + } catch (e) { + return null; + } + + var c = new Cookie(); + for (var i=0; i 1) { + var lindex = path.lastIndexOf('/'); + if (lindex === 0) break; + path = path.substr(0,lindex); + permutations.push(path); + } + permutations.push('/'); + return permutations; +} + + +function Cookie (opts) { + if (typeof opts !== "object") return; + Object.keys(opts).forEach(function (key) { + if (Cookie.prototype.hasOwnProperty(key)) { + this[key] = opts[key] || Cookie.prototype[key]; + } + }.bind(this)); +} + +Cookie.parse = parse; +Cookie.fromJSON = fromJSON; + +Cookie.prototype.key = ""; +Cookie.prototype.value = ""; + +// the order in which the RFC has them: +Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity +Cookie.prototype.maxAge = null; // takes precedence over expires for TTL +Cookie.prototype.domain = null; +Cookie.prototype.path = null; +Cookie.prototype.secure = false; +Cookie.prototype.httpOnly = false; +Cookie.prototype.extensions = null; + +// set by the CookieJar: +Cookie.prototype.hostOnly = null; // boolean when set +Cookie.prototype.pathIsDefault = null; // boolean when set +Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse +Cookie.prototype.lastAccessed = null; // Date when set + +var cookieProperties = Object.freeze(Object.keys(Cookie.prototype).map(function(p) { + if (p instanceof Function) return; + return p; +})); +var numCookieProperties = cookieProperties.length; + +Cookie.prototype.inspect = function inspect() { + var now = Date.now(); + return 'Cookie="'+this.toString() + + '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') + + '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') + + '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') + + '"'; +}; + +Cookie.prototype.validate = function validate() { + if (!COOKIE_OCTETS.test(this.value)) + return false; + if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires,true)) + return false; + if (this.maxAge != null && this.maxAge <= 0) + return false; // "Max-Age=" non-zero-digit *DIGIT + if (this.path != null && !PATH_VALUE.test(this.path)) + return false; + + var cdomain = this.cdomain(); + if (cdomain) { + if (cdomain.match(/\.$/)) + return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this + var suffix = pubsuffix.getPublicSuffix(cdomain); + if (suffix == null) // it's a public suffix + return false; + } + return true; +}; + +Cookie.prototype.setExpires = function setExpires(exp) { + if (exp instanceof Date) this.expires = exp; + else this.expires = parseDate(exp) || "Infinity"; +}; + +Cookie.prototype.setMaxAge = function setMaxAge(age) { + if (age === Infinity || age === -Infinity) + this.maxAge = age.toString(); // so JSON.stringify() works + else + this.maxAge = age; +}; + +// gives Cookie header format +Cookie.prototype.cookieString = function cookieString() { + var val = this.value; + if (val == null) val = ''; + if (!val.length || COOKIE_OCTETS.test(val)) + return this.key+'='+val; + else + return this.key+'="'+val+'"'; +}; + +// gives Set-Cookie header format +Cookie.prototype.toString = function toString() { + var str = this.cookieString(); + + if (this.expires != Infinity) { + if (this.expires instanceof Date) + str += '; Expires='+formatDate(this.expires); + else + str += '; Expires='+this.expires; + } + + if (this.maxAge != null && this.maxAge != Infinity) + str += '; Max-Age='+this.maxAge; + + if (this.domain && !this.hostOnly) + str += '; Domain='+this.domain; + if (this.path) + str += '; Path='+this.path; + + if (this.secure) str += '; Secure'; + if (this.httpOnly) str += '; HttpOnly'; + if (this.extensions) { + this.extensions.forEach(function(ext) { + str += '; '+ext; + }); + } + + return str; +}; + +// TTL() partially replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere) +// S5.3 says to give the "latest representable date" for which we use Infinity +// For "expired" we use 0 +Cookie.prototype.TTL = function TTL(now) { + /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires + * attribute, the Max-Age attribute has precedence and controls the + * expiration date of the cookie. + * (Concurs with S5.3 step 3) + */ + if (this.maxAge != null) { + return this.maxAge<=0 ? 0 : this.maxAge*1000; + } + + var expires = this.expires; + if (expires != Infinity) { + if (!(expires instanceof Date)) { + expires = parseDate(expires) || Infinity; + } + + if (expires == Infinity) + return Infinity; + + return expires.getTime() - (now || Date.now()); + } + + return Infinity; +}; + +// expiryTime() replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere) +Cookie.prototype.expiryTime = function expiryTime(now) { + if (this.maxAge != null) { + var relativeTo = this.creation || now || new Date(); + var age = (this.maxAge <= 0) ? -Infinity : this.maxAge*1000; + return relativeTo.getTime() + age; + } + + if (this.expires == Infinity) return Infinity; + return this.expires.getTime(); +}; + +// expiryDate() replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere), except it returns a Date +Cookie.prototype.expiryDate = function expiryDate(now) { + var millisec = this.expiryTime(now); + if (millisec == Infinity) return new Date(MAX_TIME); + else if (millisec == -Infinity) return new Date(MIN_TIME); + else return new Date(millisec); +}; + +// This replaces the "persistent-flag" parts of S5.3 step 3 +Cookie.prototype.isPersistent = function isPersistent() { + return (this.maxAge != null || this.expires != Infinity); +}; + +// Mostly S5.1.2 and S5.2.3: +Cookie.prototype.cdomain = +Cookie.prototype.canonicalizedDomain = function canonicalizedDomain() { + if (this.domain == null) return null; + return canonicalDomain(this.domain); +}; + + +var memstore; +function CookieJar(store, rejectPublicSuffixes) { + if (rejectPublicSuffixes != null) this.rejectPublicSuffixes = rejectPublicSuffixes; + if (!store) { + memstore = memstore || require('./memstore'); + store = new memstore.MemoryCookieStore(); + } + this.store = store; +} +CookieJar.prototype.store = null; +CookieJar.prototype.rejectPublicSuffixes = true; + +CookieJar.prototype.setCookie = function setCookie(cookie, url, options, cb) { + var err; + var context = (url instanceof Object) ? url : urlParse(url); + if (options instanceof Function) { + cb = options; + options = {}; + } + + var host = canonicalDomain(context.hostname); + + // S5.3 step 1 + if (!(cookie instanceof Cookie)) + cookie = Cookie.parse(cookie, options.strict === true); + if (!cookie) { + err = new Error("Cookie failed to parse"); + return cb(options.ignoreError ? null : err); + } + + // S5.3 step 2 + var now = options.now || new Date(); // will assign later to save effort in the face of errors + + // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie() + + // S5.3 step 4: NOOP; domain is null by default + + // S5.3 step 5: public suffixes + if (this.rejectPublicSuffixes && cookie.domain) { + var suffix = pubsuffix.getPublicSuffix(cookie.cdomain()); + if (suffix == null) { // e.g. "com" + err = new Error("Cookie has domain set to a public suffix"); + return cb(options.ignoreError ? null : err); + } + } + + // S5.3 step 6: + if (cookie.domain) { + if (!domainMatch(host, cookie.cdomain(), false)) { + err = new Error("Cookie not in this host's domain. Cookie:"+cookie.cdomain()+" Request:"+host); + return cb(options.ignoreError ? null : err); + } + + if (cookie.hostOnly == null) // don't reset if already set + cookie.hostOnly = false; + + } else { + cookie.hostOnly = true; + cookie.domain = host; + } + + // S5.3 step 7: "Otherwise, set the cookie's path to the default-path of the + // request-uri" + if (!cookie.path) { + cookie.path = defaultPath(context.pathname); + cookie.pathIsDefault = true; + } else { + if (cookie.path.length > 1 && cookie.path.substr(-1) == '/') + cookie.path = cookie.path.slice(0,-1); + } + + // S5.3 step 8: NOOP; secure attribute + // S5.3 step 9: NOOP; httpOnly attribute + + // S5.3 step 10 + if (options.http === false && cookie.httpOnly) { + err = new Error("Cookie is HttpOnly and this isn't an HTTP API"); + return cb(options.ignoreError ? null : err); + } + + var store = this.store; + + if (!store.updateCookie) { + store.updateCookie = function stubUpdateCookie(oldCookie, newCookie, cb) { + this.putCookie(newCookie, cb); + }; + } + + store.findCookie(cookie.domain, cookie.path, cookie.key, function(err,oldCookie) { + if (err) return cb(err); + + var next = function(err) { + if (err) return cb(err); + else cb(null, cookie); + }; + + if (oldCookie) { + // S5.3 step 11 - "If the cookie store contains a cookie with the same name, + // domain, and path as the newly created cookie:" + if (options.http === false && oldCookie.httpOnly) { // step 11.2 + err = new Error("old Cookie is HttpOnly and this isn't an HTTP API"); + return cb(options.ignoreError ? null : err); + } + cookie.creation = oldCookie.creation; // step 11.3 + cookie.lastAccessed = now; + // Step 11.4 (delete cookie) is implied by just setting the new one: + store.updateCookie(oldCookie, cookie, next); // step 12 + + } else { + cookie.creation = cookie.lastAccessed = now; + store.putCookie(cookie, next); // step 12 + } + }); +}; + +// RFC6365 S5.4 +CookieJar.prototype.getCookies = function getCookies(url, options, cb) { + var context = (url instanceof Object) ? url : urlParse(url); + if (options instanceof Function) { + cb = options; + options = {}; + } + + var host = canonicalDomain(context.hostname); + var path = context.pathname || '/'; + + var secure = options.secure; + if (secure == null && context.protocol && + (context.protocol == 'https:' || context.protocol == 'wss:')) + { + secure = true; + } + + var http = options.http; + if (http == null) http = true; + + var now = options.now || Date.now(); + var expireCheck = options.expire !== false; + var allPaths = !!options.allPaths; + var store = this.store; + + function matchingCookie(c) { + // "Either: + // The cookie's host-only-flag is true and the canonicalized + // request-host is identical to the cookie's domain. + // Or: + // The cookie's host-only-flag is false and the canonicalized + // request-host domain-matches the cookie's domain." + if (c.hostOnly) { + if (c.domain != host) return false; + } else { + if (!domainMatch(host, c.domain, false)) return false; + } + + // "The request-uri's path path-matches the cookie's path." + if (!allPaths && !pathMatch(path, c.path)) + return false; + + // "If the cookie's secure-only-flag is true, then the request-uri's + // scheme must denote a "secure" protocol" + if (c.secure && !secure) + return false; + + // "If the cookie's http-only-flag is true, then exclude the cookie if the + // cookie-string is being generated for a "non-HTTP" API" + if (c.httpOnly && !http) + return false; + + // deferred from S5.3 + // non-RFC: allow retention of expired cookies by choice + if (expireCheck && c.expiryTime() <= now) { + store.removeCookie(c.domain, c.path, c.key, function(){}); // result ignored + return false; + } + + return true; + } + + store.findCookies(host, allPaths ? null : path, function(err,cookies) { + if (err) return cb(err); + + cookies = cookies.filter(matchingCookie); + + // sorting of S5.4 part 2 + if (options.sort !== false) + cookies = cookies.sort(cookieCompare); + + // S5.4 part 3 + var now = new Date(); + cookies.forEach(function(c) { c.lastAccessed = now }); + // TODO persist lastAccessed + + cb(null,cookies); + }); +}; + +CookieJar.prototype.getCookieString = function(/*..., cb*/) { + var args = Array.prototype.slice.call(arguments,0); + var cb = args.pop(); + var next = function(err,cookies) { + if (err) cb(err); + else cb(null, cookies.map(function(c){return c.cookieString()}).join('; ')); + }; + args.push(next); + this.getCookies.apply(this,args); +}; + +CookieJar.prototype.getSetCookieStrings = function(/*..., cb*/) { + var args = Array.prototype.slice.call(arguments,0); + var cb = args.pop(); + var next = function(err,cookies) { + if (err) cb(err); + else cb(null, cookies.map(function(c){return c.toString()})); + }; + args.push(next); + this.getCookies.apply(this,args); +}; + + + +module.exports = { + CookieJar: CookieJar, + Cookie: Cookie, + parseDate: parseDate, + formatDate: formatDate, + parse: parse, + fromJSON: fromJSON, + domainMatch: domainMatch, + defaultPath: defaultPath, + pathMatch: pathMatch, + getPublicSuffix: pubsuffix.getPublicSuffix, + cookieCompare: cookieCompare, + permuteDomain: permuteDomain, + permutePath: permutePath, + canonicalDomain: canonicalDomain, +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js new file mode 100644 index 00000000..66abb376 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js @@ -0,0 +1,102 @@ +var tough = require('./cookie'); +var permuteDomain = tough.permuteDomain; +var permutePath = tough.permutePath; +var util = require('util'); + +function MemoryCookieStore() { + this.idx = {}; +} +module.exports.MemoryCookieStore = MemoryCookieStore; +MemoryCookieStore.prototype.idx = null; + +// force a default depth: +MemoryCookieStore.prototype.inspect = function inspect() { + return "{ idx: "+util.inspect(this.idx, false, 2)+' }'; +}; + +MemoryCookieStore.prototype.findCookie = function findCookie(domain, path, key, cb) { + if (!this.idx[domain]) return cb(null,undefined); + if (!this.idx[domain][path]) return cb(null,undefined); + return cb(null,this.idx[domain][path][key]||null); +}; + +MemoryCookieStore.prototype.findCookies = function findCookies(domain, path, cb) { + var results = []; + if (!domain) return cb(null,[]); + + var pathMatcher; + if (!path) { + // null or '/' means "all paths" + pathMatcher = function matchAll(domainIndex) { + for (var curPath in domainIndex) { + var pathIndex = domainIndex[curPath]; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + } + }; + + } else if (path === '/') { + pathMatcher = function matchSlash(domainIndex) { + var pathIndex = domainIndex['/']; + if (!pathIndex) return; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + }; + + } else { + var paths = permutePath(path) || [path]; + pathMatcher = function matchRFC(domainIndex) { + paths.forEach(function(curPath) { + var pathIndex = domainIndex[curPath]; + if (!pathIndex) return; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + }); + }; + } + + var domains = permuteDomain(domain) || [domain]; + var idx = this.idx; + domains.forEach(function(curDomain) { + var domainIndex = idx[curDomain]; + if (!domainIndex) return; + pathMatcher(domainIndex); + }); + + cb(null,results); +}; + +MemoryCookieStore.prototype.putCookie = function putCookie(cookie, cb) { + if (!this.idx[cookie.domain]) this.idx[cookie.domain] = {}; + if (!this.idx[cookie.domain][cookie.path]) this.idx[cookie.domain][cookie.path] = {}; + this.idx[cookie.domain][cookie.path][cookie.key] = cookie; + cb(null); +}; + +MemoryCookieStore.prototype.updateCookie = function updateCookie(oldCookie, newCookie, cb) { + // updateCookie() may avoid updating cookies that are identical. For example, + // lastAccessed may not be important to some stores and an equality + // comparison could exclude that field. + this.putCookie(newCookie,cb); +}; + +MemoryCookieStore.prototype.removeCookie = function removeCookie(domain, path, key, cb) { + if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) { + delete this.idx[domain][path][key]; + } + cb(null); +}; + +MemoryCookieStore.prototype.removeCookies = function removeCookies(domain, path, cb) { + if (!this.idx[domain]) { + if (path) { + delete this.idx[domain][path]; + } else { + delete this.idx[domain]; + } + } + return cb(null); +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js new file mode 100644 index 00000000..a7031473 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js @@ -0,0 +1,69 @@ +/**************************************************** + * AUTOMATICALLY GENERATED by generate-pubsuffix.js * + * DO NOT EDIT! * + ****************************************************/ + +module.exports.getPublicSuffix = function getPublicSuffix(domain) { + /* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + if (!domain) return null; + if (domain.match(/^\./)) return null; + + domain = domain.toLowerCase(); + var parts = domain.split('.').reverse(); + + var suffix = ''; + var suffixLen = 0; + for (var i=0; i suffixLen) { + return parts.slice(0,suffixLen+1).reverse().join('.'); + } + + return null; +}; + +// The following generated structure is used under the MPL version 1.1 +// See public-suffix.txt for more information + +var index = module.exports.index = Object.freeze( +{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"marketplace.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"taxi.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"an":true,"com.an":true,"net.an":true,"org.an":true,"edu.an":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"*.ar":true,"congresodelalengua3.ar":false,"educ.ar":false,"gobiernoelectronico.ar":false,"mecon.ar":false,"nacion.ar":false,"nic.ar":false,"promocion.ar":false,"retina.ar":false,"uba.ar":false,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"csiro.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"act.gov.au":true,"nt.gov.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"org.ba":true,"net.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"unsa.ba":true,"unbi.ba":true,"co.ba":true,"com.ba":true,"rs.ba":true,"bb":true,"biz.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"br":true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"can.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mus.br":true,"net.br":true,"nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"gov.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cx":true,"gov.cx":true,"*.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"*.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"org.gg":true,"net.gg":true,"sch.gg":true,"gov.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"gm":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"*.gt":true,"www.gt":false,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"net.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"co.id":true,"go.id":true,"mil.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"*.il":true,"im":true,"co.im":true,"ltd.co.im":true,"plc.co.im":true,"net.im":true,"gov.im":true,"org.im":true,"nic.im":true,"ac.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"agrigento.it":true,"ag.it":true,"alessandria.it":true,"al.it":true,"ancona.it":true,"an.it":true,"aosta.it":true,"aoste.it":true,"ao.it":true,"arezzo.it":true,"ar.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"ap.it":true,"asti.it":true,"at.it":true,"avellino.it":true,"av.it":true,"bari.it":true,"ba.it":true,"andria-barletta-trani.it":true,"andriabarlettatrani.it":true,"trani-barletta-andria.it":true,"tranibarlettaandria.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"andria-trani-barletta.it":true,"andriatranibarletta.it":true,"trani-andria-barletta.it":true,"traniandriabarletta.it":true,"bt.it":true,"belluno.it":true,"bl.it":true,"benevento.it":true,"bn.it":true,"bergamo.it":true,"bg.it":true,"biella.it":true,"bi.it":true,"bologna.it":true,"bo.it":true,"bolzano.it":true,"bozen.it":true,"balsan.it":true,"alto-adige.it":true,"altoadige.it":true,"suedtirol.it":true,"bz.it":true,"brescia.it":true,"bs.it":true,"brindisi.it":true,"br.it":true,"cagliari.it":true,"ca.it":true,"caltanissetta.it":true,"cl.it":true,"campobasso.it":true,"cb.it":true,"carboniaiglesias.it":true,"carbonia-iglesias.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"ci.it":true,"caserta.it":true,"ce.it":true,"catania.it":true,"ct.it":true,"catanzaro.it":true,"cz.it":true,"chieti.it":true,"ch.it":true,"como.it":true,"co.it":true,"cosenza.it":true,"cs.it":true,"cremona.it":true,"cr.it":true,"crotone.it":true,"kr.it":true,"cuneo.it":true,"cn.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"ogliastra.it":true,"og.it":true,"enna.it":true,"en.it":true,"ferrara.it":true,"fe.it":true,"fermo.it":true,"fm.it":true,"firenze.it":true,"florence.it":true,"fi.it":true,"foggia.it":true,"fg.it":true,"forli-cesena.it":true,"forlicesena.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"fc.it":true,"frosinone.it":true,"fr.it":true,"genova.it":true,"genoa.it":true,"ge.it":true,"gorizia.it":true,"go.it":true,"grosseto.it":true,"gr.it":true,"imperia.it":true,"im.it":true,"isernia.it":true,"is.it":true,"laquila.it":true,"aquila.it":true,"aq.it":true,"la-spezia.it":true,"laspezia.it":true,"sp.it":true,"latina.it":true,"lt.it":true,"lecce.it":true,"le.it":true,"lecco.it":true,"lc.it":true,"livorno.it":true,"li.it":true,"lodi.it":true,"lo.it":true,"lucca.it":true,"lu.it":true,"macerata.it":true,"mc.it":true,"mantova.it":true,"mn.it":true,"massa-carrara.it":true,"massacarrara.it":true,"carrara-massa.it":true,"carraramassa.it":true,"ms.it":true,"matera.it":true,"mt.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"vs.it":true,"messina.it":true,"me.it":true,"milano.it":true,"milan.it":true,"mi.it":true,"modena.it":true,"mo.it":true,"monza.it":true,"monza-brianza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"monza-e-della-brianza.it":true,"mb.it":true,"napoli.it":true,"naples.it":true,"na.it":true,"novara.it":true,"no.it":true,"nuoro.it":true,"nu.it":true,"oristano.it":true,"or.it":true,"padova.it":true,"padua.it":true,"pd.it":true,"palermo.it":true,"pa.it":true,"parma.it":true,"pr.it":true,"pavia.it":true,"pv.it":true,"perugia.it":true,"pg.it":true,"pescara.it":true,"pe.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"pu.it":true,"piacenza.it":true,"pc.it":true,"pisa.it":true,"pi.it":true,"pistoia.it":true,"pt.it":true,"pordenone.it":true,"pn.it":true,"potenza.it":true,"pz.it":true,"prato.it":true,"po.it":true,"ragusa.it":true,"rg.it":true,"ravenna.it":true,"ra.it":true,"reggio-calabria.it":true,"reggiocalabria.it":true,"rc.it":true,"reggio-emilia.it":true,"reggioemilia.it":true,"re.it":true,"rieti.it":true,"ri.it":true,"rimini.it":true,"rn.it":true,"roma.it":true,"rome.it":true,"rm.it":true,"rovigo.it":true,"ro.it":true,"salerno.it":true,"sa.it":true,"sassari.it":true,"ss.it":true,"savona.it":true,"sv.it":true,"siena.it":true,"si.it":true,"siracusa.it":true,"sr.it":true,"sondrio.it":true,"so.it":true,"taranto.it":true,"ta.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"ot.it":true,"teramo.it":true,"te.it":true,"terni.it":true,"tr.it":true,"torino.it":true,"turin.it":true,"to.it":true,"trapani.it":true,"tp.it":true,"trento.it":true,"trentino.it":true,"tn.it":true,"treviso.it":true,"tv.it":true,"trieste.it":true,"ts.it":true,"udine.it":true,"ud.it":true,"varese.it":true,"va.it":true,"venezia.it":true,"venice.it":true,"ve.it":true,"verbania.it":true,"vb.it":true,"vercelli.it":true,"vc.it":true,"verona.it":true,"vr.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vv.it":true,"vicenza.it":true,"vi.it":true,"viterbo.it":true,"vt.it":true,"je":true,"co.je":true,"org.je":true,"net.je":true,"sch.je":true,"gov.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"*.aichi.jp":true,"*.akita.jp":true,"*.aomori.jp":true,"*.chiba.jp":true,"*.ehime.jp":true,"*.fukui.jp":true,"*.fukuoka.jp":true,"*.fukushima.jp":true,"*.gifu.jp":true,"*.gunma.jp":true,"*.hiroshima.jp":true,"*.hokkaido.jp":true,"*.hyogo.jp":true,"*.ibaraki.jp":true,"*.ishikawa.jp":true,"*.iwate.jp":true,"*.kagawa.jp":true,"*.kagoshima.jp":true,"*.kanagawa.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.kochi.jp":true,"*.kumamoto.jp":true,"*.kyoto.jp":true,"*.mie.jp":true,"*.miyagi.jp":true,"*.miyazaki.jp":true,"*.nagano.jp":true,"*.nagasaki.jp":true,"*.nagoya.jp":true,"*.nara.jp":true,"*.niigata.jp":true,"*.oita.jp":true,"*.okayama.jp":true,"*.okinawa.jp":true,"*.osaka.jp":true,"*.saga.jp":true,"*.saitama.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.shiga.jp":true,"*.shimane.jp":true,"*.shizuoka.jp":true,"*.tochigi.jp":true,"*.tokushima.jp":true,"*.tokyo.jp":true,"*.tottori.jp":true,"*.toyama.jp":true,"*.wakayama.jp":true,"*.yamagata.jp":true,"*.yamaguchi.jp":true,"*.yamanashi.jp":true,"*.yokohama.jp":true,"metro.tokyo.jp":false,"pref.aichi.jp":false,"pref.akita.jp":false,"pref.aomori.jp":false,"pref.chiba.jp":false,"pref.ehime.jp":false,"pref.fukui.jp":false,"pref.fukuoka.jp":false,"pref.fukushima.jp":false,"pref.gifu.jp":false,"pref.gunma.jp":false,"pref.hiroshima.jp":false,"pref.hokkaido.jp":false,"pref.hyogo.jp":false,"pref.ibaraki.jp":false,"pref.ishikawa.jp":false,"pref.iwate.jp":false,"pref.kagawa.jp":false,"pref.kagoshima.jp":false,"pref.kanagawa.jp":false,"pref.kochi.jp":false,"pref.kumamoto.jp":false,"pref.kyoto.jp":false,"pref.mie.jp":false,"pref.miyagi.jp":false,"pref.miyazaki.jp":false,"pref.nagano.jp":false,"pref.nagasaki.jp":false,"pref.nara.jp":false,"pref.niigata.jp":false,"pref.oita.jp":false,"pref.okayama.jp":false,"pref.okinawa.jp":false,"pref.osaka.jp":false,"pref.saga.jp":false,"pref.saitama.jp":false,"pref.shiga.jp":false,"pref.shimane.jp":false,"pref.shizuoka.jp":false,"pref.tochigi.jp":false,"pref.tokushima.jp":false,"pref.tottori.jp":false,"pref.toyama.jp":false,"pref.wakayama.jp":false,"pref.yamagata.jp":false,"pref.yamaguchi.jp":false,"pref.yamanashi.jp":false,"city.chiba.jp":false,"city.fukuoka.jp":false,"city.hiroshima.jp":false,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.kyoto.jp":false,"city.nagoya.jp":false,"city.niigata.jp":false,"city.okayama.jp":false,"city.osaka.jp":false,"city.saitama.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.shizuoka.jp":false,"city.yokohama.jp":false,"*.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"*.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"*.mz":true,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ac.ng":true,"com.ng":true,"edu.ng":true,"gov.ng":true,"net.ng":true,"org.ng":true,"*.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"*.nz":true,"*.om":true,"mediaphone.om":false,"nawrastelecom.om":false,"nawras.om":false,"omanmobile.om":false,"omanpost.om":false,"omantel.om":false,"rakpetroleum.om":false,"siemens.om":false,"songfest.om":false,"statecouncil.om":false,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"com.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"net.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"org.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"6bone.pl":true,"art.pl":true,"mbone.pl":true,"gov.pl":true,"uw.gov.pl":true,"um.gov.pl":true,"ug.gov.pl":true,"upow.gov.pl":true,"starostwo.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"po.gov.pl":true,"pa.gov.pl":true,"ngo.pl":true,"irc.pl":true,"usenet.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"siedlce.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aca.pro":true,"bar.pro":true,"cpa.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"eng.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"*.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"com.re":true,"asso.re":true,"nom.re":true,"ro":true,"com.ro":true,"org.ro":true,"tm.ro":true,"nt.ro":true,"nom.ro":true,"info.ro":true,"rec.ro":true,"arts.ro":true,"firm.ro":true,"store.ro":true,"www.ro":true,"rs":true,"co.rs":true,"org.rs":true,"edu.rs":true,"ac.rs":true,"gov.rs":true,"in.rs":true,"ru":true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"mosreg.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"pskov.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"magnitka.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"sshn.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"si":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"*.sv":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"*.tr":true,"nic.tr":false,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"ac.tz":true,"co.tz":true,"go.tz":true,"mil.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"chernigov.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"ks.ua":true,"kv.ua":true,"lg.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lviv.ua":true,"mk.ua":true,"nikolaev.ua":true,"od.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rovno.ua":true,"rv.ua":true,"sebastopol.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vn.ua":true,"zaporizhzhe.ua":true,"zp.ua":true,"zhitomir.ua":true,"zt.ua":true,"co.ua":true,"pp.ua":true,"ug":true,"co.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"or.ug":true,"*.uk":true,"*.sch.uk":true,"bl.uk":false,"british-library.uk":false,"icnet.uk":false,"jet.uk":false,"mod.uk":false,"nel.uk":false,"nhs.uk":false,"nic.uk":false,"nls.uk":false,"national-library-scotland.uk":false,"parliament.uk":false,"police.uk":false,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.nd.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.sd.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wv.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.de.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wv.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"*.uy":true,"uz":true,"com.uz":true,"co.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"*.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--54b7fta0cc":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--node":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--mgb9awbf":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"*.za":true,"*.zm":true,"*.zw":true,"biz.at":true,"info.at":true,"priv.at":true,"co.ca":true,"ar.com":true,"br.com":true,"cn.com":true,"de.com":true,"eu.com":true,"gb.com":true,"gr.com":true,"hu.com":true,"jpn.com":true,"kr.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"uk.com":true,"us.com":true,"uy.com":true,"za.com":true,"gb.net":true,"jp.net":true,"se.net":true,"uk.net":true,"ae.org":true,"us.org":true,"com.de":true,"operaunite.com":true,"appspot.com":true,"iki.fi":true,"c.la":true,"za.net":true,"za.org":true,"co.nl":true,"co.no":true,"co.pl":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true}); + +// END of automatically generated file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt new file mode 100644 index 00000000..11dddd00 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt new file mode 100644 index 00000000..97067e54 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json new file mode 100644 index 00000000..69e12ae2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json @@ -0,0 +1,77 @@ +{ + "name": "punycode", + "version": "1.2.3", + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "homepage": "http://mths.be/punycode", + "main": "punycode.js", + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "licenses": [ + { + "type": "MIT", + "url": "http://mths.be/mit" + }, + { + "type": "GPL", + "url": "http://mths.be/gpl" + } + ], + "author": { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "http://mathiasbynens.be/" + }, + "contributors": [ + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "http://mathiasbynens.be/" + }, + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + } + ], + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/bestiejs/punycode.js.git" + }, + "engines": [ + "node", + "rhino" + ], + "directories": { + "doc": "docs", + "test": "tests" + }, + "scripts": { + "test": "node tests/tests.js" + }, + "devDependencies": { + "grunt": "~0.4.1", + "grunt-contrib-uglify": "~0.2.2", + "grunt-shell": "~0.2.2", + "istanbul": "~0.1.37", + "qunit-clib": "~1.3.0", + "qunitjs": "~1.11.0", + "requirejs": "~2.1.6" + }, + "readme": "ERROR: No README data found!", + "_id": "punycode@1.2.3", + "dist": { + "shasum": "b4e304471082d783c73b3bafabf2fd9b6a486266" + }, + "_from": "punycode@>=0.2.0", + "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.2.3.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js new file mode 100644 index 00000000..41803ba4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js @@ -0,0 +1,508 @@ +/*! http://mths.be/punycode v1.2.3 by @mathias */ +;(function(root) { + + /** Detect free variables */ + var freeExports = typeof exports == 'object' && exports; + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /** + * The `punycode` object. + * @name punycode + * @type Object + */ + var punycode, + + /** Highest positive signed 32-bit float value */ + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + /** Bootstring parameters */ + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + /** Regular expressions */ + regexPunycode = /^xn--/, + regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators + + /** Error messages */ + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + while (length--) { + array[length] = fn(array[length]); + } + return array; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings. + * @private + * @param {String} domain The domain name. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + return map(string.split(regexSeparators), fn).join('.'); + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * http://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + length, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols to a Punycode string of ASCII-only + * symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name to Unicode. Only the + * Punycoded parts of the domain name will be converted, i.e. it doesn't + * matter if you call it on a string that has already been converted to + * Unicode. + * @memberOf punycode + * @param {String} domain The Punycode domain name to convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(domain) { + return mapDomain(domain, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name to Punycode. Only the + * non-ASCII parts of the domain name will be converted, i.e. it doesn't + * matter if you call it with a domain that's already in ASCII. + * @memberOf punycode + * @param {String} domain The domain name to convert, as a Unicode string. + * @returns {String} The Punycode representation of the given domain name. + */ + function toASCII(domain) { + return mapDomain(domain, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.2.3', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define(function() { + return punycode; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js new file mode 100644 index 00000000..ac5d914a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js @@ -0,0 +1,2 @@ +/*! http://mths.be/punycode v1.2.3 by @mathias */ +(function(o){function e(o){throw RangeError(L[o])}function n(o,e){for(var n=o.length;n--;)o[n]=e(o[n]);return o}function t(o,e){return n(o.split(S),e).join(".")}function r(o){for(var e,n,t=[],r=0,u=o.length;u>r;)e=o.charCodeAt(r++),e>=55296&&56319>=e&&u>r?(n=o.charCodeAt(r++),56320==(64512&n)?t.push(((1023&e)<<10)+(1023&n)+65536):(t.push(e),r--)):t.push(e);return t}function u(o){return n(o,function(o){var e="";return o>65535&&(o-=65536,e+=R(55296|1023&o>>>10),o=56320|1023&o),e+=R(o)}).join("")}function i(o){return 10>o-48?o-22:26>o-65?o-65:26>o-97?o-97:x}function f(o,e){return o+22+75*(26>o)-((0!=e)<<5)}function c(o,e,n){var t=0;for(o=n?P(o/m):o>>1,o+=P(o/e);o>M*y>>1;t+=x)o=P(o/M);return P(t+(M+1)*o/(o+j))}function l(o){var n,t,r,f,l,d,s,a,p,h,v=[],g=o.length,w=0,j=I,m=A;for(t=o.lastIndexOf(F),0>t&&(t=0),r=0;t>r;++r)o.charCodeAt(r)>=128&&e("not-basic"),v.push(o.charCodeAt(r));for(f=t>0?t+1:0;g>f;){for(l=w,d=1,s=x;f>=g&&e("invalid-input"),a=i(o.charCodeAt(f++)),(a>=x||a>P((b-w)/d))&&e("overflow"),w+=a*d,p=m>=s?C:s>=m+y?y:s-m,!(p>a);s+=x)h=x-p,d>P(b/h)&&e("overflow"),d*=h;n=v.length+1,m=c(w-l,n,0==l),P(w/n)>b-j&&e("overflow"),j+=P(w/n),w%=n,v.splice(w++,0,j)}return u(v)}function d(o){var n,t,u,i,l,d,s,a,p,h,v,g,w,j,m,E=[];for(o=r(o),g=o.length,n=I,t=0,l=A,d=0;g>d;++d)v=o[d],128>v&&E.push(R(v));for(u=i=E.length,i&&E.push(F);g>u;){for(s=b,d=0;g>d;++d)v=o[d],v>=n&&s>v&&(s=v);for(w=u+1,s-n>P((b-t)/w)&&e("overflow"),t+=(s-n)*w,n=s,d=0;g>d;++d)if(v=o[d],n>v&&++t>b&&e("overflow"),v==n){for(a=t,p=x;h=l>=p?C:p>=l+y?y:p-l,!(h>a);p+=x)m=a-h,j=x-h,E.push(R(f(h+m%j,0))),a=P(m/j);E.push(R(f(a,0))),l=c(t,w,u==i),t=0,++u}++t,++n}return E.join("")}function s(o){return t(o,function(o){return E.test(o)?l(o.slice(4).toLowerCase()):o})}function a(o){return t(o,function(o){return O.test(o)?"xn--"+d(o):o})}var p="object"==typeof exports&&exports,h="object"==typeof module&&module&&module.exports==p&&module,v="object"==typeof global&&global;(v.global===v||v.window===v)&&(o=v);var g,w,b=2147483647,x=36,C=1,y=26,j=38,m=700,A=72,I=128,F="-",E=/^xn--/,O=/[^ -~]/,S=/\x2E|\u3002|\uFF0E|\uFF61/g,L={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=x-C,P=Math.floor,R=String.fromCharCode;if(g={version:"1.2.3",ucs2:{decode:r,encode:u},decode:l,encode:d,toASCII:a,toUnicode:s},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return g});else if(p&&!p.nodeType)if(h)h.exports=g;else for(w in g)g.hasOwnProperty(w)&&(p[w]=g[w]);else o.punycode=g})(this); \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt new file mode 100644 index 00000000..a7501f98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright 2011-2013 John-David Dalton + +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md new file mode 100644 index 00000000..fbddce91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md @@ -0,0 +1,35 @@ +# Docdown v1.0.0 + +A simple JSDoc to Markdown documentation generator. + +## Documentation + +The documentation for Docdown can be viewed here: [/doc/README.md](https://github.com/jdalton/docdown/blob/master/doc/README.md#readme) + +For a list of upcoming features, check out our [roadmap](https://github.com/jdalton/docdown/wiki/Roadmap). + +## Installation and usage + +Usage example: + +```php +require("docdown.php"); + +// generate Markdown +$markdown = docdown(array( + "path" => $filepath, + "url" => "https://github.com/username/project/blob/master/my.js" +)); +``` + +## Author + +| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") | +|---| +| [John-David Dalton](http://allyoucanleet.com/) | + +## Contributors + +| [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](http://mathiasbynens.be/) | diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md new file mode 100644 index 00000000..459d36ab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md @@ -0,0 +1,69 @@ +# Docdown v1.0.0 + + + + + + +## `docdown` +* [`docdown`](#docdown$optionsarray) + + + + + + + + + + + + +## `docdown` + + + +### `docdown([$options=array()])` +# [Ⓢ](https://github.com/jdalton/docdown/blob/master/docdown.php#L34 "View in source") [Ⓣ][1] + +Generates Markdown from JSDoc entries in a given file. + +#### Arguments +1. `[$options=array()]` *(Array)*: The options array. + +#### Returns +*(String)*: The generated Markdown. + +#### Example +```php +// specify a file path +$markdown = docdown(array( + // path to js file + 'path' => $filepath, + // url used to reference line numbers in code + 'url' => 'https://github.com/username/project/blob/master/my.js' +)); + +// or pass raw js +$markdown = docdown(array( + // raw JavaScript source + 'source' => $rawJS, + // documentation title + 'title' => 'My API Documentation', + // url used to reference line numbers in code + 'url' => 'https://github.com/username/project/blob/master/my.js' +)); +``` + +* * * + + + + + + + + + + + [1]: #docdown "Jump back to the TOC." \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php new file mode 100644 index 00000000..eca8d145 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php @@ -0,0 +1,35 @@ + '../' . $file, + 'title' => 'Docdown v1.0.0', + 'url' => 'https://github.com/jdalton/docdown/blob/master/docdown.php' + )); + + // save to a .md file + file_put_contents($output . '.md', $markdown); + + // print + header('Content-Type: text/plain;charset=utf-8'); + echo $markdown . PHP_EOL; + +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php new file mode 100644 index 00000000..4a786d75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php @@ -0,0 +1,38 @@ + + * Available under MIT license + */ +require(dirname(__FILE__) . '/src/DocDown/Generator.php'); + +/** + * Generates Markdown from JSDoc entries in a given file. + * + * @param {Array} [$options=array()] The options array. + * @returns {String} The generated Markdown. + * @example + * + * // specify a file path + * $markdown = docdown(array( + * // path to js file + * 'path' => $filepath, + * // url used to reference line numbers in code + * 'url' => 'https://github.com/username/project/blob/master/my.js' + * )); + * + * // or pass raw js + * $markdown = docdown(array( + * // raw JavaScript source + * 'source' => $rawJS, + * // documentation title + * 'title' => 'My API Documentation', + * // url used to reference line numbers in code + * 'url' => 'https://github.com/username/project/blob/master/my.js' + * )); + */ +function docdown( $options = array() ) { + $gen = new Generator($options); + return $gen->generate(); +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php new file mode 100644 index 00000000..0a7c552e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php @@ -0,0 +1,226 @@ +owner = $owner; + $this->_name = $name; + $this->_call = $owner->getCall(); + $this->_category = $owner->getCategory(); + $this->_desc = $owner->getDesc(); + $this->_example = $owner->getExample(); + $this->_isCtor = $owner->isCtor(); + $this->_isLicense = $owner->isLicense(); + $this->_isPlugin = $owner->isPlugin(); + $this->_isPrivate = $owner->isPrivate(); + $this->_isStatic = $owner->isStatic(); + $this->_lineNumber = $owner->getLineNumber(); + $this->_members = $owner->getMembers(); + $this->_params = $owner->getParams(); + $this->_returns = $owner->getReturns(); + $this->_type = $owner->getType(); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the entry's `alias` objects. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `alias` objects. + */ + public function getAliases( $index = null ) { + $result = array(); + return $index !== null + ? @$result[$index] + : $result; + } + + /** + * Extracts the function call from the owner entry. + * + * @memberOf Alias + * @returns {String} The function call. + */ + public function getCall() { + return $this->_call; + } + + /** + * Extracts the owner entry's `category` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `category` data. + */ + public function getCategory() { + return $this->_category; + } + + /** + * Extracts the owner entry's description. + * + * @memberOf Alias + * @returns {String} The owner entry's description. + */ + public function getDesc() { + return $this->_desc; + } + + /** + * Extracts the owner entry's `example` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `example` data. + */ + public function getExample() { + return $this->_example; + } + + /** + * Checks if the entry is an alias. + * + * @memberOf Alias + * @returns {Boolean} Returns `true`. + */ + public function isAlias() { + return true; + } + + /** + * Checks if the owner entry is a constructor. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if a constructor, else `false`. + */ + public function isCtor() { + return $this->_isCtor; + } + + /** + * Checks if the owner entry is a license. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if a license, else `false`. + */ + public function isLicense() { + return $this->_isLicense; + } + + /** + * Checks if the owner entry *is* assigned to a prototype. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if assigned to a prototype, else `false`. + */ + public function isPlugin() { + return $this->_isPlugin; + } + + /** + * Checks if the owner entry is private. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if private, else `false`. + */ + public function isPrivate() { + return $this->_isPrivate; + } + + /** + * Checks if the owner entry is *not* assigned to a prototype. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if not assigned to a prototype, else `false`. + */ + public function isStatic() { + return $this->_isStatic; + } + + /** + * Resolves the owner entry's line number. + * + * @memberOf Alias + * @returns {Number} The owner entry's line number. + */ + public function getLineNumber() { + return $this->_lineNumber; + } + + /** + * Extracts the owner entry's `member` data. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The owner entry's `member` data. + */ + public function getMembers( $index = null ) { + return $index !== null + ? @$this->_members[$index] + : $this->_members; + } + + /** + * Extracts the owner entry's `name` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `name` data. + */ + public function getName() { + return $this->_name; + } + + /** + * Extracts the owner entry's `param` data. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array} The owner entry's `param` data. + */ + public function getParams( $index = null ) { + return $index !== null + ? @$this->_params[$index] + : $this->_params; + } + + /** + * Extracts the owner entry's `returns` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `returns` data. + */ + public function getReturns() { + return $this->_returns; + } + + /** + * Extracts the owner entry's `type` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `type` data. + */ + public function getType() { + return $this->_type; + } +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php new file mode 100644 index 00000000..a973d9a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php @@ -0,0 +1,442 @@ +entry = $entry; + $this->lang = $lang; + $this->source = str_replace(PHP_EOL, "\n", $source); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the documentation entries from source code. + * + * @static + * @memberOf Entry + * @param {String} $source The source code. + * @returns {Array} The array of entries. + */ + public static function getEntries( $source ) { + preg_match_all('#/\*\*(?![-!])[\s\S]*?\*/\s*.+#', $source, $result); + return array_pop($result); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Checks if the entry is a function reference. + * + * @private + * @memberOf Entry + * @returns {Boolean} Returns `true` if the entry is a function reference, else `false`. + */ + private function isFunction() { + if (!isset($this->_isFunction)) { + $this->_isFunction = !!( + $this->isCtor() || + count($this->getParams()) || + count($this->getReturns()) || + preg_match('/\*[\t ]*@function\b/', $this->entry) + ); + } + return $this->_isFunction; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the entry's `alias` objects. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `alias` objects. + */ + public function getAliases( $index = null ) { + if (!isset($this->_aliases)) { + preg_match('#\*[\t ]*@alias\s+(.+)#', $this->entry, $result); + + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + $result = preg_split('/,\s*/', $result); + natsort($result); + + foreach ($result as $resultIndex => $value) { + $result[$resultIndex] = new Alias($value, $this); + } + } + $this->_aliases = $result; + } + return $index !== null + ? @$this->_aliases[$index] + : $this->_aliases; + } + + /** + * Extracts the function call from the entry. + * + * @memberOf Entry + * @returns {String} The function call. + */ + public function getCall() { + if (isset($this->_call)) { + return $this->_call; + } + + preg_match('#\*/\s*(?:function ([^(]*)|(.*?)(?=[:=,]|return\b))#', $this->entry, $result); + if ($result = array_pop($result)) { + $result = array_pop(explode('var ', trim(trim(array_pop(explode('.', $result))), "'"))); + } + // resolve name + // avoid $this->getName() because it calls $this->getCall() + preg_match('#\*[\t ]*@name\s+(.+)#', $this->entry, $name); + if (count($name)) { + $name = trim($name[1]); + } else { + $name = $result; + } + // compile function call syntax + if ($this->isFunction()) { + // compose parts + $result = array($result); + $params = $this->getParams(); + foreach ($params as $param) { + $result[] = $param[1]; + } + // format + $result = $name .'('. implode(array_slice($result, 1), ', ') .')'; + $result = str_replace(', [', ' [, ', str_replace('], [', ', ', $result)); + } + + $this->_call = $result ? $result : $name; + return $this->_call; + } + + /** + * Extracts the entry's `category` data. + * + * @memberOf Entry + * @returns {String} The entry's `category` data. + */ + public function getCategory() { + if (isset($this->_category)) { + return $this->_category; + } + + preg_match('#\*[\t ]*@category\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = $this->getType() == 'Function' ? 'Methods' : 'Properties'; + } + $this->_category = $result; + return $result; + } + + /** + * Extracts the entry's description. + * + * @memberOf Entry + * @returns {String} The entry's description. + */ + public function getDesc() { + if (isset($this->_desc)) { + return $this->_desc; + } + + preg_match('#/\*\*(?:\s*\*)?([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $type = $this->getType(); + $result = preg_replace('/:\n[\t ]*\*[\t ]*/', ":
      \n", $result[1]); + $result = preg_replace('/(?:^|\n)[\t ]*\*\n[\t ]*\*[\t ]*/', "\n\n", $result); + $result = preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result); + $result = trim($result); + $result = ($type == 'Function' ? '' : '(' . str_replace('|', ', ', trim($type, '{}')) . '): ') . $result; + } + $this->_desc = $result; + return $result; + } + + /** + * Extracts the entry's `example` data. + * + * @memberOf Entry + * @returns {String} The entry's `example` data. + */ + public function getExample() { + if (isset($this->_example)) { + return $this->_example; + } + + preg_match('#\*[\t ]*@example\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', "\n", $result[1])); + $result = '```' . $this->lang . "\n" . $result . "\n```"; + } + $this->_example = $result; + return $result; + } + + /** + * Checks if the entry is an alias. + * + * @memberOf Entry + * @returns {Boolean} Returns `false`. + */ + public function isAlias() { + return false; + } + + /** + * Checks if the entry is a constructor. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if a constructor, else `false`. + */ + public function isCtor() { + if (!isset($this->_isCtor)) { + $this->_isCtor = !!preg_match('/\*[\t ]*@constructor\b/', $this->entry); + } + return $this->_isCtor; + } + + /** + * Checks if the entry is a license. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if a license, else `false`. + */ + public function isLicense() { + if (!isset($this->_isLicense)) { + $this->_isLicense = !!preg_match('/\*[\t ]*@license\b/', $this->entry); + } + return $this->_isLicense; + } + + /** + * Checks if the entry *is* assigned to a prototype. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if assigned to a prototype, else `false`. + */ + public function isPlugin() { + if (!isset($this->_isPlugin)) { + $this->_isPlugin = !$this->isCtor() && !$this->isPrivate() && !$this->isStatic(); + } + return $this->_isPlugin; + } + + /** + * Checks if the entry is private. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if private, else `false`. + */ + public function isPrivate() { + if (!isset($this->_isPrivate)) { + $this->_isPrivate = $this->isLicense() || !!preg_match('/\*[\t ]*@private\b/', $this->entry) || !preg_match('/\*[\t ]*@[a-z]+\b/', $this->entry); + } + return $this->_isPrivate; + } + + /** + * Checks if the entry is *not* assigned to a prototype. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if not assigned to a prototype, else `false`. + */ + public function isStatic() { + if (isset($this->_isStatic)) { + return $this->_isStatic; + } + + $public = !$this->isPrivate(); + $result = $public && !!preg_match('/\*[\t ]*@static\b/', $this->entry); + + // set in cases where it isn't explicitly stated + if ($public && !$result) { + if ($parent = array_pop(preg_split('/[#.]/', $this->getMembers(0)))) { + foreach (Entry::getEntries($this->source) as $entry) { + $entry = new Entry($entry, $this->source); + if ($entry->getName() == $parent) { + $result = !$entry->isCtor(); + break; + } + } + } else { + $result = true; + } + } + $this->_isStatic = $result; + return $result; + } + + /** + * Resolves the entry's line number. + * + * @memberOf Entry + * @returns {Number} The entry's line number. + */ + public function getLineNumber() { + if (!isset($this->_lineNumber)) { + preg_match_all('/\n/', substr($this->source, 0, strrpos($this->source, $this->entry) + strlen($this->entry)), $lines); + $this->_lineNumber = count(array_pop($lines)) + 1; + } + return $this->_lineNumber; + } + + /** + * Extracts the entry's `member` data. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `member` data. + */ + public function getMembers( $index = null ) { + if (!isset($this->_members)) { + preg_match('#\*[\t ]*@member(?:Of)?\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + $result = preg_split('/,\s*/', $result); + natsort($result); + } + $this->_members = $result; + } + return $index !== null + ? @$this->_members[$index] + : $this->_members; + } + + /** + * Extracts the entry's `name` data. + * + * @memberOf Entry + * @returns {String} The entry's `name` data. + */ + public function getName() { + if (isset($this->_name)) { + return $this->_name; + } + + preg_match('#\*[\t ]*@name\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = array_shift(explode('(', $this->getCall())); + } + $this->_name = $result; + return $result; + } + + /** + * Extracts the entry's `param` data. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array} The entry's `param` data. + */ + public function getParams( $index = null ) { + if (!isset($this->_params)) { + preg_match_all('#\*[\t ]*@param\s+\{([^}]+)\}\s+(\[.+\]|[$\w|]+(?:\[.+\])?)\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#i', $this->entry, $result); + if (count($result = array_filter(array_slice($result, 1)))) { + // repurpose array + foreach ($result as $param) { + foreach ($param as $key => $value) { + if (!is_array($result[0][$key])) { + $result[0][$key] = array(); + } + $result[0][$key][] = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]*/', ' ', $value)); + } + } + $result = $result[0]; + } + $this->_params = $result; + } + return $index !== null + ? @$this->_params[$index] + : $this->_params; + } + + /** + * Extracts the entry's `returns` data. + * + * @memberOf Entry + * @returns {String} The entry's `returns` data. + */ + public function getReturns() { + if (isset($this->_returns)) { + return $this->_returns; + } + + preg_match('#\*[\t ]*@returns\s+\{([^}]+)\}\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $result = array_map('trim', array_slice($result, 1)); + $result[0] = str_replace('|', ', ', $result[0]); + $result[1] = preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1]); + } + $this->_returns = $result; + return $result; + } + + /** + * Extracts the entry's `type` data. + * + * @memberOf Entry + * @returns {String} The entry's `type` data. + */ + public function getType() { + if (isset($this->_type)) { + return $this->_type; + } + + preg_match('#\*[\t ]*@type\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = $this->isFunction() ? 'Function' : 'Unknown'; + } + $this->_type = $result; + return $result; + } +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php new file mode 100644 index 00000000..5dc2583f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php @@ -0,0 +1,563 @@ +\n"; + + /** + * An array of JSDoc entries. + * + * @memberOf Generator + * @type Array + */ + public $entries = array(); + + /** + * The HTML for the open tag. + * + * @static + * @memberOf Generator + * @type String + */ + public $openTag = "\n\n"; + + /** + * An options array used to configure the generator. + * + * @memberOf Generator + * @type Array + */ + public $options = array(); + + /** + * The file's source code. + * + * @memberOf Generator + * @type String + */ + public $source = ''; + + /*--------------------------------------------------------------------------*/ + + /** + * The Generator constructor. + * + * @constructor + * @param {String} $source The source code to parse. + * @param {Array} $options The options array. + */ + public function __construct( $source, $options = array() ) { + // juggle arguments + if (is_array($source)) { + $options = $source; + } else { + $options['source'] = $source; + } + if (isset($options['source']) && realpath($options['source'])) { + $options['path'] = $options['source']; + } + if (isset($options['path'])) { + preg_match('/(?<=\.)[a-z]+$/', $options['path'], $ext); + $options['source'] = file_get_contents($options['path']); + $ext = array_pop($ext); + + if (!isset($options['lang']) && $ext) { + $options['lang'] = $ext; + } + if (!isset($options['title'])) { + $options['title'] = ucfirst(basename($options['path'])) . ' API documentation'; + } + } + if (!isset($options['lang'])) { + $options['lang'] = 'js'; + } + if (!isset($options['toc'])) { + $options['toc'] = 'properties'; + } + + $this->options = $options; + $this->source = str_replace(PHP_EOL, "\n", $options['source']); + $this->entries = Entry::getEntries($this->source); + + foreach ($this->entries as $index => $value) { + $this->entries[$index] = new Entry($value, $this->source, $options['lang']); + } + } + + /*--------------------------------------------------------------------------*/ + + /** + * Performs common string formatting operations. + * + * @private + * @static + * @memberOf Generator + * @param {String} $string The string to format. + * @returns {String} The formatted string. + */ + private static function format( $string ) { + $counter = 0; + + // tokenize inline code snippets + preg_match_all('/`[^`]+`/', $string, $tokenized); + $tokenized = $tokenized[0]; + foreach ($tokenized as $snippet) { + $string = str_replace($snippet, '__token' . ($counter++) .'__', $string); + } + + // italicize parentheses + $string = preg_replace('/(^|\s)(\([^)]+\))/', '$1*$2*', $string); + + // mark numbers as inline code + $string = preg_replace('/[\t ](-?\d+(?:.\d+)?)(?!\.[^\n])/', ' `$1`', $string); + + // detokenize inline code snippets + $counter = 0; + foreach ($tokenized as $snippet) { + $string = str_replace('__token' . ($counter++) . '__', $snippet, $string); + } + + return trim($string); + } + + /** + * Modify a string by replacing named tokens with matching assoc. array values. + * + * @private + * @static + * @memberOf Generator + * @param {String} $string The string to modify. + * @param {Array|Object} $object The template object. + * @returns {String} The modified string. + */ + private static function interpolate( $string, $object ) { + preg_match_all('/#\{([^}]+)\}/', $string, $tokens); + $tokens = array_unique(array_pop($tokens)); + + foreach ($tokens as $token) { + $pattern = '/#\{' . $token . '\}/'; + $replacement = ''; + + if (is_object($object)) { + preg_match('/\(([^)]+?)\)$/', $token, $args); + $args = preg_split('/,\s*/', array_pop($args)); + $method = 'get' . ucfirst(str_replace('/\([^)]+?\)$/', '', $token)); + + if (method_exists($object, $method)) { + $replacement = (string) call_user_func_array(array($object, $method), $args); + } else if (isset($object->{$token})) { + $replacement = (string) $object->{$token}; + } + } else if (isset($object[$token])) { + $replacement = (string) $object[$token]; + } + $string = preg_replace($pattern, trim($replacement), $string); + } + return Generator::format($string); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Adds the given `$entries` to the `$result` array. + * + * @private + * @memberOf Generator + * @param {Array} $result The result array to modify. + * @param {Array} $entries The entries to add to the `$result`. + */ + private function addEntries( &$result, $entries ) { + foreach ($entries as $entry) { + // skip aliases + if ($entry->isAlias()) { + continue; + } + // name and description + array_push( + $result, + $this->openTag, + Generator::interpolate("### `#{member}#{separator}#{call}`\n# [Ⓢ](#{href} \"View in source\") [Ⓣ][1]\n\n#{desc}", $entry) + ); + + // @alias + if (count($aliases = $entry->getAliases())) { + array_push($result, '', '#### Aliases'); + foreach ($aliases as $index => $alias) { + $aliases[$index] = $alias->getName(); + } + $result[] = '*' . implode(', ', $aliases) . '*'; + } + // @param + if (count($params = $entry->getParams())) { + array_push($result, '', '#### Arguments'); + foreach ($params as $index => $param) { + $result[] = Generator::interpolate('#{num}. `#{name}` (#{type}): #{desc}', array( + 'desc' => $param[2], + 'name' => $param[1], + 'num' => $index + 1, + 'type' => $param[0] + )); + } + } + // @returns + if (count($returns = $entry->getReturns())) { + array_push( + $result, '', + '#### Returns', + Generator::interpolate('(#{type}): #{desc}', array('desc' => $returns[1], 'type' => $returns[0])) + ); + } + // @example + if ($example = $entry->getExample()) { + array_push($result, '', '#### Example', $example); + } + array_push($result, "\n* * *", $this->closeTag); + } + } + + /** + * Resolves the entry's hash used to navigate the documentation. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @param {String} $member The name of the member. + * @returns {String} The url hash. + */ + private function getHash( $entry, $member = '' ) { + $entry = is_numeric($entry) ? $this->entries[$entry] : $entry; + $member = !$member ? $entry->getMembers(0) : $member; + $result = ($member ? $member . ($entry->isPlugin() ? 'prototype' : '') : '') . $entry->getCall(); + $result = preg_replace('/\(\[|\[\]/', '', $result); + $result = preg_replace('/[ =|\'"{}.()\]]/', '', $result); + $result = preg_replace('/[[#,]/', '-', $result); + return strtolower($result); + } + + /** + * Resolves the entry's url for the specific line number. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @returns {String} The url. + */ + private function getLineUrl( $entry ) { + $entry = is_numeric($entry) ? $this->entries($entry) : $entry; + return $this->options['url'] . '#L' . $entry->getLineNumber(); + } + + /** + * Extracts the character used to separate the entry's name from its member. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @returns {String} The separator. + */ + private function getSeparator( $entry ) { + $entry = is_numeric($entry) ? $this->entries($entry) : $entry; + return $entry->isPlugin() ? '.prototype.' : '.'; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Generates Markdown from JSDoc entries. + * + * @memberOf Generator + * @returns {String} The rendered Markdown. + */ + public function generate() { + $api = array(); + $byCategory = $this->options['toc'] == 'categories'; + $categories = array(); + $closeTag = $this->closeTag; + $compiling = false; + $openTag = $this->openTag; + $result = array('# ' . $this->options['title']); + $toc = 'toc'; + + // initialize $api array + foreach ($this->entries as $entry) { + // skip invalid or private entries + $name = $entry->getName(); + if (!$name || $entry->isPrivate()) { + continue; + } + + $members = $entry->getMembers(); + $members = count($members) ? $members : array(''); + + foreach ($members as $member) { + // create api category arrays + if ($member && !isset($api[$member])) { + // create temporary entry to be replaced later + $api[$member] = new stdClass; + $api[$member]->static = array(); + $api[$member]->plugin = array(); + } + + // append entry to api member + if (!$member || $entry->isCtor() || ($entry->getType() == 'Object' && + !preg_match('/[=:]\s*(?:null|undefined)\s*[,;]?$/', $entry->entry))) { + + // assign the real entry, replacing the temporary entry if it exist + $member = ($member ? $member . ($entry->isPlugin() ? '#' : '.') : '') . $name; + $entry->static = @$api[$member] ? $api[$member]->static : array(); + $entry->plugin = @$api[$member] ? $api[$member]->plugin : array(); + + $api[$member] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->static[] = $alias; + } + } + else if ($entry->isStatic()) { + $api[$member]->static[] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->static[] = $alias; + } + } + else if (!$entry->isCtor()) { + $api[$member]->plugin[] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->plugin[] = $alias; + } + } + } + } + + // add properties to each entry + foreach ($api as $entry) { + $entry->hash = $this->getHash($entry); + $entry->href = $this->getLineUrl($entry); + + $member = $entry->getMembers(0); + $member = ($member ? $member . ($entry->isPlugin() ? '.prototype.' : '.') : '') . $entry->getName(); + $entry->member = preg_replace('/' . $entry->getName() . '$/', '', $member); + + // add properties to static and plugin sub-entries + foreach (array('static', 'plugin') as $kind) { + foreach ($entry->{$kind} as $subentry) { + $subentry->hash = $this->getHash($subentry); + $subentry->href = $this->getLineUrl($subentry); + $subentry->member = $member; + $subentry->separator = $this->getSeparator($subentry); + } + } + } + + /*------------------------------------------------------------------------*/ + + // custom sort for root level entries + // TODO: see how well it handles deeper namespace traversal + function sortCompare($a, $b) { + $score = array( 'a' => 0, 'b' => 0); + foreach (array( 'a' => $a, 'b' => $b) as $key => $value) { + // capitalized properties are last + if (preg_match('/[#.][A-Z]/', $value)) { + $score[$key] = 0; + } + // lowercase prototype properties are next to last + else if (preg_match('/#[a-z]/', $value)) { + $score[$key] = 1; + } + // lowercase static properties next to first + else if (preg_match('/\.[a-z]/', $value)) { + $score[$key] = 2; + } + // root properties are first + else if (preg_match('/^[^#.]+$/', $value)) { + $score[$key] = 3; + } + } + $score = $score['b'] - $score['a']; + return $score ? $score : strcasecmp($a, $b); + } + + uksort($api, 'sortCompare'); + + // sort static and plugin sub-entries + foreach ($api as $entry) { + foreach (array('static', 'plugin') as $kind) { + $sortBy = array( 'a' => array(), 'b' => array(), 'c' => array() ); + foreach ($entry->{$kind} as $subentry) { + $name = $subentry->getName(); + // functions w/o ALL-CAPs names are last + $sortBy['a'][] = $subentry->getType() == 'Function' && !preg_match('/^[A-Z_]+$/', $name); + // ALL-CAPs properties first + $sortBy['b'][] = preg_match('/^[A-Z_]+$/', $name); + // lowercase alphanumeric sort + $sortBy['c'][] = strtolower($name); + } + array_multisort($sortBy['a'], SORT_ASC, $sortBy['b'], SORT_DESC, $sortBy['c'], SORT_ASC, $entry->{$kind}); + } + } + + /*------------------------------------------------------------------------*/ + + // add categories + foreach ($api as $entry) { + $categories[$entry->getCategory()][] = $entry; + foreach (array('static', 'plugin') as $kind) { + foreach ($entry->{$kind} as $subentry) { + $categories[$subentry->getCategory()][] = $subentry; + } + } + } + + // sort categories + ksort($categories); + + foreach(array('Methods', 'Properties') as $category) { + if (isset($categories[$category])) { + $entries = $categories[$category]; + unset($categories[$category]); + $categories[$category] = $entries; + } + } + + /*------------------------------------------------------------------------*/ + + // compile TOC + $result[] = $openTag; + + // compile TOC by categories + if ($byCategory) { + foreach ($categories as $category => $entries) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + // assign TOC hash + if (count($result) == 2) { + $toc = $category; + } + // add category + array_push( + $result, + $openTag, '## ' . (count($result) == 2 ? '' : '') . '`' . $category . '`' + ); + // add entries + foreach ($entries as $entry) { + $result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $entry); + } + } + } + // compile TOC by namespace + else { + foreach ($api as $entry) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + $member = $entry->member . $entry->getName(); + + // assign TOC hash + if (count($result) == 2) { + $toc = $member; + } + // add root entry + array_push( + $result, + $openTag, '## ' . (count($result) == 2 ? '' : '') . '`' . $member . '`', + Generator::interpolate('* [`' . $member . '`](##{hash})', $entry) + ); + + // add static and plugin sub-entries + foreach (array('static', 'plugin') as $kind) { + if ($kind == 'plugin' && count($entry->plugin)) { + array_push( + $result, + $closeTag, + $openTag, + '## `' . $member . ($entry->isCtor() ? '.prototype`' : '`') + ); + } + foreach ($entry->{$kind} as $subentry) { + $subentry->member = $member; + $result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $subentry); + } + } + } + } + + array_push($result, $closeTag, $closeTag); + + /*------------------------------------------------------------------------*/ + + // compile content + $compiling = false; + $result[] = $openTag; + + if ($byCategory) { + foreach ($categories as $category => $entries) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + if ($category != 'Methods' && $category != 'Properties') { + $category = '“' . $category . '” Methods'; + } + array_push($result, $openTag, '## `' . $category . '`'); + $this->addEntries($result, $entries); + } + } + else { + foreach ($api as $entry) { + // skip aliases + if ($entry->isAlias()) { + continue; + } + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + // add root entry name + $member = $entry->member . $entry->getName(); + array_push($result, $openTag, '## `' . $member . '`'); + + foreach (array($entry, 'static', 'plugin') as $kind) { + $subentries = is_string($kind) ? $entry->{$kind} : array($kind); + + // add sub-entry name + if ($kind != 'static' && $entry->getType() != 'Object' && + count($subentries) && $subentries[0] != $kind) { + if ($kind == 'plugin') { + $result[] = $closeTag; + } + array_push( + $result, + $openTag, + '## `' . $member . ($kind == 'plugin' ? '.prototype`' : '`') + ); + } + $this->addEntries($result, $subentries); + } + } + } + + // close tags add TOC link reference + array_push($result, $closeTag, $closeTag, '', ' [1]: #' . $toc . ' "Jump back to the TOC."'); + + // cleanup whitespace + return trim(preg_replace('/[\t ]+\n/', "\n", join($result, "\n"))); + } +} +?> diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json new file mode 100644 index 00000000..167c7c6a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json @@ -0,0 +1,50 @@ +{ + "author": { + "name": "Jeremy Stashewsky", + "email": "jeremy@goinstant.com", + "url": "https://github.com/stash" + }, + "name": "tough-cookie", + "description": "RFC6265 Cookies and Cookie Jar for node.js", + "keywords": [ + "HTTP", + "cookie", + "cookies", + "set-cookie", + "cookiejar", + "jar", + "RFC6265", + "RFC2965" + ], + "version": "0.9.15", + "homepage": "https://github.com/goinstant/node-cookie", + "repository": { + "type": "git", + "url": "git://github.com/goinstant/node-cookie.git" + }, + "bugs": { + "url": "https://github.com/goinstant/node-cookie/issues" + }, + "main": "./lib/cookie", + "scripts": { + "test": "vows test.js" + }, + "engines": { + "node": ">=0.4.12" + }, + "dependencies": { + "punycode": ">=0.2.0" + }, + "devDependencies": { + "vows": ">=0.6.0", + "async": ">=0.1.12" + }, + "readme": "[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js\n\n![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg)\n\n# Synopsis\n\n``` javascript\nvar cookies = require('tough-cookie'); // note: not 'cookie', 'cookies' or 'node-cookie'\nvar Cookie = cookies.Cookie;\nvar cookie = Cookie.parse(header);\ncookie.value = 'somethingdifferent';\nheader = cookie.toString();\n\nvar cookiejar = new cookies.CookieJar();\ncookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb);\n// ...\ncookiejar.getCookies('http://example.com/otherpath',function(err,cookies) {\n res.headers['cookie'] = cookies.join('; ');\n});\n```\n\n# Installation\n\nIt's _so_ easy!\n\n`npm install tough-cookie`\n\nRequires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default.\n\nWhy the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.\n\n# API\n\ncookies\n=======\n\nFunctions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be \"bound\".\n\nparseDate(string[,strict])\n-----------------\n\nParse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. \"Thu, 01 Jan 1970 00:00:010 GMT\" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid).\n\nformatDate(date)\n----------------\n\nFormat a Date into a RFC1123 string (the RFC6265-recommended format).\n\ncanonicalDomain(str)\n--------------------\n\nTransforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).\n\ndomainMatch(str,domStr[,canonicalize=true])\n-------------------------------------------\n\nAnswers \"does this real domain match the domain in a cookie?\". The `str` is the \"current\" domain-name and the `domStr` is the \"cookie\" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a \"suffix match\".\n\nThe `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.\n\ndefaultPath(path)\n-----------------\n\nGiven a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the \"directory\" of a \"file\" in the path, but is specified by Section 5.1.4 of the RFC.\n\nThe `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output.\n\npathMatch(reqPath,cookiePath)\n-----------------------------\n\nAnswers \"does the request-path path-match a given cookie-path?\" as per RFC6265 Section 5.1.4. Returns a boolean.\n\nThis is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.\n\nparse(header[,strict=false])\n----------------------------\n\nalias for `Cookie.parse(header[,strict])`\n\nfromJSON(string)\n----------------\n\nalias for `Cookie.fromJSON(string)`\n\ngetPublicSuffix(hostname)\n-------------------------\n\nReturns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.\n\nFor example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.\n\nFor further information, see http://publicsuffix.org/. This module derives its list from that site.\n\ncookieCompare(a,b)\n------------------\n\nFor use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest.\n\n``` javascript\nvar cookies = [ /* unsorted array of Cookie objects */ ];\ncookies = cookies.sort(cookieCompare);\n```\n\npermuteDomain(domain)\n---------------------\n\nGenerates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.\n\n\npermutePath(path)\n-----------------\n\nGenerates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.\n\nCookie\n======\n\nCookie.parse(header[,strict=false])\n-----------------------------------\n\nParses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. If in strict mode, returns `undefined` if the cookie doesn't follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off.\n\nHere's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:\n\n``` javascript\nif (res.headers['set-cookie'] instanceof Array)\n cookies = res.headers['set-cookie'].map(Cookie.parse);\nelse\n cookies = [Cookie.parse(res.headers['set-cookie'])];\n```\n\nCookie.fromJSON(string)\n-----------------------\n\nConvert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects.\n\nProperties\n==========\n\n * _key_ - string - the name or key of the cookie (default \"\")\n * _value_ - string - the value of the cookie (default \"\")\n * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `\"Infinity\"`). See `setExpires()`\n * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `\"Infinity\"` and `\"-Infinity\"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`\n * _domain_ - string - the `Domain=` attribute of the cookie\n * _path_ - string - the `Path=` of the cookie\n * _secure_ - boolean - the `Secure` cookie flag\n * _httpOnly_ - boolean - the `HttpOnly` cookie flag\n * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)\n \nAfter a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:\n\n * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)\n * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.\n * _created_ - `Date` - when this cookie was added to the jar\n * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.\n\nConstruction([{options}])\n------------\n\nReceives an options object that can contain any Cookie properties, uses the default for unspecified properties.\n\n.toString()\n-----------\n\nencode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.\n\n.cookieString()\n---------------\n\nencode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '=').\n\n.setExpires(String)\n-------------------\n\nsets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `\"Infinity\"` (a string) is set.\n\n.setMaxAge(number)\n-------------------\n\nsets the maxAge in seconds. Coerces `-Infinity` to `\"-Infinity\"` and `Infinity` to `\"Infinity\"` so it JSON serializes correctly.\n\n.expiryTime([now=Date.now()])\n-----------------------------\n\n.expiryDate([now=Date.now()])\n-----------------------------\n\nexpiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.\n\nMax-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.\n\nIf Expires (`.expires`) is set, that's returned.\n\nOtherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for \"Tue, 19 Jan 2038 03:14:07 GMT\" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).\n\n.TTL([now=Date.now()])\n---------\n\ncompute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.\n\nThe \"number\" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.\n\n.canonicalizedDoman()\n---------------------\n\n.cdomain()\n----------\n\nreturn the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.\n\n.validate()\n-----------\n\nStatus: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.\n\nvalidates cookie attributes for semantic correctness. Useful for \"lint\" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:\n\n``` javascript\nif (cookie.validate() === true) {\n // it's tasty\n} else {\n // yuck!\n}\n```\n\nCookieJar\n=========\n\nConstruction([store = new MemoryCookieStore()][, rejectPublicSuffixes])\n------------\n\nSimply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.\n\n\nAttributes\n----------\n\n * _rejectPublicSuffixes_ - boolean - reject cookies with domains like \"com\" and \"co.uk\" (default: `true`)\n \nSince eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.\n\n.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))\n-------------------------------------------------------------------\n\nAttempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a \"Secure\" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _strict_ - boolean - default `false` - perform extra checks\n * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren't ignored by this option.\n\nAs per the RFC, the `.hostOnly` property is set if there was no \"Domain=\" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).\n\n.storeCookie(cookie, [{options},] cb(err,cookie))\n-------------------------------------------------\n\n__REMOVED__ removed in lieu of the CookieStore API below\n \n.getCookies(currentUrl, [{options},] cb(err,cookies))\n-----------------------------------------------------\n\nRetrieve the list of cookies that can be sent in a Cookie header for the current url.\n\nIf an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a \"Secure\" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).\n * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it).\n\nThe `.lastAccessed` property of the returned cookies will have been updated.\n\n.getCookieString(...)\n---------------------\n\nAccepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.\n\n.getSetCookieStrings(...)\n-------------------------\n\nAccepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`.\n\n# CookieStore API\n\nThe storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.\n\nAll `domain` parameters will have been normalized before calling.\n\nThe Cookie store must have all of the following methods.\n\nstore.findCookie(domain, path, key, cb(err,cookie))\n---------------------------------------------------\n\nRetrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.\n\nCallback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).\n\nstore.findCookies(domain, path, cb(err,cookies))\n------------------------------------------------\n\nLocates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.\n\nIf no cookies are found, the callback MUST be passed an empty array.\n\nThe resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.\n\nAs of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).\n\nstore.putCookie(cookie, cb(err))\n--------------------------------\n\nAdds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.\n\nThe `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.\n\nPass an error if the cookie cannot be stored.\n\nstore.updateCookie(oldCookie, newCookie, cb(err))\n-------------------------------------------------\n\nUpdate an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.\n\nThe `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion).\n\nStores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.\n\nThe `newCookie` and `oldCookie` objects MUST NOT be modified.\n\nPass an error if the newCookie cannot be stored.\n\nstore.removeCookie(domain, path, key, cb(err))\n----------------------------------------------\n\nRemove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).\n\nThe implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie.\n\nstore.removeCookies(domain, path, cb(err))\n------------------------------------------\n\nRemoves matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed.\n\nPass an error ONLY if removing any existing cookies failed.\n\n# TODO\n\n * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()`\n * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891\n * better tests for `validate()`?\n\n# Copyright and License\n\n(tl;dr: MIT with some MPL/1.1)\n\nCopyright GoInstant, Inc. and other contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\nPortions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details.\n", + "readmeFilename": "README.md", + "_id": "tough-cookie@0.9.15", + "dist": { + "shasum": "0fbda7fb5b5bca17e4f97909a0818dc8c2c12588" + }, + "_from": "tough-cookie@~0.9.15", + "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt new file mode 100644 index 00000000..2c201312 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt @@ -0,0 +1,5229 @@ +// ***** BEGIN LICENSE BLOCK ***** +// Version: MPL 1.1/GPL 2.0/LGPL 2.1 +// +// The contents of this file are subject to the Mozilla Public License Version +// 1.1 (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.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the +// License. +// +// The Original Code is the Public Suffix List. +// +// The Initial Developer of the Original Code is +// Jo Hermans . +// Portions created by the Initial Developer are Copyright (C) 2007 +// the Initial Developer. All Rights Reserved. +// +// Contributor(s): +// Ruben Arakelyan +// Gervase Markham +// Pamela Greene +// David Triendl +// Jothan Frakes +// The kind representatives of many TLD registries +// +// Alternatively, the contents of this file may be used under the terms of +// either the GNU General Public License Version 2 or later (the "GPL"), or +// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +// in which case the provisions of the GPL or the LGPL are applicable instead +// of those above. If you wish to allow use of your version of this file only +// under the terms of either the GPL or the LGPL, and not to allow others to +// use your version of this file under the terms of the MPL, indicate your +// decision by deleting the provisions above and replace them with the notice +// and other provisions required by the GPL or the LGPL. If you do not delete +// the provisions above, a recipient may use your version of this file under +// the terms of any one of the MPL, the GPL or the LGPL. +// +// ***** END LICENSE BLOCK ***** + +// ===BEGIN ICANN DOMAINS=== + +// ac : http://en.wikipedia.org/wiki/.ac +ac +com.ac +edu.ac +gov.ac +net.ac +mil.ac +org.ac + +// ad : http://en.wikipedia.org/wiki/.ad +ad +nom.ad + +// ae : http://en.wikipedia.org/wiki/.ae +// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php +ae +co.ae +net.ae +org.ae +sch.ae +ac.ae +gov.ae +mil.ae + +// aero : see http://www.information.aero/index.php?id=66 +aero +accident-investigation.aero +accident-prevention.aero +aerobatic.aero +aeroclub.aero +aerodrome.aero +agents.aero +aircraft.aero +airline.aero +airport.aero +air-surveillance.aero +airtraffic.aero +air-traffic-control.aero +ambulance.aero +amusement.aero +association.aero +author.aero +ballooning.aero +broker.aero +caa.aero +cargo.aero +catering.aero +certification.aero +championship.aero +charter.aero +civilaviation.aero +club.aero +conference.aero +consultant.aero +consulting.aero +control.aero +council.aero +crew.aero +design.aero +dgca.aero +educator.aero +emergency.aero +engine.aero +engineer.aero +entertainment.aero +equipment.aero +exchange.aero +express.aero +federation.aero +flight.aero +freight.aero +fuel.aero +gliding.aero +government.aero +groundhandling.aero +group.aero +hanggliding.aero +homebuilt.aero +insurance.aero +journal.aero +journalist.aero +leasing.aero +logistics.aero +magazine.aero +maintenance.aero +marketplace.aero +media.aero +microlight.aero +modelling.aero +navigation.aero +parachuting.aero +paragliding.aero +passenger-association.aero +pilot.aero +press.aero +production.aero +recreation.aero +repbody.aero +res.aero +research.aero +rotorcraft.aero +safety.aero +scientist.aero +services.aero +show.aero +skydiving.aero +software.aero +student.aero +taxi.aero +trader.aero +trading.aero +trainer.aero +union.aero +workinggroup.aero +works.aero + +// af : http://www.nic.af/help.jsp +af +gov.af +com.af +org.af +net.af +edu.af + +// ag : http://www.nic.ag/prices.htm +ag +com.ag +org.ag +net.ag +co.ag +nom.ag + +// ai : http://nic.com.ai/ +ai +off.ai +com.ai +net.ai +org.ai + +// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31 +al +com.al +edu.al +gov.al +mil.al +net.al +org.al + +// am : http://en.wikipedia.org/wiki/.am +am + +// an : http://www.una.an/an_domreg/default.asp +an +com.an +net.an +org.an +edu.an + +// ao : http://en.wikipedia.org/wiki/.ao +// http://www.dns.ao/REGISTR.DOC +ao +ed.ao +gv.ao +og.ao +co.ao +pb.ao +it.ao + +// aq : http://en.wikipedia.org/wiki/.aq +aq + +// ar : http://en.wikipedia.org/wiki/.ar +*.ar +!congresodelalengua3.ar +!educ.ar +!gobiernoelectronico.ar +!mecon.ar +!nacion.ar +!nic.ar +!promocion.ar +!retina.ar +!uba.ar + +// arpa : http://en.wikipedia.org/wiki/.arpa +// Confirmed by registry 2008-06-18 +e164.arpa +in-addr.arpa +ip6.arpa +iris.arpa +uri.arpa +urn.arpa + +// as : http://en.wikipedia.org/wiki/.as +as +gov.as + +// asia : http://en.wikipedia.org/wiki/.asia +asia + +// at : http://en.wikipedia.org/wiki/.at +// Confirmed by registry 2008-06-17 +at +ac.at +co.at +gv.at +or.at + +// au : http://en.wikipedia.org/wiki/.au +// http://www.auda.org.au/ +// 2LDs +com.au +net.au +org.au +edu.au +gov.au +csiro.au +asn.au +id.au +// Historic 2LDs (closed to new registration, but sites still exist) +info.au +conf.au +oz.au +// CGDNs - http://www.cgdn.org.au/ +act.au +nsw.au +nt.au +qld.au +sa.au +tas.au +vic.au +wa.au +// 3LDs +act.edu.au +nsw.edu.au +nt.edu.au +qld.edu.au +sa.edu.au +tas.edu.au +vic.edu.au +wa.edu.au +act.gov.au +// Removed at request of Shae.Donelan@services.nsw.gov.au, 2010-03-04 +// nsw.gov.au +nt.gov.au +qld.gov.au +sa.gov.au +tas.gov.au +vic.gov.au +wa.gov.au + +// aw : http://en.wikipedia.org/wiki/.aw +aw +com.aw + +// ax : http://en.wikipedia.org/wiki/.ax +ax + +// az : http://en.wikipedia.org/wiki/.az +az +com.az +net.az +int.az +gov.az +org.az +edu.az +info.az +pp.az +mil.az +name.az +pro.az +biz.az + +// ba : http://en.wikipedia.org/wiki/.ba +ba +org.ba +net.ba +edu.ba +gov.ba +mil.ba +unsa.ba +unbi.ba +co.ba +com.ba +rs.ba + +// bb : http://en.wikipedia.org/wiki/.bb +bb +biz.bb +com.bb +edu.bb +gov.bb +info.bb +net.bb +org.bb +store.bb + +// bd : http://en.wikipedia.org/wiki/.bd +*.bd + +// be : http://en.wikipedia.org/wiki/.be +// Confirmed by registry 2008-06-08 +be +ac.be + +// bf : http://en.wikipedia.org/wiki/.bf +bf +gov.bf + +// bg : http://en.wikipedia.org/wiki/.bg +// https://www.register.bg/user/static/rules/en/index.html +bg +a.bg +b.bg +c.bg +d.bg +e.bg +f.bg +g.bg +h.bg +i.bg +j.bg +k.bg +l.bg +m.bg +n.bg +o.bg +p.bg +q.bg +r.bg +s.bg +t.bg +u.bg +v.bg +w.bg +x.bg +y.bg +z.bg +0.bg +1.bg +2.bg +3.bg +4.bg +5.bg +6.bg +7.bg +8.bg +9.bg + +// bh : http://en.wikipedia.org/wiki/.bh +bh +com.bh +edu.bh +net.bh +org.bh +gov.bh + +// bi : http://en.wikipedia.org/wiki/.bi +// http://whois.nic.bi/ +bi +co.bi +com.bi +edu.bi +or.bi +org.bi + +// biz : http://en.wikipedia.org/wiki/.biz +biz + +// bj : http://en.wikipedia.org/wiki/.bj +bj +asso.bj +barreau.bj +gouv.bj + +// bm : http://www.bermudanic.bm/dnr-text.txt +bm +com.bm +edu.bm +gov.bm +net.bm +org.bm + +// bn : http://en.wikipedia.org/wiki/.bn +*.bn + +// bo : http://www.nic.bo/ +bo +com.bo +edu.bo +gov.bo +gob.bo +int.bo +org.bo +net.bo +mil.bo +tv.bo + +// br : http://registro.br/dominio/dpn.html +// Updated by registry 2011-03-01 +br +adm.br +adv.br +agr.br +am.br +arq.br +art.br +ato.br +b.br +bio.br +blog.br +bmd.br +can.br +cim.br +cng.br +cnt.br +com.br +coop.br +ecn.br +edu.br +emp.br +eng.br +esp.br +etc.br +eti.br +far.br +flog.br +fm.br +fnd.br +fot.br +fst.br +g12.br +ggf.br +gov.br +imb.br +ind.br +inf.br +jor.br +jus.br +lel.br +mat.br +med.br +mil.br +mus.br +net.br +nom.br +not.br +ntr.br +odo.br +org.br +ppg.br +pro.br +psc.br +psi.br +qsl.br +radio.br +rec.br +slg.br +srv.br +taxi.br +teo.br +tmp.br +trd.br +tur.br +tv.br +vet.br +vlog.br +wiki.br +zlg.br + +// bs : http://www.nic.bs/rules.html +bs +com.bs +net.bs +org.bs +edu.bs +gov.bs + +// bt : http://en.wikipedia.org/wiki/.bt +bt +com.bt +edu.bt +gov.bt +net.bt +org.bt + +// bv : No registrations at this time. +// Submitted by registry 2006-06-16 + +// bw : http://en.wikipedia.org/wiki/.bw +// http://www.gobin.info/domainname/bw.doc +// list of other 2nd level tlds ? +bw +co.bw +org.bw + +// by : http://en.wikipedia.org/wiki/.by +// http://tld.by/rules_2006_en.html +// list of other 2nd level tlds ? +by +gov.by +mil.by +// Official information does not indicate that com.by is a reserved +// second-level domain, but it's being used as one (see www.google.com.by and +// www.yahoo.com.by, for example), so we list it here for safety's sake. +com.by + +// http://hoster.by/ +of.by + +// bz : http://en.wikipedia.org/wiki/.bz +// http://www.belizenic.bz/ +bz +com.bz +net.bz +org.bz +edu.bz +gov.bz + +// ca : http://en.wikipedia.org/wiki/.ca +ca +// ca geographical names +ab.ca +bc.ca +mb.ca +nb.ca +nf.ca +nl.ca +ns.ca +nt.ca +nu.ca +on.ca +pe.ca +qc.ca +sk.ca +yk.ca +// gc.ca: http://en.wikipedia.org/wiki/.gc.ca +// see also: http://registry.gc.ca/en/SubdomainFAQ +gc.ca + +// cat : http://en.wikipedia.org/wiki/.cat +cat + +// cc : http://en.wikipedia.org/wiki/.cc +cc + +// cd : http://en.wikipedia.org/wiki/.cd +// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1 +cd +gov.cd + +// cf : http://en.wikipedia.org/wiki/.cf +cf + +// cg : http://en.wikipedia.org/wiki/.cg +cg + +// ch : http://en.wikipedia.org/wiki/.ch +ch + +// ci : http://en.wikipedia.org/wiki/.ci +// http://www.nic.ci/index.php?page=charte +ci +org.ci +or.ci +com.ci +co.ci +edu.ci +ed.ci +ac.ci +net.ci +go.ci +asso.ci +aéroport.ci +int.ci +presse.ci +md.ci +gouv.ci + +// ck : http://en.wikipedia.org/wiki/.ck +*.ck +!www.ck + +// cl : http://en.wikipedia.org/wiki/.cl +cl +gov.cl +gob.cl +co.cl +mil.cl + +// cm : http://en.wikipedia.org/wiki/.cm +cm +gov.cm + +// cn : http://en.wikipedia.org/wiki/.cn +// Submitted by registry 2008-06-11 +cn +ac.cn +com.cn +edu.cn +gov.cn +net.cn +org.cn +mil.cn +公司.cn +网络.cn +網絡.cn +// cn geographic names +ah.cn +bj.cn +cq.cn +fj.cn +gd.cn +gs.cn +gz.cn +gx.cn +ha.cn +hb.cn +he.cn +hi.cn +hl.cn +hn.cn +jl.cn +js.cn +jx.cn +ln.cn +nm.cn +nx.cn +qh.cn +sc.cn +sd.cn +sh.cn +sn.cn +sx.cn +tj.cn +xj.cn +xz.cn +yn.cn +zj.cn +hk.cn +mo.cn +tw.cn + +// co : http://en.wikipedia.org/wiki/.co +// Submitted by registry 2008-06-11 +co +arts.co +com.co +edu.co +firm.co +gov.co +info.co +int.co +mil.co +net.co +nom.co +org.co +rec.co +web.co + +// com : http://en.wikipedia.org/wiki/.com +com + +// coop : http://en.wikipedia.org/wiki/.coop +coop + +// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do +cr +ac.cr +co.cr +ed.cr +fi.cr +go.cr +or.cr +sa.cr + +// cu : http://en.wikipedia.org/wiki/.cu +cu +com.cu +edu.cu +org.cu +net.cu +gov.cu +inf.cu + +// cv : http://en.wikipedia.org/wiki/.cv +cv + +// cx : http://en.wikipedia.org/wiki/.cx +// list of other 2nd level tlds ? +cx +gov.cx + +// cy : http://en.wikipedia.org/wiki/.cy +*.cy + +// cz : http://en.wikipedia.org/wiki/.cz +cz + +// de : http://en.wikipedia.org/wiki/.de +// Confirmed by registry (with technical +// reservations) 2008-07-01 +de + +// dj : http://en.wikipedia.org/wiki/.dj +dj + +// dk : http://en.wikipedia.org/wiki/.dk +// Confirmed by registry 2008-06-17 +dk + +// dm : http://en.wikipedia.org/wiki/.dm +dm +com.dm +net.dm +org.dm +edu.dm +gov.dm + +// do : http://en.wikipedia.org/wiki/.do +do +art.do +com.do +edu.do +gob.do +gov.do +mil.do +net.do +org.do +sld.do +web.do + +// dz : http://en.wikipedia.org/wiki/.dz +dz +com.dz +org.dz +net.dz +gov.dz +edu.dz +asso.dz +pol.dz +art.dz + +// ec : http://www.nic.ec/reg/paso1.asp +// Submitted by registry 2008-07-04 +ec +com.ec +info.ec +net.ec +fin.ec +k12.ec +med.ec +pro.ec +org.ec +edu.ec +gov.ec +gob.ec +mil.ec + +// edu : http://en.wikipedia.org/wiki/.edu +edu + +// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B +ee +edu.ee +gov.ee +riik.ee +lib.ee +med.ee +com.ee +pri.ee +aip.ee +org.ee +fie.ee + +// eg : http://en.wikipedia.org/wiki/.eg +eg +com.eg +edu.eg +eun.eg +gov.eg +mil.eg +name.eg +net.eg +org.eg +sci.eg + +// er : http://en.wikipedia.org/wiki/.er +*.er + +// es : https://www.nic.es/site_ingles/ingles/dominios/index.html +es +com.es +nom.es +org.es +gob.es +edu.es + +// et : http://en.wikipedia.org/wiki/.et +*.et + +// eu : http://en.wikipedia.org/wiki/.eu +eu + +// fi : http://en.wikipedia.org/wiki/.fi +fi +// aland.fi : http://en.wikipedia.org/wiki/.ax +// This domain is being phased out in favor of .ax. As there are still many +// domains under aland.fi, we still keep it on the list until aland.fi is +// completely removed. +// TODO: Check for updates (expected to be phased out around Q1/2009) +aland.fi + +// fj : http://en.wikipedia.org/wiki/.fj +*.fj + +// fk : http://en.wikipedia.org/wiki/.fk +*.fk + +// fm : http://en.wikipedia.org/wiki/.fm +fm + +// fo : http://en.wikipedia.org/wiki/.fo +fo + +// fr : http://www.afnic.fr/ +// domaines descriptifs : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-descriptifs +fr +com.fr +asso.fr +nom.fr +prd.fr +presse.fr +tm.fr +// domaines sectoriels : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-sectoriels +aeroport.fr +assedic.fr +avocat.fr +avoues.fr +cci.fr +chambagri.fr +chirurgiens-dentistes.fr +experts-comptables.fr +geometre-expert.fr +gouv.fr +greta.fr +huissier-justice.fr +medecin.fr +notaires.fr +pharmacien.fr +port.fr +veterinaire.fr + +// ga : http://en.wikipedia.org/wiki/.ga +ga + +// gb : This registry is effectively dormant +// Submitted by registry 2008-06-12 + +// gd : http://en.wikipedia.org/wiki/.gd +gd + +// ge : http://www.nic.net.ge/policy_en.pdf +ge +com.ge +edu.ge +gov.ge +org.ge +mil.ge +net.ge +pvt.ge + +// gf : http://en.wikipedia.org/wiki/.gf +gf + +// gg : http://www.channelisles.net/applic/avextn.shtml +gg +co.gg +org.gg +net.gg +sch.gg +gov.gg + +// gh : http://en.wikipedia.org/wiki/.gh +// see also: http://www.nic.gh/reg_now.php +// Although domains directly at second level are not possible at the moment, +// they have been possible for some time and may come back. +gh +com.gh +edu.gh +gov.gh +org.gh +mil.gh + +// gi : http://www.nic.gi/rules.html +gi +com.gi +ltd.gi +gov.gi +mod.gi +edu.gi +org.gi + +// gl : http://en.wikipedia.org/wiki/.gl +// http://nic.gl +gl + +// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm +gm + +// gn : http://psg.com/dns/gn/gn.txt +// Submitted by registry 2008-06-17 +ac.gn +com.gn +edu.gn +gov.gn +org.gn +net.gn + +// gov : http://en.wikipedia.org/wiki/.gov +gov + +// gp : http://www.nic.gp/index.php?lang=en +gp +com.gp +net.gp +mobi.gp +edu.gp +org.gp +asso.gp + +// gq : http://en.wikipedia.org/wiki/.gq +gq + +// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html +// Submitted by registry 2008-06-09 +gr +com.gr +edu.gr +net.gr +org.gr +gov.gr + +// gs : http://en.wikipedia.org/wiki/.gs +gs + +// gt : http://www.gt/politicas.html +*.gt +!www.gt + +// gu : http://gadao.gov.gu/registration.txt +*.gu + +// gw : http://en.wikipedia.org/wiki/.gw +gw + +// gy : http://en.wikipedia.org/wiki/.gy +// http://registry.gy/ +gy +co.gy +com.gy +net.gy + +// hk : https://www.hkdnr.hk +// Submitted by registry 2008-06-11 +hk +com.hk +edu.hk +gov.hk +idv.hk +net.hk +org.hk +公司.hk +教育.hk +敎育.hk +政府.hk +個人.hk +个人.hk +箇人.hk +網络.hk +网络.hk +组織.hk +網絡.hk +网絡.hk +组织.hk +組織.hk +組织.hk + +// hm : http://en.wikipedia.org/wiki/.hm +hm + +// hn : http://www.nic.hn/politicas/ps02,,05.html +hn +com.hn +edu.hn +org.hn +net.hn +mil.hn +gob.hn + +// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf +hr +iz.hr +from.hr +name.hr +com.hr + +// ht : http://www.nic.ht/info/charte.cfm +ht +com.ht +shop.ht +firm.ht +info.ht +adult.ht +net.ht +pro.ht +org.ht +med.ht +art.ht +coop.ht +pol.ht +asso.ht +edu.ht +rel.ht +gouv.ht +perso.ht + +// hu : http://www.domain.hu/domain/English/sld.html +// Confirmed by registry 2008-06-12 +hu +co.hu +info.hu +org.hu +priv.hu +sport.hu +tm.hu +2000.hu +agrar.hu +bolt.hu +casino.hu +city.hu +erotica.hu +erotika.hu +film.hu +forum.hu +games.hu +hotel.hu +ingatlan.hu +jogasz.hu +konyvelo.hu +lakas.hu +media.hu +news.hu +reklam.hu +sex.hu +shop.hu +suli.hu +szex.hu +tozsde.hu +utazas.hu +video.hu + +// id : http://en.wikipedia.org/wiki/.id +// see also: https://register.pandi.or.id/ +id +ac.id +co.id +go.id +mil.id +net.id +or.id +sch.id +web.id + +// ie : http://en.wikipedia.org/wiki/.ie +ie +gov.ie + +// il : http://en.wikipedia.org/wiki/.il +*.il + +// im : https://www.nic.im/pdfs/imfaqs.pdf +im +co.im +ltd.co.im +plc.co.im +net.im +gov.im +org.im +nic.im +ac.im + +// in : http://en.wikipedia.org/wiki/.in +// see also: http://www.inregistry.in/policies/ +// Please note, that nic.in is not an offical eTLD, but used by most +// government institutions. +in +co.in +firm.in +net.in +org.in +gen.in +ind.in +nic.in +ac.in +edu.in +res.in +gov.in +mil.in + +// info : http://en.wikipedia.org/wiki/.info +info + +// int : http://en.wikipedia.org/wiki/.int +// Confirmed by registry 2008-06-18 +int +eu.int + +// io : http://www.nic.io/rules.html +// list of other 2nd level tlds ? +io +com.io + +// iq : http://www.cmc.iq/english/iq/iqregister1.htm +iq +gov.iq +edu.iq +mil.iq +com.iq +org.iq +net.iq + +// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules +// Also see http://www.nic.ir/Internationalized_Domain_Names +// Two .ir entries added at request of , 2010-04-16 +ir +ac.ir +co.ir +gov.ir +id.ir +net.ir +org.ir +sch.ir +// xn--mgba3a4f16a.ir (.ir, Persian YEH) +ایران.ir +// xn--mgba3a4fra.ir (.ir, Arabic YEH) +ايران.ir + +// is : http://www.isnic.is/domain/rules.php +// Confirmed by registry 2008-12-06 +is +net.is +com.is +edu.is +gov.is +org.is +int.is + +// it : http://en.wikipedia.org/wiki/.it +it +gov.it +edu.it +// list of reserved geo-names : +// http://www.nic.it/documenti/regolamenti-e-linee-guida/regolamento-assegnazione-versione-6.0.pdf +// (There is also a list of reserved geo-names corresponding to Italian +// municipalities : http://www.nic.it/documenti/appendice-c.pdf , but it is +// not included here.) +agrigento.it +ag.it +alessandria.it +al.it +ancona.it +an.it +aosta.it +aoste.it +ao.it +arezzo.it +ar.it +ascoli-piceno.it +ascolipiceno.it +ap.it +asti.it +at.it +avellino.it +av.it +bari.it +ba.it +andria-barletta-trani.it +andriabarlettatrani.it +trani-barletta-andria.it +tranibarlettaandria.it +barletta-trani-andria.it +barlettatraniandria.it +andria-trani-barletta.it +andriatranibarletta.it +trani-andria-barletta.it +traniandriabarletta.it +bt.it +belluno.it +bl.it +benevento.it +bn.it +bergamo.it +bg.it +biella.it +bi.it +bologna.it +bo.it +bolzano.it +bozen.it +balsan.it +alto-adige.it +altoadige.it +suedtirol.it +bz.it +brescia.it +bs.it +brindisi.it +br.it +cagliari.it +ca.it +caltanissetta.it +cl.it +campobasso.it +cb.it +carboniaiglesias.it +carbonia-iglesias.it +iglesias-carbonia.it +iglesiascarbonia.it +ci.it +caserta.it +ce.it +catania.it +ct.it +catanzaro.it +cz.it +chieti.it +ch.it +como.it +co.it +cosenza.it +cs.it +cremona.it +cr.it +crotone.it +kr.it +cuneo.it +cn.it +dell-ogliastra.it +dellogliastra.it +ogliastra.it +og.it +enna.it +en.it +ferrara.it +fe.it +fermo.it +fm.it +firenze.it +florence.it +fi.it +foggia.it +fg.it +forli-cesena.it +forlicesena.it +cesena-forli.it +cesenaforli.it +fc.it +frosinone.it +fr.it +genova.it +genoa.it +ge.it +gorizia.it +go.it +grosseto.it +gr.it +imperia.it +im.it +isernia.it +is.it +laquila.it +aquila.it +aq.it +la-spezia.it +laspezia.it +sp.it +latina.it +lt.it +lecce.it +le.it +lecco.it +lc.it +livorno.it +li.it +lodi.it +lo.it +lucca.it +lu.it +macerata.it +mc.it +mantova.it +mn.it +massa-carrara.it +massacarrara.it +carrara-massa.it +carraramassa.it +ms.it +matera.it +mt.it +medio-campidano.it +mediocampidano.it +campidano-medio.it +campidanomedio.it +vs.it +messina.it +me.it +milano.it +milan.it +mi.it +modena.it +mo.it +monza.it +monza-brianza.it +monzabrianza.it +monzaebrianza.it +monzaedellabrianza.it +monza-e-della-brianza.it +mb.it +napoli.it +naples.it +na.it +novara.it +no.it +nuoro.it +nu.it +oristano.it +or.it +padova.it +padua.it +pd.it +palermo.it +pa.it +parma.it +pr.it +pavia.it +pv.it +perugia.it +pg.it +pescara.it +pe.it +pesaro-urbino.it +pesarourbino.it +urbino-pesaro.it +urbinopesaro.it +pu.it +piacenza.it +pc.it +pisa.it +pi.it +pistoia.it +pt.it +pordenone.it +pn.it +potenza.it +pz.it +prato.it +po.it +ragusa.it +rg.it +ravenna.it +ra.it +reggio-calabria.it +reggiocalabria.it +rc.it +reggio-emilia.it +reggioemilia.it +re.it +rieti.it +ri.it +rimini.it +rn.it +roma.it +rome.it +rm.it +rovigo.it +ro.it +salerno.it +sa.it +sassari.it +ss.it +savona.it +sv.it +siena.it +si.it +siracusa.it +sr.it +sondrio.it +so.it +taranto.it +ta.it +tempio-olbia.it +tempioolbia.it +olbia-tempio.it +olbiatempio.it +ot.it +teramo.it +te.it +terni.it +tr.it +torino.it +turin.it +to.it +trapani.it +tp.it +trento.it +trentino.it +tn.it +treviso.it +tv.it +trieste.it +ts.it +udine.it +ud.it +varese.it +va.it +venezia.it +venice.it +ve.it +verbania.it +vb.it +vercelli.it +vc.it +verona.it +vr.it +vibo-valentia.it +vibovalentia.it +vv.it +vicenza.it +vi.it +viterbo.it +vt.it + +// je : http://www.channelisles.net/applic/avextn.shtml +je +co.je +org.je +net.je +sch.je +gov.je + +// jm : http://www.com.jm/register.html +*.jm + +// jo : http://www.dns.jo/Registration_policy.aspx +jo +com.jo +org.jo +net.jo +edu.jo +sch.jo +gov.jo +mil.jo +name.jo + +// jobs : http://en.wikipedia.org/wiki/.jobs +jobs + +// jp : http://en.wikipedia.org/wiki/.jp +// http://jprs.co.jp/en/jpdomain.html +// Submitted by registry 2008-06-11 +// Updated by registry 2008-12-04 +jp +// jp organizational type names +ac.jp +ad.jp +co.jp +ed.jp +go.jp +gr.jp +lg.jp +ne.jp +or.jp +// jp geographic type names +// http://jprs.jp/doc/rule/saisoku-1.html +*.aichi.jp +*.akita.jp +*.aomori.jp +*.chiba.jp +*.ehime.jp +*.fukui.jp +*.fukuoka.jp +*.fukushima.jp +*.gifu.jp +*.gunma.jp +*.hiroshima.jp +*.hokkaido.jp +*.hyogo.jp +*.ibaraki.jp +*.ishikawa.jp +*.iwate.jp +*.kagawa.jp +*.kagoshima.jp +*.kanagawa.jp +*.kawasaki.jp +*.kitakyushu.jp +*.kobe.jp +*.kochi.jp +*.kumamoto.jp +*.kyoto.jp +*.mie.jp +*.miyagi.jp +*.miyazaki.jp +*.nagano.jp +*.nagasaki.jp +*.nagoya.jp +*.nara.jp +*.niigata.jp +*.oita.jp +*.okayama.jp +*.okinawa.jp +*.osaka.jp +*.saga.jp +*.saitama.jp +*.sapporo.jp +*.sendai.jp +*.shiga.jp +*.shimane.jp +*.shizuoka.jp +*.tochigi.jp +*.tokushima.jp +*.tokyo.jp +*.tottori.jp +*.toyama.jp +*.wakayama.jp +*.yamagata.jp +*.yamaguchi.jp +*.yamanashi.jp +*.yokohama.jp +!metro.tokyo.jp +!pref.aichi.jp +!pref.akita.jp +!pref.aomori.jp +!pref.chiba.jp +!pref.ehime.jp +!pref.fukui.jp +!pref.fukuoka.jp +!pref.fukushima.jp +!pref.gifu.jp +!pref.gunma.jp +!pref.hiroshima.jp +!pref.hokkaido.jp +!pref.hyogo.jp +!pref.ibaraki.jp +!pref.ishikawa.jp +!pref.iwate.jp +!pref.kagawa.jp +!pref.kagoshima.jp +!pref.kanagawa.jp +!pref.kochi.jp +!pref.kumamoto.jp +!pref.kyoto.jp +!pref.mie.jp +!pref.miyagi.jp +!pref.miyazaki.jp +!pref.nagano.jp +!pref.nagasaki.jp +!pref.nara.jp +!pref.niigata.jp +!pref.oita.jp +!pref.okayama.jp +!pref.okinawa.jp +!pref.osaka.jp +!pref.saga.jp +!pref.saitama.jp +!pref.shiga.jp +!pref.shimane.jp +!pref.shizuoka.jp +!pref.tochigi.jp +!pref.tokushima.jp +!pref.tottori.jp +!pref.toyama.jp +!pref.wakayama.jp +!pref.yamagata.jp +!pref.yamaguchi.jp +!pref.yamanashi.jp +!city.chiba.jp +!city.fukuoka.jp +!city.hiroshima.jp +!city.kawasaki.jp +!city.kitakyushu.jp +!city.kobe.jp +!city.kyoto.jp +!city.nagoya.jp +!city.niigata.jp +!city.okayama.jp +!city.osaka.jp +!city.saitama.jp +!city.sapporo.jp +!city.sendai.jp +!city.shizuoka.jp +!city.yokohama.jp + +// ke : http://www.kenic.or.ke/index.php?option=com_content&task=view&id=117&Itemid=145 +*.ke + +// kg : http://www.domain.kg/dmn_n.html +kg +org.kg +net.kg +com.kg +edu.kg +gov.kg +mil.kg + +// kh : http://www.mptc.gov.kh/dns_registration.htm +*.kh + +// ki : http://www.ki/dns/index.html +ki +edu.ki +biz.ki +net.ki +org.ki +gov.ki +info.ki +com.ki + +// km : http://en.wikipedia.org/wiki/.km +// http://www.domaine.km/documents/charte.doc +km +org.km +nom.km +gov.km +prd.km +tm.km +edu.km +mil.km +ass.km +com.km +// These are only mentioned as proposed suggestions at domaine.km, but +// http://en.wikipedia.org/wiki/.km says they're available for registration: +coop.km +asso.km +presse.km +medecin.km +notaires.km +pharmaciens.km +veterinaire.km +gouv.km + +// kn : http://en.wikipedia.org/wiki/.kn +// http://www.dot.kn/domainRules.html +kn +net.kn +org.kn +edu.kn +gov.kn + +// kp : http://www.kcce.kp/en_index.php +com.kp +edu.kp +gov.kp +org.kp +rep.kp +tra.kp + +// kr : http://en.wikipedia.org/wiki/.kr +// see also: http://domain.nida.or.kr/eng/registration.jsp +kr +ac.kr +co.kr +es.kr +go.kr +hs.kr +kg.kr +mil.kr +ms.kr +ne.kr +or.kr +pe.kr +re.kr +sc.kr +// kr geographical names +busan.kr +chungbuk.kr +chungnam.kr +daegu.kr +daejeon.kr +gangwon.kr +gwangju.kr +gyeongbuk.kr +gyeonggi.kr +gyeongnam.kr +incheon.kr +jeju.kr +jeonbuk.kr +jeonnam.kr +seoul.kr +ulsan.kr + +// kw : http://en.wikipedia.org/wiki/.kw +*.kw + +// ky : http://www.icta.ky/da_ky_reg_dom.php +// Confirmed by registry 2008-06-17 +ky +edu.ky +gov.ky +com.ky +org.ky +net.ky + +// kz : http://en.wikipedia.org/wiki/.kz +// see also: http://www.nic.kz/rules/index.jsp +kz +org.kz +edu.kz +net.kz +gov.kz +mil.kz +com.kz + +// la : http://en.wikipedia.org/wiki/.la +// Submitted by registry 2008-06-10 +la +int.la +net.la +info.la +edu.la +gov.la +per.la +com.la +org.la + +// lb : http://en.wikipedia.org/wiki/.lb +// Submitted by registry 2008-06-17 +com.lb +edu.lb +gov.lb +net.lb +org.lb + +// lc : http://en.wikipedia.org/wiki/.lc +// see also: http://www.nic.lc/rules.htm +lc +com.lc +net.lc +co.lc +org.lc +edu.lc +gov.lc + +// li : http://en.wikipedia.org/wiki/.li +li + +// lk : http://www.nic.lk/seclevpr.html +lk +gov.lk +sch.lk +net.lk +int.lk +com.lk +org.lk +edu.lk +ngo.lk +soc.lk +web.lk +ltd.lk +assn.lk +grp.lk +hotel.lk + +// lr : http://psg.com/dns/lr/lr.txt +// Submitted by registry 2008-06-17 +com.lr +edu.lr +gov.lr +org.lr +net.lr + +// ls : http://en.wikipedia.org/wiki/.ls +ls +co.ls +org.ls + +// lt : http://en.wikipedia.org/wiki/.lt +lt +// gov.lt : http://www.gov.lt/index_en.php +gov.lt + +// lu : http://www.dns.lu/en/ +lu + +// lv : http://www.nic.lv/DNS/En/generic.php +lv +com.lv +edu.lv +gov.lv +org.lv +mil.lv +id.lv +net.lv +asn.lv +conf.lv + +// ly : http://www.nic.ly/regulations.php +ly +com.ly +net.ly +gov.ly +plc.ly +edu.ly +sch.ly +med.ly +org.ly +id.ly + +// ma : http://en.wikipedia.org/wiki/.ma +// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf +ma +co.ma +net.ma +gov.ma +org.ma +ac.ma +press.ma + +// mc : http://www.nic.mc/ +mc +tm.mc +asso.mc + +// md : http://en.wikipedia.org/wiki/.md +md + +// me : http://en.wikipedia.org/wiki/.me +me +co.me +net.me +org.me +edu.me +ac.me +gov.me +its.me +priv.me + +// mg : http://www.nic.mg/tarif.htm +mg +org.mg +nom.mg +gov.mg +prd.mg +tm.mg +edu.mg +mil.mg +com.mg + +// mh : http://en.wikipedia.org/wiki/.mh +mh + +// mil : http://en.wikipedia.org/wiki/.mil +mil + +// mk : http://en.wikipedia.org/wiki/.mk +// see also: http://dns.marnet.net.mk/postapka.php +mk +com.mk +org.mk +net.mk +edu.mk +gov.mk +inf.mk +name.mk + +// ml : http://www.gobin.info/domainname/ml-template.doc +// see also: http://en.wikipedia.org/wiki/.ml +ml +com.ml +edu.ml +gouv.ml +gov.ml +net.ml +org.ml +presse.ml + +// mm : http://en.wikipedia.org/wiki/.mm +*.mm + +// mn : http://en.wikipedia.org/wiki/.mn +mn +gov.mn +edu.mn +org.mn + +// mo : http://www.monic.net.mo/ +mo +com.mo +net.mo +org.mo +edu.mo +gov.mo + +// mobi : http://en.wikipedia.org/wiki/.mobi +mobi + +// mp : http://www.dot.mp/ +// Confirmed by registry 2008-06-17 +mp + +// mq : http://en.wikipedia.org/wiki/.mq +mq + +// mr : http://en.wikipedia.org/wiki/.mr +mr +gov.mr + +// ms : http://en.wikipedia.org/wiki/.ms +ms + +// mt : https://www.nic.org.mt/dotmt/ +*.mt + +// mu : http://en.wikipedia.org/wiki/.mu +mu +com.mu +net.mu +org.mu +gov.mu +ac.mu +co.mu +or.mu + +// museum : http://about.museum/naming/ +// http://index.museum/ +museum +academy.museum +agriculture.museum +air.museum +airguard.museum +alabama.museum +alaska.museum +amber.museum +ambulance.museum +american.museum +americana.museum +americanantiques.museum +americanart.museum +amsterdam.museum +and.museum +annefrank.museum +anthro.museum +anthropology.museum +antiques.museum +aquarium.museum +arboretum.museum +archaeological.museum +archaeology.museum +architecture.museum +art.museum +artanddesign.museum +artcenter.museum +artdeco.museum +arteducation.museum +artgallery.museum +arts.museum +artsandcrafts.museum +asmatart.museum +assassination.museum +assisi.museum +association.museum +astronomy.museum +atlanta.museum +austin.museum +australia.museum +automotive.museum +aviation.museum +axis.museum +badajoz.museum +baghdad.museum +bahn.museum +bale.museum +baltimore.museum +barcelona.museum +baseball.museum +basel.museum +baths.museum +bauern.museum +beauxarts.museum +beeldengeluid.museum +bellevue.museum +bergbau.museum +berkeley.museum +berlin.museum +bern.museum +bible.museum +bilbao.museum +bill.museum +birdart.museum +birthplace.museum +bonn.museum +boston.museum +botanical.museum +botanicalgarden.museum +botanicgarden.museum +botany.museum +brandywinevalley.museum +brasil.museum +bristol.museum +british.museum +britishcolumbia.museum +broadcast.museum +brunel.museum +brussel.museum +brussels.museum +bruxelles.museum +building.museum +burghof.museum +bus.museum +bushey.museum +cadaques.museum +california.museum +cambridge.museum +can.museum +canada.museum +capebreton.museum +carrier.museum +cartoonart.museum +casadelamoneda.museum +castle.museum +castres.museum +celtic.museum +center.museum +chattanooga.museum +cheltenham.museum +chesapeakebay.museum +chicago.museum +children.museum +childrens.museum +childrensgarden.museum +chiropractic.museum +chocolate.museum +christiansburg.museum +cincinnati.museum +cinema.museum +circus.museum +civilisation.museum +civilization.museum +civilwar.museum +clinton.museum +clock.museum +coal.museum +coastaldefence.museum +cody.museum +coldwar.museum +collection.museum +colonialwilliamsburg.museum +coloradoplateau.museum +columbia.museum +columbus.museum +communication.museum +communications.museum +community.museum +computer.museum +computerhistory.museum +comunicações.museum +contemporary.museum +contemporaryart.museum +convent.museum +copenhagen.museum +corporation.museum +correios-e-telecomunicações.museum +corvette.museum +costume.museum +countryestate.museum +county.museum +crafts.museum +cranbrook.museum +creation.museum +cultural.museum +culturalcenter.museum +culture.museum +cyber.museum +cymru.museum +dali.museum +dallas.museum +database.museum +ddr.museum +decorativearts.museum +delaware.museum +delmenhorst.museum +denmark.museum +depot.museum +design.museum +detroit.museum +dinosaur.museum +discovery.museum +dolls.museum +donostia.museum +durham.museum +eastafrica.museum +eastcoast.museum +education.museum +educational.museum +egyptian.museum +eisenbahn.museum +elburg.museum +elvendrell.museum +embroidery.museum +encyclopedic.museum +england.museum +entomology.museum +environment.museum +environmentalconservation.museum +epilepsy.museum +essex.museum +estate.museum +ethnology.museum +exeter.museum +exhibition.museum +family.museum +farm.museum +farmequipment.museum +farmers.museum +farmstead.museum +field.museum +figueres.museum +filatelia.museum +film.museum +fineart.museum +finearts.museum +finland.museum +flanders.museum +florida.museum +force.museum +fortmissoula.museum +fortworth.museum +foundation.museum +francaise.museum +frankfurt.museum +franziskaner.museum +freemasonry.museum +freiburg.museum +fribourg.museum +frog.museum +fundacio.museum +furniture.museum +gallery.museum +garden.museum +gateway.museum +geelvinck.museum +gemological.museum +geology.museum +georgia.museum +giessen.museum +glas.museum +glass.museum +gorge.museum +grandrapids.museum +graz.museum +guernsey.museum +halloffame.museum +hamburg.museum +handson.museum +harvestcelebration.museum +hawaii.museum +health.museum +heimatunduhren.museum +hellas.museum +helsinki.museum +hembygdsforbund.museum +heritage.museum +histoire.museum +historical.museum +historicalsociety.museum +historichouses.museum +historisch.museum +historisches.museum +history.museum +historyofscience.museum +horology.museum +house.museum +humanities.museum +illustration.museum +imageandsound.museum +indian.museum +indiana.museum +indianapolis.museum +indianmarket.museum +intelligence.museum +interactive.museum +iraq.museum +iron.museum +isleofman.museum +jamison.museum +jefferson.museum +jerusalem.museum +jewelry.museum +jewish.museum +jewishart.museum +jfk.museum +journalism.museum +judaica.museum +judygarland.museum +juedisches.museum +juif.museum +karate.museum +karikatur.museum +kids.museum +koebenhavn.museum +koeln.museum +kunst.museum +kunstsammlung.museum +kunstunddesign.museum +labor.museum +labour.museum +lajolla.museum +lancashire.museum +landes.museum +lans.museum +läns.museum +larsson.museum +lewismiller.museum +lincoln.museum +linz.museum +living.museum +livinghistory.museum +localhistory.museum +london.museum +losangeles.museum +louvre.museum +loyalist.museum +lucerne.museum +luxembourg.museum +luzern.museum +mad.museum +madrid.museum +mallorca.museum +manchester.museum +mansion.museum +mansions.museum +manx.museum +marburg.museum +maritime.museum +maritimo.museum +maryland.museum +marylhurst.museum +media.museum +medical.museum +medizinhistorisches.museum +meeres.museum +memorial.museum +mesaverde.museum +michigan.museum +midatlantic.museum +military.museum +mill.museum +miners.museum +mining.museum +minnesota.museum +missile.museum +missoula.museum +modern.museum +moma.museum +money.museum +monmouth.museum +monticello.museum +montreal.museum +moscow.museum +motorcycle.museum +muenchen.museum +muenster.museum +mulhouse.museum +muncie.museum +museet.museum +museumcenter.museum +museumvereniging.museum +music.museum +national.museum +nationalfirearms.museum +nationalheritage.museum +nativeamerican.museum +naturalhistory.museum +naturalhistorymuseum.museum +naturalsciences.museum +nature.museum +naturhistorisches.museum +natuurwetenschappen.museum +naumburg.museum +naval.museum +nebraska.museum +neues.museum +newhampshire.museum +newjersey.museum +newmexico.museum +newport.museum +newspaper.museum +newyork.museum +niepce.museum +norfolk.museum +north.museum +nrw.museum +nuernberg.museum +nuremberg.museum +nyc.museum +nyny.museum +oceanographic.museum +oceanographique.museum +omaha.museum +online.museum +ontario.museum +openair.museum +oregon.museum +oregontrail.museum +otago.museum +oxford.museum +pacific.museum +paderborn.museum +palace.museum +paleo.museum +palmsprings.museum +panama.museum +paris.museum +pasadena.museum +pharmacy.museum +philadelphia.museum +philadelphiaarea.museum +philately.museum +phoenix.museum +photography.museum +pilots.museum +pittsburgh.museum +planetarium.museum +plantation.museum +plants.museum +plaza.museum +portal.museum +portland.museum +portlligat.museum +posts-and-telecommunications.museum +preservation.museum +presidio.museum +press.museum +project.museum +public.museum +pubol.museum +quebec.museum +railroad.museum +railway.museum +research.museum +resistance.museum +riodejaneiro.museum +rochester.museum +rockart.museum +roma.museum +russia.museum +saintlouis.museum +salem.museum +salvadordali.museum +salzburg.museum +sandiego.museum +sanfrancisco.museum +santabarbara.museum +santacruz.museum +santafe.museum +saskatchewan.museum +satx.museum +savannahga.museum +schlesisches.museum +schoenbrunn.museum +schokoladen.museum +school.museum +schweiz.museum +science.museum +scienceandhistory.museum +scienceandindustry.museum +sciencecenter.museum +sciencecenters.museum +science-fiction.museum +sciencehistory.museum +sciences.museum +sciencesnaturelles.museum +scotland.museum +seaport.museum +settlement.museum +settlers.museum +shell.museum +sherbrooke.museum +sibenik.museum +silk.museum +ski.museum +skole.museum +society.museum +sologne.museum +soundandvision.museum +southcarolina.museum +southwest.museum +space.museum +spy.museum +square.museum +stadt.museum +stalbans.museum +starnberg.museum +state.museum +stateofdelaware.museum +station.museum +steam.museum +steiermark.museum +stjohn.museum +stockholm.museum +stpetersburg.museum +stuttgart.museum +suisse.museum +surgeonshall.museum +surrey.museum +svizzera.museum +sweden.museum +sydney.museum +tank.museum +tcm.museum +technology.museum +telekommunikation.museum +television.museum +texas.museum +textile.museum +theater.museum +time.museum +timekeeping.museum +topology.museum +torino.museum +touch.museum +town.museum +transport.museum +tree.museum +trolley.museum +trust.museum +trustee.museum +uhren.museum +ulm.museum +undersea.museum +university.museum +usa.museum +usantiques.museum +usarts.museum +uscountryestate.museum +usculture.museum +usdecorativearts.museum +usgarden.museum +ushistory.museum +ushuaia.museum +uslivinghistory.museum +utah.museum +uvic.museum +valley.museum +vantaa.museum +versailles.museum +viking.museum +village.museum +virginia.museum +virtual.museum +virtuel.museum +vlaanderen.museum +volkenkunde.museum +wales.museum +wallonie.museum +war.museum +washingtondc.museum +watchandclock.museum +watch-and-clock.museum +western.museum +westfalen.museum +whaling.museum +wildlife.museum +williamsburg.museum +windmill.museum +workshop.museum +york.museum +yorkshire.museum +yosemite.museum +youth.museum +zoological.museum +zoology.museum +ירושלים.museum +иком.museum + +// mv : http://en.wikipedia.org/wiki/.mv +// "mv" included because, contra Wikipedia, google.mv exists. +mv +aero.mv +biz.mv +com.mv +coop.mv +edu.mv +gov.mv +info.mv +int.mv +mil.mv +museum.mv +name.mv +net.mv +org.mv +pro.mv + +// mw : http://www.registrar.mw/ +mw +ac.mw +biz.mw +co.mw +com.mw +coop.mw +edu.mw +gov.mw +int.mw +museum.mw +net.mw +org.mw + +// mx : http://www.nic.mx/ +// Submitted by registry 2008-06-19 +mx +com.mx +org.mx +gob.mx +edu.mx +net.mx + +// my : http://www.mynic.net.my/ +my +com.my +net.my +org.my +gov.my +edu.my +mil.my +name.my + +// mz : http://www.gobin.info/domainname/mz-template.doc +*.mz + +// na : http://www.na-nic.com.na/ +// http://www.info.na/domain/ +na +info.na +pro.na +name.na +school.na +or.na +dr.na +us.na +mx.na +ca.na +in.na +cc.na +tv.na +ws.na +mobi.na +co.na +com.na +org.na + +// name : has 2nd-level tlds, but there's no list of them +name + +// nc : http://www.cctld.nc/ +nc +asso.nc + +// ne : http://en.wikipedia.org/wiki/.ne +ne + +// net : http://en.wikipedia.org/wiki/.net +net + +// nf : http://en.wikipedia.org/wiki/.nf +nf +com.nf +net.nf +per.nf +rec.nf +web.nf +arts.nf +firm.nf +info.nf +other.nf +store.nf + +// ng : http://psg.com/dns/ng/ +// Submitted by registry 2008-06-17 +ac.ng +com.ng +edu.ng +gov.ng +net.ng +org.ng + +// ni : http://www.nic.ni/dominios.htm +*.ni + +// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html +// Confirmed by registry (with technical +// reservations) 2008-06-08 +nl + +// BV.nl will be a registry for dutch BV's (besloten vennootschap) +bv.nl + +// no : http://www.norid.no/regelverk/index.en.html +// The Norwegian registry has declined to notify us of updates. The web pages +// referenced below are the official source of the data. There is also an +// announce mailing list: +// https://postlister.uninett.no/sympa/info/norid-diskusjon +no +// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html +fhs.no +vgs.no +fylkesbibl.no +folkebibl.no +museum.no +idrett.no +priv.no +// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html +mil.no +stat.no +dep.no +kommune.no +herad.no +// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html +// counties +aa.no +ah.no +bu.no +fm.no +hl.no +hm.no +jan-mayen.no +mr.no +nl.no +nt.no +of.no +ol.no +oslo.no +rl.no +sf.no +st.no +svalbard.no +tm.no +tr.no +va.no +vf.no +// primary and lower secondary schools per county +gs.aa.no +gs.ah.no +gs.bu.no +gs.fm.no +gs.hl.no +gs.hm.no +gs.jan-mayen.no +gs.mr.no +gs.nl.no +gs.nt.no +gs.of.no +gs.ol.no +gs.oslo.no +gs.rl.no +gs.sf.no +gs.st.no +gs.svalbard.no +gs.tm.no +gs.tr.no +gs.va.no +gs.vf.no +// cities +akrehamn.no +åkrehamn.no +algard.no +ålgård.no +arna.no +brumunddal.no +bryne.no +bronnoysund.no +brønnøysund.no +drobak.no +drøbak.no +egersund.no +fetsund.no +floro.no +florø.no +fredrikstad.no +hokksund.no +honefoss.no +hønefoss.no +jessheim.no +jorpeland.no +jørpeland.no +kirkenes.no +kopervik.no +krokstadelva.no +langevag.no +langevåg.no +leirvik.no +mjondalen.no +mjøndalen.no +mo-i-rana.no +mosjoen.no +mosjøen.no +nesoddtangen.no +orkanger.no +osoyro.no +osøyro.no +raholt.no +råholt.no +sandnessjoen.no +sandnessjøen.no +skedsmokorset.no +slattum.no +spjelkavik.no +stathelle.no +stavern.no +stjordalshalsen.no +stjørdalshalsen.no +tananger.no +tranby.no +vossevangen.no +// communities +afjord.no +åfjord.no +agdenes.no +al.no +ål.no +alesund.no +ålesund.no +alstahaug.no +alta.no +áltá.no +alaheadju.no +álaheadju.no +alvdal.no +amli.no +åmli.no +amot.no +åmot.no +andebu.no +andoy.no +andøy.no +andasuolo.no +ardal.no +årdal.no +aremark.no +arendal.no +ås.no +aseral.no +åseral.no +asker.no +askim.no +askvoll.no +askoy.no +askøy.no +asnes.no +åsnes.no +audnedaln.no +aukra.no +aure.no +aurland.no +aurskog-holand.no +aurskog-høland.no +austevoll.no +austrheim.no +averoy.no +averøy.no +balestrand.no +ballangen.no +balat.no +bálát.no +balsfjord.no +bahccavuotna.no +báhccavuotna.no +bamble.no +bardu.no +beardu.no +beiarn.no +bajddar.no +bájddar.no +baidar.no +báidár.no +berg.no +bergen.no +berlevag.no +berlevåg.no +bearalvahki.no +bearalváhki.no +bindal.no +birkenes.no +bjarkoy.no +bjarkøy.no +bjerkreim.no +bjugn.no +bodo.no +bodø.no +badaddja.no +bådåddjå.no +budejju.no +bokn.no +bremanger.no +bronnoy.no +brønnøy.no +bygland.no +bykle.no +barum.no +bærum.no +bo.telemark.no +bø.telemark.no +bo.nordland.no +bø.nordland.no +bievat.no +bievát.no +bomlo.no +bømlo.no +batsfjord.no +båtsfjord.no +bahcavuotna.no +báhcavuotna.no +dovre.no +drammen.no +drangedal.no +dyroy.no +dyrøy.no +donna.no +dønna.no +eid.no +eidfjord.no +eidsberg.no +eidskog.no +eidsvoll.no +eigersund.no +elverum.no +enebakk.no +engerdal.no +etne.no +etnedal.no +evenes.no +evenassi.no +evenášši.no +evje-og-hornnes.no +farsund.no +fauske.no +fuossko.no +fuoisku.no +fedje.no +fet.no +finnoy.no +finnøy.no +fitjar.no +fjaler.no +fjell.no +flakstad.no +flatanger.no +flekkefjord.no +flesberg.no +flora.no +fla.no +flå.no +folldal.no +forsand.no +fosnes.no +frei.no +frogn.no +froland.no +frosta.no +frana.no +fræna.no +froya.no +frøya.no +fusa.no +fyresdal.no +forde.no +førde.no +gamvik.no +gangaviika.no +gáŋgaviika.no +gaular.no +gausdal.no +gildeskal.no +gildeskål.no +giske.no +gjemnes.no +gjerdrum.no +gjerstad.no +gjesdal.no +gjovik.no +gjøvik.no +gloppen.no +gol.no +gran.no +grane.no +granvin.no +gratangen.no +grimstad.no +grong.no +kraanghke.no +kråanghke.no +grue.no +gulen.no +hadsel.no +halden.no +halsa.no +hamar.no +hamaroy.no +habmer.no +hábmer.no +hapmir.no +hápmir.no +hammerfest.no +hammarfeasta.no +hámmárfeasta.no +haram.no +hareid.no +harstad.no +hasvik.no +aknoluokta.no +ákŋoluokta.no +hattfjelldal.no +aarborte.no +haugesund.no +hemne.no +hemnes.no +hemsedal.no +heroy.more-og-romsdal.no +herøy.møre-og-romsdal.no +heroy.nordland.no +herøy.nordland.no +hitra.no +hjartdal.no +hjelmeland.no +hobol.no +hobøl.no +hof.no +hol.no +hole.no +holmestrand.no +holtalen.no +holtålen.no +hornindal.no +horten.no +hurdal.no +hurum.no +hvaler.no +hyllestad.no +hagebostad.no +hægebostad.no +hoyanger.no +høyanger.no +hoylandet.no +høylandet.no +ha.no +hå.no +ibestad.no +inderoy.no +inderøy.no +iveland.no +jevnaker.no +jondal.no +jolster.no +jølster.no +karasjok.no +karasjohka.no +kárášjohka.no +karlsoy.no +galsa.no +gálsá.no +karmoy.no +karmøy.no +kautokeino.no +guovdageaidnu.no +klepp.no +klabu.no +klæbu.no +kongsberg.no +kongsvinger.no +kragero.no +kragerø.no +kristiansand.no +kristiansund.no +krodsherad.no +krødsherad.no +kvalsund.no +rahkkeravju.no +ráhkkerávju.no +kvam.no +kvinesdal.no +kvinnherad.no +kviteseid.no +kvitsoy.no +kvitsøy.no +kvafjord.no +kvæfjord.no +giehtavuoatna.no +kvanangen.no +kvænangen.no +navuotna.no +návuotna.no +kafjord.no +kåfjord.no +gaivuotna.no +gáivuotna.no +larvik.no +lavangen.no +lavagis.no +loabat.no +loabát.no +lebesby.no +davvesiida.no +leikanger.no +leirfjord.no +leka.no +leksvik.no +lenvik.no +leangaviika.no +leaŋgaviika.no +lesja.no +levanger.no +lier.no +lierne.no +lillehammer.no +lillesand.no +lindesnes.no +lindas.no +lindås.no +lom.no +loppa.no +lahppi.no +láhppi.no +lund.no +lunner.no +luroy.no +lurøy.no +luster.no +lyngdal.no +lyngen.no +ivgu.no +lardal.no +lerdal.no +lærdal.no +lodingen.no +lødingen.no +lorenskog.no +lørenskog.no +loten.no +løten.no +malvik.no +masoy.no +måsøy.no +muosat.no +muosát.no +mandal.no +marker.no +marnardal.no +masfjorden.no +meland.no +meldal.no +melhus.no +meloy.no +meløy.no +meraker.no +meråker.no +moareke.no +moåreke.no +midsund.no +midtre-gauldal.no +modalen.no +modum.no +molde.no +moskenes.no +moss.no +mosvik.no +malselv.no +målselv.no +malatvuopmi.no +málatvuopmi.no +namdalseid.no +aejrie.no +namsos.no +namsskogan.no +naamesjevuemie.no +nååmesjevuemie.no +laakesvuemie.no +nannestad.no +narvik.no +narviika.no +naustdal.no +nedre-eiker.no +nes.akershus.no +nes.buskerud.no +nesna.no +nesodden.no +nesseby.no +unjarga.no +unjárga.no +nesset.no +nissedal.no +nittedal.no +nord-aurdal.no +nord-fron.no +nord-odal.no +norddal.no +nordkapp.no +davvenjarga.no +davvenjárga.no +nordre-land.no +nordreisa.no +raisa.no +ráisa.no +nore-og-uvdal.no +notodden.no +naroy.no +nærøy.no +notteroy.no +nøtterøy.no +odda.no +oksnes.no +øksnes.no +oppdal.no +oppegard.no +oppegård.no +orkdal.no +orland.no +ørland.no +orskog.no +ørskog.no +orsta.no +ørsta.no +os.hedmark.no +os.hordaland.no +osen.no +osteroy.no +osterøy.no +ostre-toten.no +østre-toten.no +overhalla.no +ovre-eiker.no +øvre-eiker.no +oyer.no +øyer.no +oygarden.no +øygarden.no +oystre-slidre.no +øystre-slidre.no +porsanger.no +porsangu.no +porsáŋgu.no +porsgrunn.no +radoy.no +radøy.no +rakkestad.no +rana.no +ruovat.no +randaberg.no +rauma.no +rendalen.no +rennebu.no +rennesoy.no +rennesøy.no +rindal.no +ringebu.no +ringerike.no +ringsaker.no +rissa.no +risor.no +risør.no +roan.no +rollag.no +rygge.no +ralingen.no +rælingen.no +rodoy.no +rødøy.no +romskog.no +rømskog.no +roros.no +røros.no +rost.no +røst.no +royken.no +røyken.no +royrvik.no +røyrvik.no +rade.no +råde.no +salangen.no +siellak.no +saltdal.no +salat.no +sálát.no +sálat.no +samnanger.no +sande.more-og-romsdal.no +sande.møre-og-romsdal.no +sande.vestfold.no +sandefjord.no +sandnes.no +sandoy.no +sandøy.no +sarpsborg.no +sauda.no +sauherad.no +sel.no +selbu.no +selje.no +seljord.no +sigdal.no +siljan.no +sirdal.no +skaun.no +skedsmo.no +ski.no +skien.no +skiptvet.no +skjervoy.no +skjervøy.no +skierva.no +skiervá.no +skjak.no +skjåk.no +skodje.no +skanland.no +skånland.no +skanit.no +skánit.no +smola.no +smøla.no +snillfjord.no +snasa.no +snåsa.no +snoasa.no +snaase.no +snåase.no +sogndal.no +sokndal.no +sola.no +solund.no +songdalen.no +sortland.no +spydeberg.no +stange.no +stavanger.no +steigen.no +steinkjer.no +stjordal.no +stjørdal.no +stokke.no +stor-elvdal.no +stord.no +stordal.no +storfjord.no +omasvuotna.no +strand.no +stranda.no +stryn.no +sula.no +suldal.no +sund.no +sunndal.no +surnadal.no +sveio.no +svelvik.no +sykkylven.no +sogne.no +søgne.no +somna.no +sømna.no +sondre-land.no +søndre-land.no +sor-aurdal.no +sør-aurdal.no +sor-fron.no +sør-fron.no +sor-odal.no +sør-odal.no +sor-varanger.no +sør-varanger.no +matta-varjjat.no +mátta-várjjat.no +sorfold.no +sørfold.no +sorreisa.no +sørreisa.no +sorum.no +sørum.no +tana.no +deatnu.no +time.no +tingvoll.no +tinn.no +tjeldsund.no +dielddanuorri.no +tjome.no +tjøme.no +tokke.no +tolga.no +torsken.no +tranoy.no +tranøy.no +tromso.no +tromsø.no +tromsa.no +romsa.no +trondheim.no +troandin.no +trysil.no +trana.no +træna.no +trogstad.no +trøgstad.no +tvedestrand.no +tydal.no +tynset.no +tysfjord.no +divtasvuodna.no +divttasvuotna.no +tysnes.no +tysvar.no +tysvær.no +tonsberg.no +tønsberg.no +ullensaker.no +ullensvang.no +ulvik.no +utsira.no +vadso.no +vadsø.no +cahcesuolo.no +čáhcesuolo.no +vaksdal.no +valle.no +vang.no +vanylven.no +vardo.no +vardø.no +varggat.no +várggát.no +vefsn.no +vaapste.no +vega.no +vegarshei.no +vegårshei.no +vennesla.no +verdal.no +verran.no +vestby.no +vestnes.no +vestre-slidre.no +vestre-toten.no +vestvagoy.no +vestvågøy.no +vevelstad.no +vik.no +vikna.no +vindafjord.no +volda.no +voss.no +varoy.no +værøy.no +vagan.no +vågan.no +voagat.no +vagsoy.no +vågsøy.no +vaga.no +vågå.no +valer.ostfold.no +våler.østfold.no +valer.hedmark.no +våler.hedmark.no + +// np : http://www.mos.com.np/register.html +*.np + +// nr : http://cenpac.net.nr/dns/index.html +// Confirmed by registry 2008-06-17 +nr +biz.nr +info.nr +gov.nr +edu.nr +org.nr +net.nr +com.nr + +// nu : http://en.wikipedia.org/wiki/.nu +nu + +// nz : http://en.wikipedia.org/wiki/.nz +*.nz + +// om : http://en.wikipedia.org/wiki/.om +*.om +!mediaphone.om +!nawrastelecom.om +!nawras.om +!omanmobile.om +!omanpost.om +!omantel.om +!rakpetroleum.om +!siemens.om +!songfest.om +!statecouncil.om + +// org : http://en.wikipedia.org/wiki/.org +org + +// pa : http://www.nic.pa/ +// Some additional second level "domains" resolve directly as hostnames, such as +// pannet.pa, so we add a rule for "pa". +pa +ac.pa +gob.pa +com.pa +org.pa +sld.pa +edu.pa +net.pa +ing.pa +abo.pa +med.pa +nom.pa + +// pe : https://www.nic.pe/InformeFinalComision.pdf +pe +edu.pe +gob.pe +nom.pe +mil.pe +org.pe +com.pe +net.pe + +// pf : http://www.gobin.info/domainname/formulaire-pf.pdf +pf +com.pf +org.pf +edu.pf + +// pg : http://en.wikipedia.org/wiki/.pg +*.pg + +// ph : http://www.domains.ph/FAQ2.asp +// Submitted by registry 2008-06-13 +ph +com.ph +net.ph +org.ph +gov.ph +edu.ph +ngo.ph +mil.ph +i.ph + +// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK +pk +com.pk +net.pk +edu.pk +org.pk +fam.pk +biz.pk +web.pk +gov.pk +gob.pk +gok.pk +gon.pk +gop.pk +gos.pk +info.pk + +// pl : http://www.dns.pl/english/ +pl +// NASK functional domains (nask.pl / dns.pl) : http://www.dns.pl/english/dns-funk.html +aid.pl +agro.pl +atm.pl +auto.pl +biz.pl +com.pl +edu.pl +gmina.pl +gsm.pl +info.pl +mail.pl +miasta.pl +media.pl +mil.pl +net.pl +nieruchomosci.pl +nom.pl +org.pl +pc.pl +powiat.pl +priv.pl +realestate.pl +rel.pl +sex.pl +shop.pl +sklep.pl +sos.pl +szkola.pl +targi.pl +tm.pl +tourism.pl +travel.pl +turystyka.pl +// ICM functional domains (icm.edu.pl) +6bone.pl +art.pl +mbone.pl +// Government domains (administred by ippt.gov.pl) +gov.pl +uw.gov.pl +um.gov.pl +ug.gov.pl +upow.gov.pl +starostwo.gov.pl +so.gov.pl +sr.gov.pl +po.gov.pl +pa.gov.pl +// other functional domains +ngo.pl +irc.pl +usenet.pl +// NASK geographical domains : http://www.dns.pl/english/dns-regiony.html +augustow.pl +babia-gora.pl +bedzin.pl +beskidy.pl +bialowieza.pl +bialystok.pl +bielawa.pl +bieszczady.pl +boleslawiec.pl +bydgoszcz.pl +bytom.pl +cieszyn.pl +czeladz.pl +czest.pl +dlugoleka.pl +elblag.pl +elk.pl +glogow.pl +gniezno.pl +gorlice.pl +grajewo.pl +ilawa.pl +jaworzno.pl +jelenia-gora.pl +jgora.pl +kalisz.pl +kazimierz-dolny.pl +karpacz.pl +kartuzy.pl +kaszuby.pl +katowice.pl +kepno.pl +ketrzyn.pl +klodzko.pl +kobierzyce.pl +kolobrzeg.pl +konin.pl +konskowola.pl +kutno.pl +lapy.pl +lebork.pl +legnica.pl +lezajsk.pl +limanowa.pl +lomza.pl +lowicz.pl +lubin.pl +lukow.pl +malbork.pl +malopolska.pl +mazowsze.pl +mazury.pl +mielec.pl +mielno.pl +mragowo.pl +naklo.pl +nowaruda.pl +nysa.pl +olawa.pl +olecko.pl +olkusz.pl +olsztyn.pl +opoczno.pl +opole.pl +ostroda.pl +ostroleka.pl +ostrowiec.pl +ostrowwlkp.pl +pila.pl +pisz.pl +podhale.pl +podlasie.pl +polkowice.pl +pomorze.pl +pomorskie.pl +prochowice.pl +pruszkow.pl +przeworsk.pl +pulawy.pl +radom.pl +rawa-maz.pl +rybnik.pl +rzeszow.pl +sanok.pl +sejny.pl +siedlce.pl +slask.pl +slupsk.pl +sosnowiec.pl +stalowa-wola.pl +skoczow.pl +starachowice.pl +stargard.pl +suwalki.pl +swidnica.pl +swiebodzin.pl +swinoujscie.pl +szczecin.pl +szczytno.pl +tarnobrzeg.pl +tgory.pl +turek.pl +tychy.pl +ustka.pl +walbrzych.pl +warmia.pl +warszawa.pl +waw.pl +wegrow.pl +wielun.pl +wlocl.pl +wloclawek.pl +wodzislaw.pl +wolomin.pl +wroclaw.pl +zachpomor.pl +zagan.pl +zarow.pl +zgora.pl +zgorzelec.pl +// TASK geographical domains (www.task.gda.pl/uslugi/dns) +gda.pl +gdansk.pl +gdynia.pl +med.pl +sopot.pl +// other geographical domains +gliwice.pl +krakow.pl +poznan.pl +wroc.pl +zakopane.pl + +// pm : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +pm + +// pn : http://www.government.pn/PnRegistry/policies.htm +pn +gov.pn +co.pn +org.pn +edu.pn +net.pn + +// pr : http://www.nic.pr/index.asp?f=1 +pr +com.pr +net.pr +org.pr +gov.pr +edu.pr +isla.pr +pro.pr +biz.pr +info.pr +name.pr +// these aren't mentioned on nic.pr, but on http://en.wikipedia.org/wiki/.pr +est.pr +prof.pr +ac.pr + +// pro : http://www.nic.pro/support_faq.htm +pro +aca.pro +bar.pro +cpa.pro +jur.pro +law.pro +med.pro +eng.pro + +// ps : http://en.wikipedia.org/wiki/.ps +// http://www.nic.ps/registration/policy.html#reg +ps +edu.ps +gov.ps +sec.ps +plo.ps +com.ps +org.ps +net.ps + +// pt : http://online.dns.pt/dns/start_dns +pt +net.pt +gov.pt +org.pt +edu.pt +int.pt +publ.pt +com.pt +nome.pt + +// pw : http://en.wikipedia.org/wiki/.pw +pw +co.pw +ne.pw +or.pw +ed.pw +go.pw +belau.pw + +// py : http://www.nic.py/faq_a.html#faq_b +*.py + +// qa : http://domains.qa/en/ +qa +com.qa +edu.qa +gov.qa +mil.qa +name.qa +net.qa +org.qa +sch.qa + +// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs +re +com.re +asso.re +nom.re + +// ro : http://www.rotld.ro/ +ro +com.ro +org.ro +tm.ro +nt.ro +nom.ro +info.ro +rec.ro +arts.ro +firm.ro +store.ro +www.ro + +// rs : http://en.wikipedia.org/wiki/.rs +rs +co.rs +org.rs +edu.rs +ac.rs +gov.rs +in.rs + +// ru : http://www.cctld.ru/ru/docs/aktiv_8.php +// Industry domains +ru +ac.ru +com.ru +edu.ru +int.ru +net.ru +org.ru +pp.ru +// Geographical domains +adygeya.ru +altai.ru +amur.ru +arkhangelsk.ru +astrakhan.ru +bashkiria.ru +belgorod.ru +bir.ru +bryansk.ru +buryatia.ru +cbg.ru +chel.ru +chelyabinsk.ru +chita.ru +chukotka.ru +chuvashia.ru +dagestan.ru +dudinka.ru +e-burg.ru +grozny.ru +irkutsk.ru +ivanovo.ru +izhevsk.ru +jar.ru +joshkar-ola.ru +kalmykia.ru +kaluga.ru +kamchatka.ru +karelia.ru +kazan.ru +kchr.ru +kemerovo.ru +khabarovsk.ru +khakassia.ru +khv.ru +kirov.ru +koenig.ru +komi.ru +kostroma.ru +krasnoyarsk.ru +kuban.ru +kurgan.ru +kursk.ru +lipetsk.ru +magadan.ru +mari.ru +mari-el.ru +marine.ru +mordovia.ru +mosreg.ru +msk.ru +murmansk.ru +nalchik.ru +nnov.ru +nov.ru +novosibirsk.ru +nsk.ru +omsk.ru +orenburg.ru +oryol.ru +palana.ru +penza.ru +perm.ru +pskov.ru +ptz.ru +rnd.ru +ryazan.ru +sakhalin.ru +samara.ru +saratov.ru +simbirsk.ru +smolensk.ru +spb.ru +stavropol.ru +stv.ru +surgut.ru +tambov.ru +tatarstan.ru +tom.ru +tomsk.ru +tsaritsyn.ru +tsk.ru +tula.ru +tuva.ru +tver.ru +tyumen.ru +udm.ru +udmurtia.ru +ulan-ude.ru +vladikavkaz.ru +vladimir.ru +vladivostok.ru +volgograd.ru +vologda.ru +voronezh.ru +vrn.ru +vyatka.ru +yakutia.ru +yamal.ru +yaroslavl.ru +yekaterinburg.ru +yuzhno-sakhalinsk.ru +// More geographical domains +amursk.ru +baikal.ru +cmw.ru +fareast.ru +jamal.ru +kms.ru +k-uralsk.ru +kustanai.ru +kuzbass.ru +magnitka.ru +mytis.ru +nakhodka.ru +nkz.ru +norilsk.ru +oskol.ru +pyatigorsk.ru +rubtsovsk.ru +snz.ru +syzran.ru +vdonsk.ru +zgrad.ru +// State domains +gov.ru +mil.ru +// Technical domains +test.ru + +// rw : http://www.nic.rw/cgi-bin/policy.pl +rw +gov.rw +net.rw +edu.rw +ac.rw +com.rw +co.rw +int.rw +mil.rw +gouv.rw + +// sa : http://www.nic.net.sa/ +sa +com.sa +net.sa +org.sa +gov.sa +med.sa +pub.sa +edu.sa +sch.sa + +// sb : http://www.sbnic.net.sb/ +// Submitted by registry 2008-06-08 +sb +com.sb +edu.sb +gov.sb +net.sb +org.sb + +// sc : http://www.nic.sc/ +sc +com.sc +gov.sc +net.sc +org.sc +edu.sc + +// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm +// Submitted by registry 2008-06-17 +sd +com.sd +net.sd +org.sd +edu.sd +med.sd +gov.sd +info.sd + +// se : http://en.wikipedia.org/wiki/.se +// Submitted by registry 2008-06-24 +se +a.se +ac.se +b.se +bd.se +brand.se +c.se +d.se +e.se +f.se +fh.se +fhsk.se +fhv.se +g.se +h.se +i.se +k.se +komforb.se +kommunalforbund.se +komvux.se +l.se +lanbib.se +m.se +n.se +naturbruksgymn.se +o.se +org.se +p.se +parti.se +pp.se +press.se +r.se +s.se +sshn.se +t.se +tm.se +u.se +w.se +x.se +y.se +z.se + +// sg : http://www.nic.net.sg/sub_policies_agreement/2ld.html +sg +com.sg +net.sg +org.sg +gov.sg +edu.sg +per.sg + +// sh : http://www.nic.sh/rules.html +// list of 2nd level domains ? +sh + +// si : http://en.wikipedia.org/wiki/.si +si + +// sj : No registrations at this time. +// Submitted by registry 2008-06-16 + +// sk : http://en.wikipedia.org/wiki/.sk +// list of 2nd level domains ? +sk + +// sl : http://www.nic.sl +// Submitted by registry 2008-06-12 +sl +com.sl +net.sl +edu.sl +gov.sl +org.sl + +// sm : http://en.wikipedia.org/wiki/.sm +sm + +// sn : http://en.wikipedia.org/wiki/.sn +sn +art.sn +com.sn +edu.sn +gouv.sn +org.sn +perso.sn +univ.sn + +// so : http://www.soregistry.com/ +so +com.so +net.so +org.so + +// sr : http://en.wikipedia.org/wiki/.sr +sr + +// st : http://www.nic.st/html/policyrules/ +st +co.st +com.st +consulado.st +edu.st +embaixada.st +gov.st +mil.st +net.st +org.st +principe.st +saotome.st +store.st + +// su : http://en.wikipedia.org/wiki/.su +su + +// sv : http://www.svnet.org.sv/svpolicy.html +*.sv + +// sy : http://en.wikipedia.org/wiki/.sy +// see also: http://www.gobin.info/domainname/sy.doc +sy +edu.sy +gov.sy +net.sy +mil.sy +com.sy +org.sy + +// sz : http://en.wikipedia.org/wiki/.sz +// http://www.sispa.org.sz/ +sz +co.sz +ac.sz +org.sz + +// tc : http://en.wikipedia.org/wiki/.tc +tc + +// td : http://en.wikipedia.org/wiki/.td +td + +// tel: http://en.wikipedia.org/wiki/.tel +// http://www.telnic.org/ +tel + +// tf : http://en.wikipedia.org/wiki/.tf +tf + +// tg : http://en.wikipedia.org/wiki/.tg +// http://www.nic.tg/nictg/index.php implies no reserved 2nd-level domains, +// although this contradicts wikipedia. +tg + +// th : http://en.wikipedia.org/wiki/.th +// Submitted by registry 2008-06-17 +th +ac.th +co.th +go.th +in.th +mi.th +net.th +or.th + +// tj : http://www.nic.tj/policy.htm +tj +ac.tj +biz.tj +co.tj +com.tj +edu.tj +go.tj +gov.tj +int.tj +mil.tj +name.tj +net.tj +nic.tj +org.tj +test.tj +web.tj + +// tk : http://en.wikipedia.org/wiki/.tk +tk + +// tl : http://en.wikipedia.org/wiki/.tl +tl +gov.tl + +// tm : http://www.nic.tm/rules.html +// list of 2nd level tlds ? +tm + +// tn : http://en.wikipedia.org/wiki/.tn +// http://whois.ati.tn/ +tn +com.tn +ens.tn +fin.tn +gov.tn +ind.tn +intl.tn +nat.tn +net.tn +org.tn +info.tn +perso.tn +tourism.tn +edunet.tn +rnrt.tn +rns.tn +rnu.tn +mincom.tn +agrinet.tn +defense.tn +turen.tn + +// to : http://en.wikipedia.org/wiki/.to +// Submitted by registry 2008-06-17 +to +com.to +gov.to +net.to +org.to +edu.to +mil.to + +// tr : http://en.wikipedia.org/wiki/.tr +*.tr +!nic.tr +// Used by government in the TRNC +// http://en.wikipedia.org/wiki/.nc.tr +gov.nc.tr + +// travel : http://en.wikipedia.org/wiki/.travel +travel + +// tt : http://www.nic.tt/ +tt +co.tt +com.tt +org.tt +net.tt +biz.tt +info.tt +pro.tt +int.tt +coop.tt +jobs.tt +mobi.tt +travel.tt +museum.tt +aero.tt +name.tt +gov.tt +edu.tt + +// tv : http://en.wikipedia.org/wiki/.tv +// Not listing any 2LDs as reserved since none seem to exist in practice, +// Wikipedia notwithstanding. +tv + +// tw : http://en.wikipedia.org/wiki/.tw +tw +edu.tw +gov.tw +mil.tw +com.tw +net.tw +org.tw +idv.tw +game.tw +ebiz.tw +club.tw +網路.tw +組織.tw +商業.tw + +// tz : http://en.wikipedia.org/wiki/.tz +// Submitted by registry 2008-06-17 +// Updated from http://www.tznic.or.tz/index.php/domains.html 2010-10-25 +ac.tz +co.tz +go.tz +mil.tz +ne.tz +or.tz +sc.tz + +// ua : http://www.nic.net.ua/ +ua +com.ua +edu.ua +gov.ua +in.ua +net.ua +org.ua +// ua geo-names +cherkassy.ua +chernigov.ua +chernovtsy.ua +ck.ua +cn.ua +crimea.ua +cv.ua +dn.ua +dnepropetrovsk.ua +donetsk.ua +dp.ua +if.ua +ivano-frankivsk.ua +kh.ua +kharkov.ua +kherson.ua +khmelnitskiy.ua +kiev.ua +kirovograd.ua +km.ua +kr.ua +ks.ua +kv.ua +lg.ua +lugansk.ua +lutsk.ua +lviv.ua +mk.ua +nikolaev.ua +od.ua +odessa.ua +pl.ua +poltava.ua +rovno.ua +rv.ua +sebastopol.ua +sumy.ua +te.ua +ternopil.ua +uzhgorod.ua +vinnica.ua +vn.ua +zaporizhzhe.ua +zp.ua +zhitomir.ua +zt.ua + +// Private registries in .ua +co.ua +pp.ua + +// ug : http://www.registry.co.ug/ +ug +co.ug +ac.ug +sc.ug +go.ug +ne.ug +or.ug + +// uk : http://en.wikipedia.org/wiki/.uk +*.uk +*.sch.uk +!bl.uk +!british-library.uk +!icnet.uk +!jet.uk +!mod.uk +!nel.uk +!nhs.uk +!nic.uk +!nls.uk +!national-library-scotland.uk +!parliament.uk +!police.uk + +// us : http://en.wikipedia.org/wiki/.us +us +dni.us +fed.us +isa.us +kids.us +nsn.us +// us geographic names +ak.us +al.us +ar.us +as.us +az.us +ca.us +co.us +ct.us +dc.us +de.us +fl.us +ga.us +gu.us +hi.us +ia.us +id.us +il.us +in.us +ks.us +ky.us +la.us +ma.us +md.us +me.us +mi.us +mn.us +mo.us +ms.us +mt.us +nc.us +nd.us +ne.us +nh.us +nj.us +nm.us +nv.us +ny.us +oh.us +ok.us +or.us +pa.us +pr.us +ri.us +sc.us +sd.us +tn.us +tx.us +ut.us +vi.us +vt.us +va.us +wa.us +wi.us +wv.us +wy.us +// The registrar notes several more specific domains available in each state, +// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat +// haphazard; in some states these domains resolve as addresses, while in others +// only subdomains are available, or even nothing at all. We include the +// most common ones where it's clear that different sites are different +// entities. +k12.ak.us +k12.al.us +k12.ar.us +k12.as.us +k12.az.us +k12.ca.us +k12.co.us +k12.ct.us +k12.dc.us +k12.de.us +k12.fl.us +k12.ga.us +k12.gu.us +// k12.hi.us Hawaii has a state-wide DOE login: bug 614565 +k12.ia.us +k12.id.us +k12.il.us +k12.in.us +k12.ks.us +k12.ky.us +k12.la.us +k12.ma.us +k12.md.us +k12.me.us +k12.mi.us +k12.mn.us +k12.mo.us +k12.ms.us +k12.mt.us +k12.nc.us +k12.nd.us +k12.ne.us +k12.nh.us +k12.nj.us +k12.nm.us +k12.nv.us +k12.ny.us +k12.oh.us +k12.ok.us +k12.or.us +k12.pa.us +k12.pr.us +k12.ri.us +k12.sc.us +k12.sd.us +k12.tn.us +k12.tx.us +k12.ut.us +k12.vi.us +k12.vt.us +k12.va.us +k12.wa.us +k12.wi.us +k12.wv.us +k12.wy.us + +cc.ak.us +cc.al.us +cc.ar.us +cc.as.us +cc.az.us +cc.ca.us +cc.co.us +cc.ct.us +cc.dc.us +cc.de.us +cc.fl.us +cc.ga.us +cc.gu.us +cc.hi.us +cc.ia.us +cc.id.us +cc.il.us +cc.in.us +cc.ks.us +cc.ky.us +cc.la.us +cc.ma.us +cc.md.us +cc.me.us +cc.mi.us +cc.mn.us +cc.mo.us +cc.ms.us +cc.mt.us +cc.nc.us +cc.nd.us +cc.ne.us +cc.nh.us +cc.nj.us +cc.nm.us +cc.nv.us +cc.ny.us +cc.oh.us +cc.ok.us +cc.or.us +cc.pa.us +cc.pr.us +cc.ri.us +cc.sc.us +cc.sd.us +cc.tn.us +cc.tx.us +cc.ut.us +cc.vi.us +cc.vt.us +cc.va.us +cc.wa.us +cc.wi.us +cc.wv.us +cc.wy.us + +lib.ak.us +lib.al.us +lib.ar.us +lib.as.us +lib.az.us +lib.ca.us +lib.co.us +lib.ct.us +lib.dc.us +lib.de.us +lib.fl.us +lib.ga.us +lib.gu.us +lib.hi.us +lib.ia.us +lib.id.us +lib.il.us +lib.in.us +lib.ks.us +lib.ky.us +lib.la.us +lib.ma.us +lib.md.us +lib.me.us +lib.mi.us +lib.mn.us +lib.mo.us +lib.ms.us +lib.mt.us +lib.nc.us +lib.nd.us +lib.ne.us +lib.nh.us +lib.nj.us +lib.nm.us +lib.nv.us +lib.ny.us +lib.oh.us +lib.ok.us +lib.or.us +lib.pa.us +lib.pr.us +lib.ri.us +lib.sc.us +lib.sd.us +lib.tn.us +lib.tx.us +lib.ut.us +lib.vi.us +lib.vt.us +lib.va.us +lib.wa.us +lib.wi.us +lib.wv.us +lib.wy.us + +// k12.ma.us contains school districts in Massachusetts. The 4LDs are +// managed indepedently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated dorectly to the +// 5LD operators. +pvt.k12.ma.us +chtr.k12.ma.us +paroch.k12.ma.us + +// uy : http://www.antel.com.uy/ +*.uy + +// uz : http://www.reg.uz/registerr.html +// are there other 2nd level tlds ? +uz +com.uz +co.uz + +// va : http://en.wikipedia.org/wiki/.va +va + +// vc : http://en.wikipedia.org/wiki/.vc +// Submitted by registry 2008-06-13 +vc +com.vc +net.vc +org.vc +gov.vc +mil.vc +edu.vc + +// ve : http://registro.nic.ve/nicve/registro/index.html +*.ve + +// vg : http://en.wikipedia.org/wiki/.vg +vg + +// vi : http://www.nic.vi/newdomainform.htm +// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other +// TLDs are "reserved", such as edu.vi and gov.vi, but doesn't actually say they +// are available for registration (which they do not seem to be). +vi +co.vi +com.vi +k12.vi +net.vi +org.vi + +// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp +vn +com.vn +net.vn +org.vn +edu.vn +gov.vn +int.vn +ac.vn +biz.vn +info.vn +name.vn +pro.vn +health.vn + +// vu : http://en.wikipedia.org/wiki/.vu +// list of 2nd level tlds ? +vu + +// wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +wf + +// ws : http://en.wikipedia.org/wiki/.ws +// http://samoanic.ws/index.dhtml +ws +com.ws +net.ws +org.ws +gov.ws +edu.ws + +// yt : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +yt + +// IDN ccTLDs +// Please sort by ISO 3166 ccTLD, then punicode string +// when submitting patches and follow this format: +// ("" ) : +// [optional sponsoring org] +// + +// xn--mgbaam7a8h ("Emerat" Arabic) : AE +//http://nic.ae/english/arabicdomain/rules.jsp +امارات + +// xn--54b7fta0cc ("Bangla" Bangla) : BD +বাংলা + +// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhonggou>) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中国 + +// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhonggou>) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中國 + +// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ +الجزائر + +// xn--wgbh1c ("Egypt" Arabic .masr) : EG +// http://www.dotmasr.eg/ +مصر + +// xn--node ("ge" Georgian (Mkhedruli)) : GE +გე + +// xn--j6w193g ("Hong Kong" Chinese-Han) : HK +// https://www2.hkirc.hk/register/rules.jsp +香港 + +// xn--h2brj9c ("Bharat" Devanagari) : IN +// India +भारत + +// xn--mgbbh1a71e ("Bharat" Arabic) : IN +// India +بھارت + +// xn--fpcrj9c3d ("Bharat" Telugu) : IN +// India +భారత్ + +// xn--gecrj9c ("Bharat" Gujarati) : IN +// India +ભારત + +// xn--s9brj9c ("Bharat" Gurmukhi) : IN +// India +ਭਾਰਤ + +// xn--45brj9c ("Bharat" Bengali) : IN +// India +ভারত + +// xn--xkc2dl3a5ee0h ("India" Tamil) : IN +// India +இந்தியா + +// xn--mgba3a4f16a ("Iran" Persian) : IR +ایران + +// xn--mgba3a4fra ("Iran" Arabic) : IR +ايران + +//xn--mgbayh7gpa ("al-Ordon" Arabic) JO +//National Information Technology Center (NITC) +//Royal Scientific Society, Al-Jubeiha +الاردن + +// xn--3e0b707e ("Republic of Korea" Hangul) : KR +한국 + +// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK +// http://nic.lk +ලංකා + +// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK +// http://nic.lk +இலங்கை + +// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA +المغرب + +// xn--mgb9awbf ("Oman" Arabic) : OM +عمان + +// xn--ygbi2ammx ("Falasteen" Arabic) : PS +// The Palestinian National Internet Naming Authority (PNINA) +// http://www.pnina.ps +فلسطين + +// xn--90a3ac ("srb" Cyrillic) : RS +срб + +// xn--p1ai ("rf" Russian-Cyrillic) : RU +// http://www.cctld.ru/en/docs/rulesrf.php +рф + +// xn--wgbl6a ("Qatar" Arabic) : QA +// http://www.ict.gov.qa/ +قطر + +// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA +// http://www.nic.net.sa/ +السعودية + +// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA +السعودیة + +// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA +السعودیۃ + +// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA +السعوديه + +// xn--ogbpf8fl ("Syria" Arabic) : SY +سورية + +// xn--mgbtf8fl ("Syria" Arabic) variant : SY +سوريا + +// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG +新加坡 + +// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG +சிங்கப்பூர் + +// xn--o3cw4h ("Thai" Thai) : TH +// http://www.thnic.co.th +ไทย + +// xn--pgbs0dh ("Tunis") : TN +// http://nic.tn +تونس + +// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台灣 + +// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台湾 + +// xn--nnx388a ("Taiwan") variant : TW +臺灣 + +// xn--j1amh ("ukr" Cyrillic) : UA +укр + +// xn--mgb2ddes ("AlYemen" Arabic) : YE +اليمن + +// xxx : http://icmregistry.com +xxx + +// ye : http://www.y.net.ye/services/domain_name.htm +*.ye + +// za : http://www.zadna.org.za/slds.html +*.za + +// zm : http://en.wikipedia.org/wiki/.zm +*.zm + +// zw : http://en.wikipedia.org/wiki/.zw +*.zw + +// ===END ICANN DOMAINS=== +// ===BEGIN PRIVATE DOMAINS=== + +// info.at : http://www.info.at/ +biz.at +info.at + +// priv.at : http://www.nic.priv.at/ +// Submitted by registry 2008-06-09 +priv.at + +// co.ca : http://registry.co.ca +co.ca + +// CentralNic : http://www.centralnic.com/names/domains +// Confirmed by registry 2008-06-09 +ar.com +br.com +cn.com +de.com +eu.com +gb.com +gr.com +hu.com +jpn.com +kr.com +no.com +qc.com +ru.com +sa.com +se.com +uk.com +us.com +uy.com +za.com +gb.net +jp.net +se.net +uk.net +ae.org +us.org +com.de + +// Opera Software, A.S.A. +// Requested by Yngve Pettersen 2009-11-26 +operaunite.com + +// Google, Inc. +// Requested by Eduardo Vela 2010-09-06 +appspot.com + +// iki.fi : Submitted by Hannu Aronsson 2009-11-05 +iki.fi + +// c.la : http://www.c.la/ +c.la + +// ZaNiC : http://www.za.net/ +// Confirmed by registry 2009-10-03 +za.net +za.org + +// CoDNS B.V. +// Added 2010-05-23. +co.nl +co.no + +// Mainseek Sp. z o.o. : http://www.co.pl/ +co.pl + +// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ +dyndns-at-home.com +dyndns-at-work.com +dyndns-blog.com +dyndns-free.com +dyndns-home.com +dyndns-ip.com +dyndns-mail.com +dyndns-office.com +dyndns-pics.com +dyndns-remote.com +dyndns-server.com +dyndns-web.com +dyndns-wiki.com +dyndns-work.com +dyndns.biz +dyndns.info +dyndns.org +dyndns.tv +at-band-camp.net +ath.cx +barrel-of-knowledge.info +barrell-of-knowledge.info +better-than.tv +blogdns.com +blogdns.net +blogdns.org +blogsite.org +boldlygoingnowhere.org +broke-it.net +buyshouses.net +cechire.com +dnsalias.com +dnsalias.net +dnsalias.org +dnsdojo.com +dnsdojo.net +dnsdojo.org +does-it.net +doesntexist.com +doesntexist.org +dontexist.com +dontexist.net +dontexist.org +doomdns.com +doomdns.org +dvrdns.org +dyn-o-saur.com +dynalias.com +dynalias.net +dynalias.org +dynathome.net +dyndns.ws +endofinternet.net +endofinternet.org +endoftheinternet.org +est-a-la-maison.com +est-a-la-masion.com +est-le-patron.com +est-mon-blogueur.com +for-better.biz +for-more.biz +for-our.info +for-some.biz +for-the.biz +forgot.her.name +forgot.his.name +from-ak.com +from-al.com +from-ar.com +from-az.net +from-ca.com +from-co.net +from-ct.com +from-dc.com +from-de.com +from-fl.com +from-ga.com +from-hi.com +from-ia.com +from-id.com +from-il.com +from-in.com +from-ks.com +from-ky.com +from-la.net +from-ma.com +from-md.com +from-me.org +from-mi.com +from-mn.com +from-mo.com +from-ms.com +from-mt.com +from-nc.com +from-nd.com +from-ne.com +from-nh.com +from-nj.com +from-nm.com +from-nv.com +from-ny.net +from-oh.com +from-ok.com +from-or.com +from-pa.com +from-pr.com +from-ri.com +from-sc.com +from-sd.com +from-tn.com +from-tx.com +from-ut.com +from-va.com +from-vt.com +from-wa.com +from-wi.com +from-wv.com +from-wy.com +ftpaccess.cc +fuettertdasnetz.de +game-host.org +game-server.cc +getmyip.com +gets-it.net +go.dyndns.org +gotdns.com +gotdns.org +groks-the.info +groks-this.info +ham-radio-op.net +here-for-more.info +hobby-site.com +hobby-site.org +home.dyndns.org +homedns.org +homeftp.net +homeftp.org +homeip.net +homelinux.com +homelinux.net +homelinux.org +homeunix.com +homeunix.net +homeunix.org +iamallama.com +in-the-band.net +is-a-anarchist.com +is-a-blogger.com +is-a-bookkeeper.com +is-a-bruinsfan.org +is-a-bulls-fan.com +is-a-candidate.org +is-a-caterer.com +is-a-celticsfan.org +is-a-chef.com +is-a-chef.net +is-a-chef.org +is-a-conservative.com +is-a-cpa.com +is-a-cubicle-slave.com +is-a-democrat.com +is-a-designer.com +is-a-doctor.com +is-a-financialadvisor.com +is-a-geek.com +is-a-geek.net +is-a-geek.org +is-a-green.com +is-a-guru.com +is-a-hard-worker.com +is-a-hunter.com +is-a-knight.org +is-a-landscaper.com +is-a-lawyer.com +is-a-liberal.com +is-a-libertarian.com +is-a-linux-user.org +is-a-llama.com +is-a-musician.com +is-a-nascarfan.com +is-a-nurse.com +is-a-painter.com +is-a-patsfan.org +is-a-personaltrainer.com +is-a-photographer.com +is-a-player.com +is-a-republican.com +is-a-rockstar.com +is-a-socialist.com +is-a-soxfan.org +is-a-student.com +is-a-teacher.com +is-a-techie.com +is-a-therapist.com +is-an-accountant.com +is-an-actor.com +is-an-actress.com +is-an-anarchist.com +is-an-artist.com +is-an-engineer.com +is-an-entertainer.com +is-by.us +is-certified.com +is-found.org +is-gone.com +is-into-anime.com +is-into-cars.com +is-into-cartoons.com +is-into-games.com +is-leet.com +is-lost.org +is-not-certified.com +is-saved.org +is-slick.com +is-uberleet.com +is-very-bad.org +is-very-evil.org +is-very-good.org +is-very-nice.org +is-very-sweet.org +is-with-theband.com +isa-geek.com +isa-geek.net +isa-geek.org +isa-hockeynut.com +issmarterthanyou.com +isteingeek.de +istmein.de +kicks-ass.net +kicks-ass.org +knowsitall.info +land-4-sale.us +lebtimnetz.de +leitungsen.de +likes-pie.com +likescandy.com +merseine.nu +mine.nu +misconfused.org +mypets.ws +myphotos.cc +neat-url.com +office-on-the.net +on-the-web.tv +podzone.net +podzone.org +readmyblog.org +saves-the-whales.com +scrapper-site.net +scrapping.cc +selfip.biz +selfip.com +selfip.info +selfip.net +selfip.org +sells-for-less.com +sells-for-u.com +sells-it.net +sellsyourhome.org +servebbs.com +servebbs.net +servebbs.org +serveftp.net +serveftp.org +servegame.org +shacknet.nu +simple-url.com +space-to-rent.com +stuff-4-sale.org +stuff-4-sale.us +teaches-yoga.com +thruhere.net +traeumtgerade.de +webhop.biz +webhop.info +webhop.net +webhop.org +worse-than.tv +writesthisblog.com + +// ===END PRIVATE DOMAINS=== diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js new file mode 100644 index 00000000..3cce815e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js @@ -0,0 +1,1340 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +var vows = require('vows'); +var assert = require('assert'); +var async = require('async'); + +// NOTE use require("tough-cookie") in your own code: +var tough = require('./lib/cookie'); +var Cookie = tough.Cookie; +var CookieJar = tough.CookieJar; + + +function dateVows(table) { + var theVows = { }; + var keys = Object.keys(table).forEach(function(date) { + var expect = table[date]; + theVows[date] = function() { + var got = tough.parseDate(date) ? 'valid' : 'invalid'; + assert.equal(got, expect ? 'valid' : 'invalid'); + }; + }); + return { "date parsing": theVows }; +} + +function matchVows(func,table) { + var theVows = {}; + table.forEach(function(item) { + var str = item[0]; + var dom = item[1]; + var expect = item[2]; + var label = str+(expect?" matches ":" doesn't match ")+dom; + theVows[label] = function() { + assert.equal(func(str,dom),expect); + }; + }); + return theVows; +} + +function defaultPathVows(table) { + var theVows = {}; + table.forEach(function(item) { + var str = item[0]; + var expect = item[1]; + var label = str+" gives "+expect; + theVows[label] = function() { + assert.equal(tough.defaultPath(str),expect); + }; + }); + return theVows; +} + +var atNow = Date.now(); +function at(offset) { return {now: new Date(atNow+offset)} } + +vows.describe('Cookie Jar') +.addBatch({ + "all defined": function() { + assert.ok(Cookie); + assert.ok(CookieJar); + }, +}) +.addBatch( + dateVows({ + "Wed, 09 Jun 2021 10:18:14 GMT": true, + "Wed, 09 Jun 2021 22:18:14 GMT": true, + "Tue, 18 Oct 2011 07:42:42.123 GMT": true, + "18 Oct 2011 07:42:42 GMT": true, + "8 Oct 2011 7:42:42 GMT": true, + "8 Oct 2011 7:2:42 GMT": false, + "Oct 18 2011 07:42:42 GMT": true, + "Tue Oct 18 2011 07:05:03 GMT+0000 (GMT)": true, + "09 Jun 2021 10:18:14 GMT": true, + "99 Jix 3038 48:86:72 ZMT": false, + '01 Jan 1970 00:00:00 GMT': true, + '01 Jan 1600 00:00:00 GMT': false, // before 1601 + '01 Jan 1601 00:00:00 GMT': true, + '10 Feb 81 13:00:00 GMT': true, // implicit year + 'Thu, 01 Jan 1970 00:00:010 GMT': true, // strange time, non-strict OK + 'Thu, 17-Apr-2014 02:12:29 GMT': true, // dashes + 'Thu, 17-Apr-2014 02:12:29 UTC': true, // dashes and UTC + }) +) +.addBatch({ + "strict date parse of Thu, 01 Jan 1970 00:00:010 GMT": { + topic: function() { + return tough.parseDate('Thu, 01 Jan 1970 00:00:010 GMT', true) ? true : false; + }, + "invalid": function(date) { + assert.equal(date,false); + }, + } +}) +.addBatch({ + "formatting": { + "a simple cookie": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b'); + }, + }, + "a cookie with spaces in the value": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'beta gamma'; + return c; + }, + "doesn't validate": function(c) { + assert.ok(!c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a="beta gamma"'); + }, + }, + "with an empty value and HttpOnly": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.httpOnly = true; + return c; + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=; HttpOnly'); + } + }, + "with an expiry": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT'); + }, + "to short string": function(c) { + assert.equal(c.cookieString(), 'a=b'); + }, + }, + "with a max-age": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + c.maxAge = 12345; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); // mabe this one *shouldn't*? + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Max-Age=12345'); + }, + }, + "with a bunch of things": function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + c.maxAge = 12345; + c.domain = 'example.com'; + c.path = '/foo'; + c.secure = true; + c.httpOnly = true; + c.extensions = ['MyExtension']; + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Max-Age=12345; Domain=example.com; Path=/foo; Secure; HttpOnly; MyExtension'); + }, + "a host-only cookie": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.hostOnly = true; + c.domain = 'shouldnt-stringify.example.com'; + c.path = '/should-stringify'; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Path=/should-stringify'); + }, + }, + "minutes are '10'": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.expires = new Date(1284113410000); + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + var str = c.toString(); + assert.notEqual(str, 'a=b; Expires=Fri, 010 Sep 2010 010:010:010 GMT'); + assert.equal(str, 'a=b; Expires=Fri, 10 Sep 2010 10:10:10 GMT'); + }, + } + } +}) +.addBatch({ + "TTL with max-age": function() { + var c = new Cookie(); + c.maxAge = 123; + assert.equal(c.TTL(), 123000); + assert.equal(c.expiryTime(new Date(9000000)), 9123000); + }, + "TTL with zero max-age": function() { + var c = new Cookie(); + c.key = 'a'; c.value = 'b'; + c.maxAge = 0; // should be treated as "earliest representable" + assert.equal(c.TTL(), 0); + assert.equal(c.expiryTime(new Date(9000000)), -Infinity); + assert.ok(!c.validate()); // not valid, really: non-zero-digit *DIGIT + }, + "TTL with negative max-age": function() { + var c = new Cookie(); + c.key = 'a'; c.value = 'b'; + c.maxAge = -1; // should be treated as "earliest representable" + assert.equal(c.TTL(), 0); + assert.equal(c.expiryTime(new Date(9000000)), -Infinity); + assert.ok(!c.validate()); // not valid, really: non-zero-digit *DIGIT + }, + "TTL with max-age and expires": function() { + var c = new Cookie(); + c.maxAge = 123; + c.expires = new Date(Date.now()+9000); + assert.equal(c.TTL(), 123000); + assert.ok(c.isPersistent()); + }, + "TTL with expires": function() { + var c = new Cookie(); + var now = Date.now(); + c.expires = new Date(now+9000); + assert.equal(c.TTL(now), 9000); + assert.equal(c.expiryTime(), c.expires.getTime()); + }, + "TTL with old expires": function() { + var c = new Cookie(); + c.setExpires('17 Oct 2010 00:00:00 GMT'); + assert.ok(c.TTL() < 0); + assert.ok(c.isPersistent()); + }, + "default TTL": { + topic: function() { return new Cookie() }, + "is Infinite-future": function(c) { assert.equal(c.TTL(), Infinity) }, + "is a 'session' cookie": function(c) { assert.ok(!c.isPersistent()) }, + }, +}).addBatch({ + "Parsing": { + "simple": { + topic: function() { + return Cookie.parse('a=bcd',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'a') }, + "value": function(c) { assert.equal(c.value, 'bcd') }, + "no path": function(c) { assert.equal(c.path, null) }, + "no domain": function(c) { assert.equal(c.domain, null) }, + "no extensions": function(c) { assert.ok(!c.extensions) }, + }, + "with expiry": { + topic: function() { + return Cookie.parse('a=bcd; Expires=Tue, 18 Oct 2011 07:05:03 GMT',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'a') }, + "value": function(c) { assert.equal(c.value, 'bcd') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + }, + "with expiry and path": { + topic: function() { + return Cookie.parse('abc="xyzzy!"; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Path=/aBc',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'abc') }, + "value": function(c) { assert.equal(c.value, 'xyzzy!') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + "has path": function(c) { assert.equal(c.path, '/aBc'); }, + "no httponly or secure": function(c) { + assert.ok(!c.httpOnly); + assert.ok(!c.secure); + }, + }, + "with everything": { + topic: function() { + return Cookie.parse('abc="xyzzy!"; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Path=/aBc; Domain=example.com; Secure; HTTPOnly; Max-Age=1234; Foo=Bar; Baz', true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'abc') }, + "value": function(c) { assert.equal(c.value, 'xyzzy!') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + "has path": function(c) { assert.equal(c.path, '/aBc'); }, + "has domain": function(c) { assert.equal(c.domain, 'example.com'); }, + "has httponly": function(c) { assert.equal(c.httpOnly, true); }, + "has secure": function(c) { assert.equal(c.secure, true); }, + "has max-age": function(c) { assert.equal(c.maxAge, 1234); }, + "has extensions": function(c) { + assert.ok(c.extensions); + assert.equal(c.extensions[0], 'Foo=Bar'); + assert.equal(c.extensions[1], 'Baz'); + }, + }, + "invalid expires": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Expires=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Expires=xyzzy"); + assert.ok(c); + assert.equal(c.expires, Infinity); + }, + }, + "zero max-age": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Max-Age=0", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Max-Age=0"); + assert.ok(c); + assert.equal(c.maxAge, 0); + }, + }, + "negative max-age": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Max-Age=-1", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Max-Age=-1"); + assert.ok(c); + assert.equal(c.maxAge, -1); + }, + }, + "empty domain": { + "strict": function() { assert.ok(!Cookie.parse("a=b; domain=", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; domain="); + assert.ok(c); + assert.equal(c.domain, null); + }, + }, + "dot domain": { + "strict": function() { assert.ok(!Cookie.parse("a=b; domain=.", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; domain=."); + assert.ok(c); + assert.equal(c.domain, null); + }, + }, + "uppercase domain": { + "strict lowercases": function() { + var c = Cookie.parse("a=b; domain=EXAMPLE.COM"); + assert.ok(c); + assert.equal(c.domain, 'example.com'); + }, + "non-strict lowercases": function() { + var c = Cookie.parse("a=b; domain=EXAMPLE.COM"); + assert.ok(c); + assert.equal(c.domain, 'example.com'); + }, + }, + "trailing dot in domain": { + topic: function() { + return Cookie.parse("a=b; Domain=example.com.", true) || null; + }, + "has the domain": function(c) { assert.equal(c.domain,"example.com.") }, + "but doesn't validate": function(c) { assert.equal(c.validate(),false) }, + }, + "empty path": { + "strict": function() { assert.ok(!Cookie.parse("a=b; path=", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; path="); + assert.ok(c); + assert.equal(c.path, null); + }, + }, + "no-slash path": { + "strict": function() { assert.ok(!Cookie.parse("a=b; path=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; path=xyzzy"); + assert.ok(c); + assert.equal(c.path, null); + }, + }, + "trailing semi-colons after path": { + topic: function () { + return [ + "a=b; path=/;", + "c=d;;;;" + ]; + }, + "strict": function (t) { + assert.ok(!Cookie.parse(t[0], true)); + assert.ok(!Cookie.parse(t[1], true)); + }, + "non-strict": function (t) { + var c1 = Cookie.parse(t[0]); + var c2 = Cookie.parse(t[1]); + assert.ok(c1); + assert.ok(c2); + assert.equal(c1.path, '/'); + } + }, + "secure-with-value": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Secure=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Secure=xyzzy"); + assert.ok(c); + assert.equal(c.secure, true); + }, + }, + "httponly-with-value": { + "strict": function() { assert.ok(!Cookie.parse("a=b; HttpOnly=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; HttpOnly=xyzzy"); + assert.ok(c); + assert.equal(c.httpOnly, true); + }, + }, + "garbage": { + topic: function() { + return Cookie.parse("\x08", true) || null; + }, + "doesn't parse": function(c) { assert.equal(c,null) }, + }, + "public suffix domain": { + topic: function() { + return Cookie.parse("a=b; domain=kyoto.jp", true) || null; + }, + "parses fine": function(c) { + assert.ok(c); + assert.equal(c.domain, 'kyoto.jp'); + }, + "but fails validation": function(c) { + assert.ok(c); + assert.ok(!c.validate()); + }, + }, + "Ironically, Google 'GAPS' cookie has very little whitespace": { + topic: function() { + return Cookie.parse("GAPS=1:A1aaaaAaAAa1aaAaAaaAAAaaa1a11a:aaaAaAaAa-aaaA1-;Path=/;Expires=Thu, 17-Apr-2014 02:12:29 GMT;Secure;HttpOnly"); + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'GAPS') }, + "value": function(c) { assert.equal(c.value, '1:A1aaaaAaAAa1aaAaAaaAAAaaa1a11a:aaaAaAaAa-aaaA1-') }, + "path": function(c) { + assert.notEqual(c.path, '/;Expires'); // BUG + assert.equal(c.path, '/'); + }, + "expires": function(c) { + assert.notEqual(c.expires, Infinity); + assert.equal(c.expires.getTime(), 1397700749000); + }, + "secure": function(c) { assert.ok(c.secure) }, + "httponly": function(c) { assert.ok(c.httpOnly) }, + }, + "lots of equal signs": { + topic: function() { + return Cookie.parse("queryPref=b=c&d=e; Path=/f=g; Expires=Thu, 17 Apr 2014 02:12:29 GMT; HttpOnly"); + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'queryPref') }, + "value": function(c) { assert.equal(c.value, 'b=c&d=e') }, + "path": function(c) { + assert.equal(c.path, '/f=g'); + }, + "expires": function(c) { + assert.notEqual(c.expires, Infinity); + assert.equal(c.expires.getTime(), 1397700749000); + }, + "httponly": function(c) { assert.ok(c.httpOnly) }, + } + } +}) +.addBatch({ + "domain normalization": { + "simple": function() { + var c = new Cookie(); + c.domain = "EXAMPLE.com"; + assert.equal(c.canonicalizedDomain(), "example.com"); + }, + "extra dots": function() { + var c = new Cookie(); + c.domain = ".EXAMPLE.com"; + assert.equal(c.cdomain(), "example.com"); + }, + "weird trailing dot": function() { + var c = new Cookie(); + c.domain = "EXAMPLE.ca."; + assert.equal(c.canonicalizedDomain(), "example.ca."); + }, + "weird internal dots": function() { + var c = new Cookie(); + c.domain = "EXAMPLE...ca."; + assert.equal(c.canonicalizedDomain(), "example...ca."); + }, + "IDN": function() { + var c = new Cookie(); + c.domain = "δοκιμή.δοκιμή"; // "test.test" in greek + assert.equal(c.canonicalizedDomain(), "xn--jxalpdlp.xn--jxalpdlp"); + } + } +}) +.addBatch({ + "Domain Match":matchVows(tough.domainMatch, [ + // str, dom, expect + ["example.com", "example.com", true], + ["eXaMpLe.cOm", "ExAmPlE.CoM", true], + ["no.ca", "yes.ca", false], + ["wwwexample.com", "example.com", false], + ["www.example.com", "example.com", true], + ["example.com", "www.example.com", false], + ["www.subdom.example.com", "example.com", true], + ["www.subdom.example.com", "subdom.example.com", true], + ["example.com", "example.com.", false], // RFC6265 S4.1.2.3 + ["192.168.0.1", "168.0.1", false], // S5.1.3 "The string is a host name" + [null, "example.com", null], + ["example.com", null, null], + [null, null, null], + [undefined, undefined, null], + ]) +}) +.addBatch({ + "default-path": defaultPathVows([ + [null,"/"], + ["/","/"], + ["/file","/"], + ["/dir/file","/dir"], + ["noslash","/"], + ]) +}) +.addBatch({ + "Path-Match": matchVows(tough.pathMatch, [ + // request, cookie, match + ["/","/",true], + ["/dir","/",true], + ["/","/dir",false], + ["/dir/","/dir/", true], + ["/dir/file","/dir/",true], + ["/dir/file","/dir",true], + ["/directory","/dir",false], + ]) +}) +.addBatch({ + "Cookie Sorting": { + topic: function() { + var cookies = []; + var now = Date.now(); + cookies.push(Cookie.parse("a=0; Domain=example.com")); + cookies.push(Cookie.parse("b=1; Domain=www.example.com")); + cookies.push(Cookie.parse("c=2; Domain=example.com; Path=/pathA")); + cookies.push(Cookie.parse("d=3; Domain=www.example.com; Path=/pathA")); + cookies.push(Cookie.parse("e=4; Domain=example.com; Path=/pathA/pathB")); + cookies.push(Cookie.parse("f=5; Domain=www.example.com; Path=/pathA/pathB")); + + // force a stable creation time consistent with the order above since + // some may have been created at now + 1ms. + var i = cookies.length; + cookies.forEach(function(cookie) { + cookie.creation = new Date(now - 100*(i--)); + }); + + // weak shuffle: + cookies = cookies.sort(function(){return Math.random()-0.5}); + + cookies = cookies.sort(tough.cookieCompare); + return cookies; + }, + "got": function(cookies) { + assert.lengthOf(cookies, 6); + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['e','f','c','d','a','b']); + }, + } +}) +.addBatch({ + "CookieJar": { + "Setting a basic cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "works": function(c) { assert.instanceOf(c,Cookie) }, // C is for Cookie, good enough for me + "gets timestamped": function(c) { + assert.ok(c.creation); + assert.ok(Date.now() - c.creation.getTime() < 5000); // recently stamped + assert.ok(c.lastAccessed); + assert.equal(c.creation, c.lastAccessed); + assert.equal(c.TTL(), Infinity); + assert.ok(!c.isPersistent()); + }, + }, + "Setting a no-path cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "domain": function(c) { assert.equal(c.domain, 'example.com') }, + "path is /": function(c) { assert.equal(c.path, '/') }, + "path was derived": function(c) { assert.strictEqual(c.pathIsDefault, true) }, + }, + "Setting a cookie already marked as host-only": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + c.hostOnly = true; + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "domain": function(c) { assert.equal(c.domain, 'example.com') }, + "still hostOnly": function(c) { assert.strictEqual(c.hostOnly, true) }, + }, + "Setting a session cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b"); + assert.strictEqual(c.path, null); + cj.setCookie(c, 'http://www.example.com/dir/index.html', this.callback); + }, + "works": function(c) { assert.instanceOf(c,Cookie) }, + "gets the domain": function(c) { assert.equal(c.domain, 'www.example.com') }, + "gets the default path": function(c) { assert.equal(c.path, '/dir') }, + "is 'hostOnly'": function(c) { assert.ok(c.hostOnly) }, + }, + "Setting wrong domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=fooxample.com; Path=/"); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "fails": function(err,c) { + assert.ok(err.message.match(/domain/i)); + assert.ok(!c); + }, + }, + "Setting sub-domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=www.example.com; Path=/"); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "fails": function(err,c) { + assert.ok(err.message.match(/domain/i)); + assert.ok(!c); + }, + }, + "Setting super-domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/"); + cj.setCookie(c, 'http://www.app.example.com/index.html', this.callback); + }, + "success": function(err,c) { + assert.ok(!err); + assert.equal(c.domain, 'example.com'); + }, + }, + "Setting HttpOnly cookie over non-HTTP API": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/; HttpOnly"); + cj.setCookie(c, 'http://example.com/index.html', {http:false}, this.callback); + }, + "fails": function(err,c) { + assert.match(err.message, /HttpOnly/i); + assert.ok(!c); + }, + }, + }, + "Cookie Jar store eight cookies": { + topic: function() { + var cj = new CookieJar(); + var ex = 'http://example.com/index.html'; + var tasks = []; + tasks.push(function(next) { + cj.setCookie('a=1; Domain=example.com; Path=/',ex,at(0),next); + }); + tasks.push(function(next) { + cj.setCookie('b=2; Domain=example.com; Path=/; HttpOnly',ex,at(1000),next); + }); + tasks.push(function(next) { + cj.setCookie('c=3; Domain=example.com; Path=/; Secure',ex,at(2000),next); + }); + tasks.push(function(next) { // path + cj.setCookie('d=4; Domain=example.com; Path=/foo',ex,at(3000),next); + }); + tasks.push(function(next) { // host only + cj.setCookie('e=5',ex,at(4000),next); + }); + tasks.push(function(next) { // other domain + cj.setCookie('f=6; Domain=nodejs.org; Path=/','http://nodejs.org',at(5000),next); + }); + tasks.push(function(next) { // expired + cj.setCookie('g=7; Domain=example.com; Path=/; Expires=Tue, 18 Oct 2011 00:00:00 GMT',ex,at(6000),next); + }); + tasks.push(function(next) { // expired via Max-Age + cj.setCookie('h=8; Domain=example.com; Path=/; Max-Age=1',ex,next); + }); + var cb = this.callback; + async.parallel(tasks, function(err,results){ + setTimeout(function() { + cb(err,cj,results); + }, 2000); // so that 'h=8' expires + }); + }, + "setup ok": function(err,cj,results) { + assert.ok(1); + }, + "then retrieving for http://nodejs.org": { + topic: function(cj,results) { + cj.getCookies('http://nodejs.org',this.callback); + }, + "get a nodejs cookie": function(cookies) { + assert.lengthOf(cookies, 1); + var cookie = cookies[0]; + assert.equal(cookie.domain, 'nodejs.org'); + }, + }, + "then retrieving for https://example.com": { + topic: function(cj,results) { + cj.getCookies('https://example.com',{secure:true},this.callback); + }, + "get a secure example cookie with others": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','c','e']); + }, + }, + "then retrieving for https://example.com (missing options)": { + topic: function(cj,results) { + cj.getCookies('https://example.com',this.callback); + }, + "get a secure example cookie with others": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','c','e']); + }, + }, + "then retrieving for http://example.com": { + topic: function(cj,results) { + cj.getCookies('http://example.com',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','e']); + }, + }, + "then retrieving for http://EXAMPlE.com": { + topic: function(cj,results) { + cj.getCookies('http://EXAMPlE.com',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','e']); + }, + }, + "then retrieving for http://example.com, non-HTTP": { + topic: function(cj,results) { + cj.getCookies('http://example.com',{http:false},this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','e']); + }, + }, + "then retrieving for http://example.com/foo/bar": { + topic: function(cj,results) { + cj.getCookies('http://example.com/foo/bar',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['d','a','b','e']); + }, + }, + "then retrieving for http://example.com as a string": { + topic: function(cj,results) { + cj.getCookieString('http://example.com',this.callback); + }, + "get a single string": function(cookieHeader) { + assert.equal(cookieHeader, "a=1; b=2; e=5"); + }, + }, + "then retrieving for http://example.com as a set-cookie header": { + topic: function(cj,results) { + cj.getSetCookieStrings('http://example.com',this.callback); + }, + "get a single string": function(cookieHeaders) { + assert.lengthOf(cookieHeaders, 3); + assert.equal(cookieHeaders[0], "a=1; Domain=example.com; Path=/"); + assert.equal(cookieHeaders[1], "b=2; Domain=example.com; Path=/; HttpOnly"); + assert.equal(cookieHeaders[2], "e=5; Path=/"); + }, + }, + "then retrieving for http://www.example.com/": { + topic: function(cj,results) { + cj.getCookies('http://www.example.com/foo/bar',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['d','a','b']); // note lack of 'e' + }, + }, + }, + "Repeated names": { + topic: function() { + var cb = this.callback; + var cj = new CookieJar(); + var ex = 'http://www.example.com/'; + var sc = cj.setCookie; + var tasks = []; + var now = Date.now(); + tasks.push(sc.bind(cj,'aaaa=xxxx',ex,at(0))); + tasks.push(sc.bind(cj,'aaaa=1111; Domain=www.example.com',ex,at(1000))); + tasks.push(sc.bind(cj,'aaaa=2222; Domain=example.com',ex,at(2000))); + tasks.push(sc.bind(cj,'aaaa=3333; Domain=www.example.com; Path=/pathA',ex,at(3000))); + async.series(tasks,function(err,results) { + results = results.filter(function(e) {return e !== undefined}); + cb(err,{cj:cj, cookies:results, now:now}); + }); + }, + "all got set": function(err,t) { + assert.lengthOf(t.cookies,4); + }, + "then getting 'em back": { + topic: function(t) { + var cj = t.cj; + cj.getCookies('http://www.example.com/pathA',this.callback); + }, + "there's just three": function (err,cookies) { + var vals = cookies.map(function(c) {return c.value}); + // may break with sorting; sorting should put 3333 first due to longest path: + assert.deepEqual(vals, ['3333','1111','2222']); + } + }, + }, + "CookieJar setCookie errors": { + "public-suffix domain": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('i=9; Domain=kyoto.jp; Path=/','kyoto.jp',this.callback); + }, + "errors": function(err,cookie) { + assert.ok(err); + assert.ok(!cookie); + assert.match(err.message, /public suffix/i); + }, + }, + "wrong domain": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('j=10; Domain=google.com; Path=/','google.ca',this.callback); + }, + "errors": function(err,cookie) { + assert.ok(err); + assert.ok(!cookie); + assert.match(err.message, /not in this host's domain/i); + }, + }, + "old cookie is HttpOnly": { + topic: function() { + var cb = this.callback; + var next = function (err,c) { + return cb(err,cj); + }; + var cj = new CookieJar(); + cj.setCookie('k=11; Domain=example.ca; Path=/; HttpOnly','http://example.ca',{http:true},next); + }, + "initial cookie is set": function(err,cj) { + assert.ok(!err); + }, + "but when trying to overwrite": { + topic: function(cj) { + var cb = this.callback; + cj.setCookie('k=12; Domain=example.ca; Path=/','http://example.ca',{http:false},function(err,c) {cb(null,err)}); + }, + "it's an error": function(err) { + assert.ok(err); + }, + "then, checking the original": { + topic: function(ignored,cj) { + assert.ok(cj instanceof CookieJar); + cj.getCookies('http://example.ca',{http:true},this.callback); + }, + "cookie has original value": function(err,cookies) { + assert.equal(err,null); + assert.lengthOf(cookies, 1); + assert.equal(cookies[0].value,11); + }, + }, + }, + }, + }, +}) +.addBatch({ + "JSON": { + "serialization": { + topic: function() { + var c = Cookie.parse('alpha=beta; Domain=example.com; Path=/foo; Expires=Tue, 19 Jan 2038 03:14:07 GMT; HttpOnly'); + return JSON.stringify(c); + }, + "gives a string": function(str) { + assert.equal(typeof str, "string"); + }, + "date is in ISO format": function(str) { + assert.match(str, /"expires":"2038-01-19T03:14:07\.000Z"/, 'expires is in ISO format'); + }, + }, + "deserialization": { + topic: function() { + var json = '{"key":"alpha","value":"beta","domain":"example.com","path":"/foo","expires":"2038-01-19T03:14:07.000Z","httpOnly":true,"lastAccessed":2000000000123}'; + return Cookie.fromJSON(json); + }, + "works": function(c) { + assert.ok(c); + }, + "key": function(c) { assert.equal(c.key, "alpha") }, + "value": function(c) { assert.equal(c.value, "beta") }, + "domain": function(c) { assert.equal(c.domain, "example.com") }, + "path": function(c) { assert.equal(c.path, "/foo") }, + "httpOnly": function(c) { assert.strictEqual(c.httpOnly, true) }, + "secure": function(c) { assert.strictEqual(c.secure, false) }, + "hostOnly": function(c) { assert.strictEqual(c.hostOnly, null) }, + "expires is a date object": function(c) { + assert.equal(c.expires.getTime(), 2147483647000); + }, + "lastAccessed is a date object": function(c) { + assert.equal(c.lastAccessed.getTime(), 2000000000123); + }, + "creation defaulted": function(c) { + assert.ok(c.creation.getTime()); + } + }, + "null deserialization": { + topic: function() { + return Cookie.fromJSON(null); + }, + "is null": function(cookie) { + assert.equal(cookie,null); + }, + }, + }, + "expiry deserialization": { + "Infinity": { + topic: Cookie.fromJSON.bind(null, '{"expires":"Infinity"}'), + "is infinite": function(c) { + assert.strictEqual(c.expires, "Infinity"); + assert.equal(c.expires, Infinity); + }, + }, + }, + "maxAge serialization": { + topic: function() { + return function(toSet) { + var c = new Cookie(); + c.key = 'foo'; c.value = 'bar'; + c.setMaxAge(toSet); + return JSON.stringify(c); + }; + }, + "zero": { + topic: function(f) { return f(0) }, + "looks good": function(str) { + assert.match(str, /"maxAge":0/); + }, + }, + "Infinity": { + topic: function(f) { return f(Infinity) }, + "looks good": function(str) { + assert.match(str, /"maxAge":"Infinity"/); + }, + }, + "-Infinity": { + topic: function(f) { return f(-Infinity) }, + "looks good": function(str) { + assert.match(str, /"maxAge":"-Infinity"/); + }, + }, + "null": { + topic: function(f) { return f(null) }, + "looks good": function(str) { + assert.match(str, /"maxAge":null/); + }, + }, + }, + "maxAge deserialization": { + "number": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":123}'), + "is the number": function(c) { + assert.strictEqual(c.maxAge, 123); + }, + }, + "null": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":null}'), + "is null": function(c) { + assert.strictEqual(c.maxAge, null); + }, + }, + "less than zero": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":-123}'), + "is -123": function(c) { + assert.strictEqual(c.maxAge, -123); + }, + }, + "Infinity": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":"Infinity"}'), + "is inf-as-string": function(c) { + assert.strictEqual(c.maxAge, "Infinity"); + }, + }, + "-Infinity": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":"-Infinity"}'), + "is inf-as-string": function(c) { + assert.strictEqual(c.maxAge, "-Infinity"); + }, + }, + } +}) +.addBatch({ + "permuteDomain": { + "base case": { + topic: tough.permuteDomain.bind(null,'example.com'), + "got the domain": function(list) { + assert.deepEqual(list, ['example.com']); + }, + }, + "two levels": { + topic: tough.permuteDomain.bind(null,'foo.bar.example.com'), + "got three things": function(list) { + assert.deepEqual(list, ['example.com','bar.example.com','foo.bar.example.com']); + }, + }, + "invalid domain": { + topic: tough.permuteDomain.bind(null,'foo.bar.example.localduhmain'), + "got three things": function(list) { + assert.equal(list, null); + }, + }, + }, + "permutePath": { + "base case": { + topic: tough.permutePath.bind(null,'/'), + "just slash": function(list) { + assert.deepEqual(list,['/']); + }, + }, + "single case": { + topic: tough.permutePath.bind(null,'/foo'), + "two things": function(list) { + assert.deepEqual(list,['/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo',e)); + }); + }, + }, + "double case": { + topic: tough.permutePath.bind(null,'/foo/bar'), + "four things": function(list) { + assert.deepEqual(list,['/foo/bar','/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo/bar',e)); + }); + }, + }, + "trailing slash": { + topic: tough.permutePath.bind(null,'/foo/bar/'), + "three things": function(list) { + assert.deepEqual(list,['/foo/bar','/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo/bar/',e)); + }); + }, + }, + } +}) +.addBatch({ + "Issue 1": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('hello=world; path=/some/path/', 'http://domain/some/path/file', function(err,cookie) { + this.callback(err,{cj:cj, cookie:cookie}); + }.bind(this)); + }, + "stored a cookie": function(t) { + assert.ok(t.cookie); + }, + "cookie's path was modified to remove unnecessary slash": function(t) { + assert.equal(t.cookie.path, '/some/path'); + }, + "getting it back": { + topic: function(t) { + t.cj.getCookies('http://domain/some/path/file', function(err,cookies) { + this.callback(err, {cj:t.cj, cookies:cookies||[]}); + }.bind(this)); + }, + "got one cookie": function(t) { + assert.lengthOf(t.cookies, 1); + }, + "it's the right one": function(t) { + var c = t.cookies[0]; + assert.equal(c.key, 'hello'); + assert.equal(c.value, 'world'); + }, + } + } +}) +.addBatch({ + "expiry option": { + topic: function() { + var cb = this.callback; + var cj = new CookieJar(); + cj.setCookie('near=expiry; Domain=example.com; Path=/; Max-Age=1','http://www.example.com',at(-1), function(err,cookie) { + + cb(err, {cj:cj, cookie:cookie}); + }); + }, + "set the cookie": function(t) { + assert.ok(t.cookie, "didn't set?!"); + assert.equal(t.cookie.key, 'near'); + }, + "then, retrieving": { + topic: function(t) { + var cb = this.callback; + setTimeout(function() { + t.cj.getCookies('http://www.example.com', {http:true, expire:false}, function(err,cookies) { + t.cookies = cookies; + cb(err,t); + }); + },2000); + }, + "got the cookie": function(t) { + assert.lengthOf(t.cookies, 1); + assert.equal(t.cookies[0].key, 'near'); + }, + } + } +}) +.addBatch({ + "trailing semi-colon set into cj": { + topic: function () { + var cb = this.callback; + var cj = new CookieJar(); + var ex = 'http://www.example.com'; + var tasks = []; + tasks.push(function(next) { + cj.setCookie('broken_path=testme; path=/;',ex,at(-1),next); + }); + tasks.push(function(next) { + cj.setCookie('b=2; Path=/;;;;',ex,at(-1),next); + }); + async.parallel(tasks, function (err, cookies) { + cb(null, { + cj: cj, + cookies: cookies + }); + }); + }, + "check number of cookies": function (t) { + assert.lengthOf(t.cookies, 2, "didn't set"); + }, + "check *broken_path* was set properly": function (t) { + assert.equal(t.cookies[0].key, "broken_path"); + assert.equal(t.cookies[0].value, "testme"); + assert.equal(t.cookies[0].path, "/"); + }, + "check *b* was set properly": function (t) { + assert.equal(t.cookies[1].key, "b"); + assert.equal(t.cookies[1].value, "2"); + assert.equal(t.cookies[1].path, "/"); + }, + "retrieve the cookie": { + topic: function (t) { + var cb = this.callback; + t.cj.getCookies('http://www.example.com', {}, function (err, cookies) { + t.cookies = cookies; + cb(err, t); + }); + }, + "get the cookie": function(t) { + assert.lengthOf(t.cookies, 2); + assert.equal(t.cookies[0].key, 'broken_path'); + assert.equal(t.cookies[0].value, 'testme'); + assert.equal(t.cookies[1].key, "b"); + assert.equal(t.cookies[1].value, "2"); + assert.equal(t.cookies[1].path, "/"); + }, + }, + } +}) +.addBatch({ + "Constructor":{ + topic: function () { + return new Cookie({ + key: 'test', + value: 'b', + maxAge: 60 + }); + }, + 'check for key property': function (c) { + assert.ok(c); + assert.equal(c.key, 'test'); + }, + 'check for value property': function (c) { + assert.equal(c.value, 'b'); + }, + 'check for maxAge': function (c) { + assert.equal(c.maxAge, 60); + }, + 'check for default values for unspecified properties': function (c) { + assert.equal(c.expires, "Infinity"); + assert.equal(c.secure, false); + assert.equal(c.httpOnly, false); + } + } +}) +.addBatch({ + "allPaths option": { + topic: function() { + var cj = new CookieJar(); + var tasks = []; + tasks.push(cj.setCookie.bind(cj, 'nopath_dom=qq; Path=/; Domain=example.com', 'http://example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'path_dom=qq; Path=/foo; Domain=example.com', 'http://example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'nopath_host=qq; Path=/', 'http://www.example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'path_host=qq; Path=/foo', 'http://www.example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'other=qq; Path=/', 'http://other.example.com/', {})); + tasks.push(cj.setCookie.bind(cj, 'other2=qq; Path=/foo', 'http://other.example.com/foo', {})); + var cb = this.callback; + async.parallel(tasks, function(err,results) { + cb(err, {cj:cj, cookies: results}); + }); + }, + "all set": function(t) { + assert.equal(t.cookies.length, 6); + assert.ok(t.cookies.every(function(c) { return !!c })); + }, + "getting without allPaths": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/', {}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found just two cookies": function(t) { + assert.equal(t.cookies.length, 2); + }, + "all are path=/": function(t) { + assert.ok(t.cookies.every(function(c) { return c.path === '/' })); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + "getting without allPaths for /foo": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/foo', {}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found four cookies": function(t) { + assert.equal(t.cookies.length, 4); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + "getting with allPaths:true": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/', {allPaths:true}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found four cookies": function(t) { + assert.equal(t.cookies.length, 4); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + } +}) +.export(module); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE @@ -0,0 +1,55 @@ +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +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 + +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 \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md new file mode 100644 index 00000000..bb533d56 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md @@ -0,0 +1,4 @@ +tunnel-agent +============ + +HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js new file mode 100644 index 00000000..3f7bbb90 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js @@ -0,0 +1,227 @@ +'use strict' + +var net = require('net') + , tls = require('tls') + , http = require('http') + , https = require('https') + , events = require('events') + , assert = require('assert') + , util = require('util') + ; + +exports.httpOverHttp = httpOverHttp +exports.httpsOverHttp = httpsOverHttp +exports.httpOverHttps = httpOverHttps +exports.httpsOverHttps = httpsOverHttps + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + return agent +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + agent.createSocket = createSecureSocket + return agent +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + return agent +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + agent.createSocket = createSecureSocket + return agent +} + + +function TunnelingAgent(options) { + var self = this + self.options = options || {} + self.proxyOptions = self.options.proxy || {} + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets + self.requests = [] + self.sockets = [] + + self.on('free', function onFree(socket, host, port) { + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i] + if (pending.host === host && pending.port === port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1) + pending.request.onSocket(socket) + return + } + } + socket.destroy() + self.removeSocket(socket) + }) +} +util.inherits(TunnelingAgent, events.EventEmitter) + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port) { + var self = this + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push({host: host, port: port, request: req}) + return + } + + // If we are under maxSockets create a new one. + self.createSocket({host: host, port: port, request: req}, function(socket) { + socket.on('free', onFree) + socket.on('close', onCloseOrRemove) + socket.on('agentRemove', onCloseOrRemove) + req.onSocket(socket) + + function onFree() { + self.emit('free', socket, host, port) + } + + function onCloseOrRemove(err) { + self.removeSocket() + socket.removeListener('free', onFree) + socket.removeListener('close', onCloseOrRemove) + socket.removeListener('agentRemove', onCloseOrRemove) + } + }) +} + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this + var placeholder = {} + self.sockets.push(placeholder) + + var connectOptions = mergeOptions({}, self.proxyOptions, + { method: 'CONNECT' + , path: options.host + ':' + options.port + , agent: false + } + ) + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {} + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64') + } + + debug('making CONNECT request') + var connectReq = self.request(connectOptions) + connectReq.useChunkedEncodingByDefault = false // for v0.6 + connectReq.once('response', onResponse) // for v0.6 + connectReq.once('upgrade', onUpgrade) // for v0.6 + connectReq.once('connect', onConnect) // for v0.7 or later + connectReq.once('error', onError) + connectReq.end() + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head) + }) + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners() + socket.removeAllListeners() + + if (res.statusCode === 200) { + assert.equal(head.length, 0) + debug('tunneling connection has established') + self.sockets[self.sockets.indexOf(placeholder)] = socket + cb(socket) + } else { + debug('tunneling socket could not be established, statusCode=%d', res.statusCode) + var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } + } + + function onError(cause) { + connectReq.removeAllListeners() + + debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack) + var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } +} + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) return + + this.sockets.splice(pos, 1) + + var pending = this.requests.shift() + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket) + }) + } +} + +function createSecureSocket(options, cb) { + var self = this + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, mergeOptions({}, self.options, + { servername: options.host + , socket: socket + } + )) + cb(secureSocket) + }) +} + + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i] + if (typeof overrides === 'object') { + var keys = Object.keys(overrides) + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j] + if (overrides[k] !== undefined) { + target[k] = overrides[k] + } + } + } + } + return target +} + + +var debug +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments) + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0] + } else { + args.unshift('TUNNEL:') + } + console.error.apply(console, args) + } +} else { + debug = function() {} +} +exports.debug = debug // for test diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json new file mode 100644 index 00000000..acfa6e1c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json @@ -0,0 +1,32 @@ +{ + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "name": "tunnel-agent", + "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", + "version": "0.3.0", + "repository": { + "url": "https://github.com/mikeal/tunnel-agent" + }, + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "readme": "tunnel-agent\n============\n\nHTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/mikeal/tunnel-agent/issues" + }, + "homepage": "https://github.com/mikeal/tunnel-agent", + "_id": "tunnel-agent@0.3.0", + "dist": { + "shasum": "ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + }, + "_from": "tunnel-agent@~0.3.0", + "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json new file mode 100755 index 00000000..57c99c02 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json @@ -0,0 +1,61 @@ +{ + "name": "request", + "description": "Simplified HTTP request client.", + "tags": [ + "http", + "simple", + "util", + "utility" + ], + "version": "2.31.0", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com" + }, + "repository": { + "type": "git", + "url": "http://github.com/mikeal/request.git" + }, + "bugs": { + "url": "http://github.com/mikeal/request/issues" + }, + "engines": [ + "node >= 0.8.0" + ], + "main": "index.js", + "dependencies": { + "qs": "~0.6.0", + "json-stringify-safe": "~5.0.0", + "forever-agent": "~0.5.0", + "node-uuid": "~1.4.0", + "mime": "~1.2.9", + "tough-cookie": "~0.9.15", + "form-data": "~0.1.0", + "tunnel-agent": "~0.3.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "hawk": "~1.0.0", + "aws-sign2": "~0.5.0" + }, + "optionalDependencies": { + "tough-cookie": "~0.9.15", + "form-data": "~0.1.0", + "tunnel-agent": "~0.3.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "hawk": "~1.0.0", + "aws-sign2": "~0.5.0" + }, + "scripts": { + "test": "node tests/run.js" + }, + "readme": "# Request -- Simplified HTTP client\n\n[![NPM](https://nodei.co/npm/request.png)](https://nodei.co/npm/request/)\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require('request');\nrequest('http://www.google.com', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Print the google web page.\n }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one).\n\n```javascript\nfs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json'))\n```\n\nRequest can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers.\n\n```javascript\nrequest.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))\n```\n\nNow let’s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n if (req.method === 'PUT') {\n req.pipe(request.put('http://mysite.com/doodle.png'))\n } else if (req.method === 'GET' || req.method === 'HEAD') {\n request.get('http://mysite.com/doodle.png').pipe(resp)\n }\n }\n})\n```\n\nYou can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don't really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n var x = request('http://mysite.com/doodle.png')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :)\n\n```javascript\nreq.pipe(request('http://mysite.com/doodle.png')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({'proxy':'http://localproxy.com'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n r.get('http://google.com/doodle.png').pipe(resp)\n }\n})\n```\n\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nURL-encoded forms are simple.\n\n```javascript\nrequest.post('http://service.com/upload', {form:{key:'value'}})\n// or\nrequest.post('http://service.com/upload').form({key:'value'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don’t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post('http://service.com/upload')\nvar form = r.form()\nform.append('my_field', 'my_value')\nform.append('my_buffer', new Buffer([1, 2, 3]))\nform.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png'))\nform.append('remote_file', request('http://google.com/doodle.png'))\n```\n\n## HTTP Authentication\n\n```javascript\nrequest.get('http://some.server.com/').auth('username', 'password', false);\n// or\nrequest.get('http://some.server.com/', {\n 'auth': {\n 'user': 'username',\n 'pass': 'password',\n 'sendImmediately': false\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`.\n\n`sendImmediately` defaults to `true`, which causes a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a `401` response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method).\n\nDigest authentication is supported, but it only works with `sendImmediately` set to `false`; otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail.\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require('querystring')\n , oauth =\n { callback: 'http://mysite.com/callback/'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = 'https://api.twitter.com/oauth/request_token'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has\n // verified with twitter that they are authorizing your app.\n var access_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: access_token.oauth_token\n , verifier: access_token.oauth_verifier\n }\n , url = 'https://api.twitter.com/oauth/access_token'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n var perm_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_token.oauth_token\n , token_secret: perm_token.oauth_token_secret\n }\n , url = 'https://api.twitter.com/1.1/users/show.json?'\n , params =\n { screen_name: perm_token.screen_name\n , user_id: perm_token.user_id\n }\n ;\n url += qs.stringify(params)\n request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\n### Custom HTTP Headers\n\nHTTP Headers, such as `User-Agent`, can be set in the `options` object.\nIn the example below, we call the github API to find out the number\nof stars and forks for the request repository. This requires a\ncustom `User-Agent` header as well as https.\n\n```javascript\nvar request = require('request');\n\nvar options = {\n\turl: 'https://api.github.com/repos/mikeal/request',\n\theaders: {\n\t\t'User-Agent': 'request'\n\t}\n};\n\nfunction callback(error, response, body) {\n\tif (!error && response.statusCode == 200) {\n\t\tvar info = JSON.parse(body);\n\t\tconsole.log(info.stargazers_count + \" Stars\");\n\t\tconsole.log(info.forks_count + \" Forks\");\n\t}\n}\n\nrequest(options, callback);\n```\n\n### request(options, callback)\n\nThe first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n* `qs` - object containing querystring values to be appended to the `uri`\n* `method` - http method (default: `\"GET\"`)\n* `headers` - http headers (default: `{}`)\n* `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer` or `String`.\n* `form` - when passed an object, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no options, a `FormData` instance is returned (and is piped to request).\n* `auth` - A hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). See documentation above.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`)\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`)\n* `maxRedirects` - the maximum number of redirects to follow (default: `10`)\n* `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`.\n* `pool` - A hash object containing the agents for these requests. If omitted, the request will use the global pool (which is set to node's default `maxSockets`)\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\n* `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`)\n* `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above.\n* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n* `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option.\n* `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section)\n* `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services)\n* `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent's library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n* `localAddress` - Local interface to bind for network connections.\n\n\nThe callback argument gets 3 arguments: \n\n1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object)\n2. An [`http.IncomingMessage`](http://nodejs.org/api/http.html#http_http_incomingmessage) object\n3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied)\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options)\n\nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as `request()`, but defaults to `method: \"PUT\"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.patch\n\nSame as `request()`, but defaults to `method: \"PATCH\"`.\n\n```javascript\nrequest.patch(url)\n```\n\n### request.post\n\nSame as `request()`, but defaults to `method: \"POST\"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: \"HEAD\"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as `request()`, but defaults to `method: \"DELETE\"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nSame as `request()` (for uniformity).\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie('cookie_string_here')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n var request = require('request')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: 'PUT'\n , uri: 'http://mikeal.iriscouch.com/testjs/' + rand\n , multipart:\n [ { 'content-type': 'application/json'\n , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})\n }\n , { body: 'I am an attachment' }\n ]\n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand)\n } else {\n console.log('error: '+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\n\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`).\n\n```javascript\nvar request = request.defaults({jar: true})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\n\nTo use a custom cookie jar (instead `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`)\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\nOR\n\nNote that `setCookie` requires at least three parameters, and the last is required to be a callback.\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie('your_cookie_here')\nj.setCookie(cookie, uri, function (err, cookie){})\nrequest({url: 'http://www.google.com', jar: j}, function () {\n request('http://images.google.com')\n})\n```\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/mikeal/request", + "_id": "request@2.31.0", + "dist": { + "shasum": "4c8ac967c9a4b9410cb4ba1a61fdb644267eeeff" + }, + "_from": "request@~2.31.0", + "_resolved": "https://registry.npmjs.org/request/-/request-2.31.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js new file mode 100644 index 00000000..3c03c47d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js @@ -0,0 +1,1260 @@ +var optional = require('./lib/optional') + , http = require('http') + , https = optional('https') + , tls = optional('tls') + , url = require('url') + , util = require('util') + , stream = require('stream') + , qs = require('qs') + , querystring = require('querystring') + , crypto = require('crypto') + + , oauth = optional('oauth-sign') + , hawk = optional('hawk') + , aws = optional('aws-sign') + , httpSignature = optional('http-signature') + , uuid = require('node-uuid') + , mime = require('mime') + , tunnel = optional('tunnel-agent') + , _safeStringify = require('json-stringify-safe') + + , ForeverAgent = require('forever-agent') + , FormData = optional('form-data') + + , Cookie = optional('tough-cookie') + , CookieJar = Cookie && Cookie.CookieJar + , cookieJar = CookieJar && new CookieJar + + , copy = require('./lib/copy') + , debug = require('./lib/debug') + , getSafe = require('./lib/getSafe') + ; + +function safeStringify (obj) { + var ret + try { ret = JSON.stringify(obj) } + catch (e) { ret = _safeStringify(obj) } + return ret +} + +var globalPool = {} +var isUrl = /^https?:/i + + +// Hacky fix for pre-0.4.4 https +if (https && !https.Agent) { + https.Agent = function (options) { + http.Agent.call(this, options) + } + util.inherits(https.Agent, http.Agent) + https.Agent.prototype._getConnection = function (host, port, cb) { + var s = tls.connect(port, host, this.options, function () { + // do other checks here? + if (cb) cb() + }) + return s + } +} + +function isReadStream (rs) { + if (rs.readable && rs.path && rs.mode) { + return true + } +} + +function toBase64 (str) { + return (new Buffer(str || "", "ascii")).toString("base64") +} + +function md5 (str) { + return crypto.createHash('md5').update(str).digest('hex') +} + +function Request (options) { + stream.Stream.call(this) + this.readable = true + this.writable = true + + if (typeof options === 'string') { + options = {uri:options} + } + + var reserved = Object.keys(Request.prototype) + for (var i in options) { + if (reserved.indexOf(i) === -1) { + this[i] = options[i] + } else { + if (typeof options[i] === 'function') { + delete options[i] + } + } + } + + if (options.method) { + this.explicitMethod = true + } + + this.canTunnel = options.tunnel !== false && tunnel; + + this.init(options) +} +util.inherits(Request, stream.Stream) +Request.prototype.init = function (options) { + // init() contains all the code to setup the request object. + // the actual outgoing request is not started until start() is called + // this function is called from both the constructor and on redirect. + var self = this + if (!options) options = {} + + if (!self.method) self.method = options.method || 'GET' + self.localAddress = options.localAddress + + debug(options) + if (!self.pool && self.pool !== false) self.pool = globalPool + self.dests = self.dests || [] + self.__isRequestRequest = true + + // Protect against double callback + if (!self._callback && self.callback) { + self._callback = self.callback + self.callback = function () { + if (self._callbackCalled) return // Print a warning maybe? + self._callbackCalled = true + self._callback.apply(self, arguments) + } + self.on('error', self.callback.bind()) + self.on('complete', self.callback.bind(self, null)) + } + + if (self.url && !self.uri) { + // People use this property instead all the time so why not just support it. + self.uri = self.url + delete self.url + } + + if (!self.uri) { + // this will throw if unhandled but is handleable when in a redirect + return self.emit('error', new Error("options.uri is a required argument")) + } else { + if (typeof self.uri == "string") self.uri = url.parse(self.uri) + } + + if (self.strictSSL === false) { + self.rejectUnauthorized = false + } + + if (self.proxy) { + if (typeof self.proxy == 'string') self.proxy = url.parse(self.proxy) + + // do the HTTP CONNECT dance using koichik/node-tunnel + if (http.globalAgent && self.uri.protocol === "https:" && self.canTunnel) { + var tunnelFn = self.proxy.protocol === "http:" + ? tunnel.httpsOverHttp : tunnel.httpsOverHttps + + var tunnelOptions = { proxy: { host: self.proxy.hostname + , port: +self.proxy.port + , proxyAuth: self.proxy.auth + , headers: { Host: self.uri.hostname + ':' + + (self.uri.port || self.uri.protocol === 'https:' ? 443 : 80) }} + , rejectUnauthorized: self.rejectUnauthorized + , ca: this.ca } + + self.agent = tunnelFn(tunnelOptions) + self.tunnel = true + } + } + + if (!self.uri.pathname) {self.uri.pathname = '/'} + + if (!self.uri.host) { + // Invalid URI: it may generate lot of bad errors, like "TypeError: Cannot call method 'indexOf' of undefined" in CookieJar + // Detect and reject it as soon as possible + var faultyUri = url.format(self.uri) + var message = 'Invalid URI "' + faultyUri + '"' + if (Object.keys(options).length === 0) { + // No option ? This can be the sign of a redirect + // As this is a case where the user cannot do anything (they didn't call request directly with this URL) + // they should be warned that it can be caused by a redirection (can save some hair) + message += '. This can be caused by a crappy redirection.' + } + self.emit('error', new Error(message)) + return // This error was fatal + } + + self._redirectsFollowed = self._redirectsFollowed || 0 + self.maxRedirects = (self.maxRedirects !== undefined) ? self.maxRedirects : 10 + self.followRedirect = (self.followRedirect !== undefined) ? self.followRedirect : true + self.followAllRedirects = (self.followAllRedirects !== undefined) ? self.followAllRedirects : false + if (self.followRedirect || self.followAllRedirects) + self.redirects = self.redirects || [] + + self.headers = self.headers ? copy(self.headers) : {} + + self.setHost = false + if (!self.hasHeader('host')) { + self.setHeader('host', self.uri.hostname) + if (self.uri.port) { + if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && + !(self.uri.port === 443 && self.uri.protocol === 'https:') ) + self.setHeader('host', self.getHeader('host') + (':'+self.uri.port) ) + } + self.setHost = true + } + + self.jar(self._jar || options.jar) + + if (!self.uri.port) { + if (self.uri.protocol == 'http:') {self.uri.port = 80} + else if (self.uri.protocol == 'https:') {self.uri.port = 443} + } + + if (self.proxy && !self.tunnel) { + self.port = self.proxy.port + self.host = self.proxy.hostname + } else { + self.port = self.uri.port + self.host = self.uri.hostname + } + + self.clientErrorHandler = function (error) { + if (self._aborted) return + if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' + && self.agent.addRequestNoreuse) { + self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } + self.start() + self.req.end() + return + } + if (self.timeout && self.timeoutTimer) { + clearTimeout(self.timeoutTimer) + self.timeoutTimer = null + } + self.emit('error', error) + } + + self._parserErrorHandler = function (error) { + if (this.res) { + if (this.res.request) { + this.res.request.emit('error', error) + } else { + this.res.emit('error', error) + } + } else { + this._httpMessage.emit('error', error) + } + } + + if (options.form) { + self.form(options.form) + } + + if (options.qs) self.qs(options.qs) + + if (self.uri.path) { + self.path = self.uri.path + } else { + self.path = self.uri.pathname + (self.uri.search || "") + } + + if (self.path.length === 0) self.path = '/' + + + // Auth must happen last in case signing is dependent on other headers + if (options.oauth) { + self.oauth(options.oauth) + } + + if (options.aws) { + self.aws(options.aws) + } + + if (options.hawk) { + self.hawk(options.hawk) + } + + if (options.httpSignature) { + self.httpSignature(options.httpSignature) + } + + if (options.auth) { + if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) options.auth.user = options.auth.username + if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) options.auth.pass = options.auth.password + + self.auth( + options.auth.user, + options.auth.pass, + options.auth.sendImmediately + ) + } + + if (self.uri.auth && !self.hasHeader('authorization')) { + var authPieces = self.uri.auth.split(':').map(function(item){ return querystring.unescape(item) }) + self.auth(authPieces[0], authPieces.slice(1).join(':'), true) + } + if (self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization') && !self.tunnel) { + self.setHeader('proxy-authorization', "Basic " + toBase64(self.proxy.auth.split(':').map(function(item){ return querystring.unescape(item)}).join(':'))) + } + + + if (self.proxy && !self.tunnel) self.path = (self.uri.protocol + '//' + self.uri.host + self.path) + + if (options.json) { + self.json(options.json) + } else if (options.multipart) { + self.boundary = uuid() + self.multipart(options.multipart) + } + + if (self.body) { + var length = 0 + if (!Buffer.isBuffer(self.body)) { + if (Array.isArray(self.body)) { + for (var i = 0; i < self.body.length; i++) { + length += self.body[i].length + } + } else { + self.body = new Buffer(self.body) + length = self.body.length + } + } else { + length = self.body.length + } + if (length) { + if (!self.hasHeader('content-length')) self.setHeader('content-length', length) + } else { + throw new Error('Argument error, options.body.') + } + } + + var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol + , defaultModules = {'http:':http, 'https:':https} + , httpModules = self.httpModules || {} + ; + self.httpModule = httpModules[protocol] || defaultModules[protocol] + + if (!self.httpModule) return this.emit('error', new Error("Invalid protocol")) + + if (options.ca) self.ca = options.ca + + if (!self.agent) { + if (options.agentOptions) self.agentOptions = options.agentOptions + + if (options.agentClass) { + self.agentClass = options.agentClass + } else if (options.forever) { + self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL + } else { + self.agentClass = self.httpModule.Agent + } + } + + if (self.pool === false) { + self.agent = false + } else { + self.agent = self.agent || self.getAgent() + if (self.maxSockets) { + // Don't use our pooling if node has the refactored client + self.agent.maxSockets = self.maxSockets + } + if (self.pool.maxSockets) { + // Don't use our pooling if node has the refactored client + self.agent.maxSockets = self.pool.maxSockets + } + } + + self.on('pipe', function (src) { + if (self.ntick && self._started) throw new Error("You cannot pipe to this stream after the outbound request has started.") + self.src = src + if (isReadStream(src)) { + if (!self.hasHeader('content-type')) self.setHeader('content-type', mime.lookup(src.path)) + } else { + if (src.headers) { + for (var i in src.headers) { + if (!self.hasHeader(i)) { + self.setHeader(i, src.headers[i]) + } + } + } + if (self._json && !self.hasHeader('content-type')) + self.setHeader('content-type', 'application/json') + if (src.method && !self.explicitMethod) { + self.method = src.method + } + } + + // self.on('pipe', function () { + // console.error("You have already piped to this stream. Pipeing twice is likely to break the request.") + // }) + }) + + process.nextTick(function () { + if (self._aborted) return + + if (self._form) { + self.setHeaders(self._form.getHeaders()) + self._form.pipe(self) + } + if (self.body) { + if (Array.isArray(self.body)) { + self.body.forEach(function (part) { + self.write(part) + }) + } else { + self.write(self.body) + } + self.end() + } else if (self.requestBodyStream) { + console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe.") + self.requestBodyStream.pipe(self) + } else if (!self.src) { + if (self.method !== 'GET' && typeof self.method !== 'undefined') { + self.setHeader('content-length', 0) + } + self.end() + } + self.ntick = true + }) +} + +// Must call this when following a redirect from https to http or vice versa +// Attempts to keep everything as identical as possible, but update the +// httpModule, Tunneling agent, and/or Forever Agent in use. +Request.prototype._updateProtocol = function () { + var self = this + var protocol = self.uri.protocol + + if (protocol === 'https:') { + // previously was doing http, now doing https + // if it's https, then we might need to tunnel now. + if (self.proxy && self.canTunnel) { + self.tunnel = true + var tunnelFn = self.proxy.protocol === 'http:' + ? tunnel.httpsOverHttp : tunnel.httpsOverHttps + var tunnelOptions = { proxy: { host: self.proxy.hostname + , port: +self.proxy.port + , proxyAuth: self.proxy.auth } + , rejectUnauthorized: self.rejectUnauthorized + , ca: self.ca } + self.agent = tunnelFn(tunnelOptions) + return + } + + self.httpModule = https + switch (self.agentClass) { + case ForeverAgent: + self.agentClass = ForeverAgent.SSL + break + case http.Agent: + self.agentClass = https.Agent + break + default: + // nothing we can do. Just hope for the best. + return + } + + // if there's an agent, we need to get a new one. + if (self.agent) self.agent = self.getAgent() + + } else { + // previously was doing https, now doing http + // stop any tunneling. + if (self.tunnel) self.tunnel = false + self.httpModule = http + switch (self.agentClass) { + case ForeverAgent.SSL: + self.agentClass = ForeverAgent + break + case https.Agent: + self.agentClass = http.Agent + break + default: + // nothing we can do. just hope for the best + return + } + + // if there's an agent, then get a new one. + if (self.agent) { + self.agent = null + self.agent = self.getAgent() + } + } +} + +Request.prototype.getAgent = function () { + var Agent = this.agentClass + var options = {} + if (this.agentOptions) { + for (var i in this.agentOptions) { + options[i] = this.agentOptions[i] + } + } + if (this.ca) options.ca = this.ca + if (this.ciphers) options.ciphers = this.ciphers + if (this.secureProtocol) options.secureProtocol = this.secureProtocol + if (typeof this.rejectUnauthorized !== 'undefined') options.rejectUnauthorized = this.rejectUnauthorized + + if (this.cert && this.key) { + options.key = this.key + options.cert = this.cert + } + + var poolKey = '' + + // different types of agents are in different pools + if (Agent !== this.httpModule.Agent) { + poolKey += Agent.name + } + + if (!this.httpModule.globalAgent) { + // node 0.4.x + options.host = this.host + options.port = this.port + if (poolKey) poolKey += ':' + poolKey += this.host + ':' + this.port + } + + // ca option is only relevant if proxy or destination are https + var proxy = this.proxy + if (typeof proxy === 'string') proxy = url.parse(proxy) + var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:' + if (isHttps) { + if (options.ca) { + if (poolKey) poolKey += ':' + poolKey += options.ca + } + + if (typeof options.rejectUnauthorized !== 'undefined') { + if (poolKey) poolKey += ':' + poolKey += options.rejectUnauthorized + } + + if (options.cert) + poolKey += options.cert.toString('ascii') + options.key.toString('ascii') + + if (options.ciphers) { + if (poolKey) poolKey += ':' + poolKey += options.ciphers + } + + if (options.secureProtocol) { + if (poolKey) poolKey += ':' + poolKey += options.secureProtocol + } + } + + if (this.pool === globalPool && !poolKey && Object.keys(options).length === 0 && this.httpModule.globalAgent) { + // not doing anything special. Use the globalAgent + return this.httpModule.globalAgent + } + + // we're using a stored agent. Make sure it's protocol-specific + poolKey = this.uri.protocol + poolKey + + // already generated an agent for this setting + if (this.pool[poolKey]) return this.pool[poolKey] + + return this.pool[poolKey] = new Agent(options) +} + +Request.prototype.start = function () { + // start() is called once we are ready to send the outgoing HTTP request. + // this is usually called on the first write(), end() or on nextTick() + var self = this + + if (self._aborted) return + + self._started = true + self.method = self.method || 'GET' + self.href = self.uri.href + + if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) { + self.setHeader('content-length', self.src.stat.size) + } + if (self._aws) { + self.aws(self._aws, true) + } + + // We have a method named auth, which is completely different from the http.request + // auth option. If we don't remove it, we're gonna have a bad time. + var reqOptions = copy(self) + delete reqOptions.auth + + debug('make request', self.uri.href) + self.req = self.httpModule.request(reqOptions, self.onResponse.bind(self)) + + if (self.timeout && !self.timeoutTimer) { + self.timeoutTimer = setTimeout(function () { + self.req.abort() + var e = new Error("ETIMEDOUT") + e.code = "ETIMEDOUT" + self.emit("error", e) + }, self.timeout) + + // Set additional timeout on socket - in case if remote + // server freeze after sending headers + if (self.req.setTimeout) { // only works on node 0.6+ + self.req.setTimeout(self.timeout, function () { + if (self.req) { + self.req.abort() + var e = new Error("ESOCKETTIMEDOUT") + e.code = "ESOCKETTIMEDOUT" + self.emit("error", e) + } + }) + } + } + + self.req.on('error', self.clientErrorHandler) + self.req.on('drain', function() { + self.emit('drain') + }) + self.on('end', function() { + if ( self.req.connection ) self.req.connection.removeListener('error', self._parserErrorHandler) + }) + self.emit('request', self.req) +} +Request.prototype.onResponse = function (response) { + var self = this + debug('onResponse', self.uri.href, response.statusCode, response.headers) + response.on('end', function() { + debug('response end', self.uri.href, response.statusCode, response.headers) + }); + + if (response.connection.listeners('error').indexOf(self._parserErrorHandler) === -1) { + response.connection.once('error', self._parserErrorHandler) + } + if (self._aborted) { + debug('aborted', self.uri.href) + response.resume() + return + } + if (self._paused) response.pause() + else response.resume() + + self.response = response + response.request = self + response.toJSON = toJSON + + // XXX This is different on 0.10, because SSL is strict by default + if (self.httpModule === https && + self.strictSSL && + !response.client.authorized) { + debug('strict ssl error', self.uri.href) + var sslErr = response.client.authorizationError + self.emit('error', new Error('SSL Error: '+ sslErr)) + return + } + + if (self.setHost && self.hasHeader('host')) delete self.headers[self.hasHeader('host')] + if (self.timeout && self.timeoutTimer) { + clearTimeout(self.timeoutTimer) + self.timeoutTimer = null + } + + var addCookie = function (cookie) { + if (self._jar){ + var targetCookieJar = self._jar.setCookie?self._jar:cookieJar; + + //set the cookie if it's domain in the href's domain. + targetCookieJar.setCookie(cookie, self.uri.href, function(err){ + if (err){ + console.warn('set cookie failed,'+ err) + } + }) + } + + } + + if (hasHeader('set-cookie', response.headers) && (!self._disableCookies)) { + var headerName = hasHeader('set-cookie', response.headers) + if (Array.isArray(response.headers[headerName])) response.headers[headerName].forEach(addCookie) + else addCookie(response.headers[headerName]) + } + + var redirectTo = null + if (response.statusCode >= 300 && response.statusCode < 400 && hasHeader('location', response.headers)) { + var location = response.headers[hasHeader('location', response.headers)] + debug('redirect', location) + + if (self.followAllRedirects) { + redirectTo = location + } else if (self.followRedirect) { + switch (self.method) { + case 'PATCH': + case 'PUT': + case 'POST': + case 'DELETE': + // Do not follow redirects + break + default: + redirectTo = location + break + } + } + } else if (response.statusCode == 401 && self._hasAuth && !self._sentAuth) { + var authHeader = response.headers[hasHeader('www-authenticate', response.headers)] + var authVerb = authHeader && authHeader.split(' ')[0] + debug('reauth', authVerb) + + switch (authVerb) { + case 'Basic': + self.auth(self._user, self._pass, true) + redirectTo = self.uri + break + + case 'Digest': + // TODO: More complete implementation of RFC 2617. + // - check challenge.algorithm + // - support algorithm="MD5-sess" + // - handle challenge.domain + // - support qop="auth-int" only + // - handle Authentication-Info (not necessarily?) + // - check challenge.stale (not necessarily?) + // - increase nc (not necessarily?) + // For reference: + // http://tools.ietf.org/html/rfc2617#section-3 + // https://github.com/bagder/curl/blob/master/lib/http_digest.c + + var challenge = {} + var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi + for (;;) { + var match = re.exec(authHeader) + if (!match) break + challenge[match[1]] = match[2] || match[3]; + } + + var ha1 = md5(self._user + ':' + challenge.realm + ':' + self._pass) + var ha2 = md5(self.method + ':' + self.uri.path) + var qop = /(^|,)\s*auth\s*($|,)/.test(challenge.qop) && 'auth' + var nc = qop && '00000001' + var cnonce = qop && uuid().replace(/-/g, '') + var digestResponse = qop ? md5(ha1 + ':' + challenge.nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2) : md5(ha1 + ':' + challenge.nonce + ':' + ha2) + var authValues = { + username: self._user, + realm: challenge.realm, + nonce: challenge.nonce, + uri: self.uri.path, + qop: qop, + response: digestResponse, + nc: nc, + cnonce: cnonce, + algorithm: challenge.algorithm, + opaque: challenge.opaque + } + + authHeader = [] + for (var k in authValues) { + if (!authValues[k]) { + //ignore + } else if (k === 'qop' || k === 'nc' || k === 'algorithm') { + authHeader.push(k + '=' + authValues[k]) + } else { + authHeader.push(k + '="' + authValues[k] + '"') + } + } + authHeader = 'Digest ' + authHeader.join(', ') + self.setHeader('authorization', authHeader) + self._sentAuth = true + + redirectTo = self.uri + break + } + } + + if (redirectTo) { + debug('redirect to', redirectTo) + + // ignore any potential response body. it cannot possibly be useful + // to us at this point. + if (self._paused) response.resume() + + if (self._redirectsFollowed >= self.maxRedirects) { + self.emit('error', new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+self.uri.href)) + return + } + self._redirectsFollowed += 1 + + if (!isUrl.test(redirectTo)) { + redirectTo = url.resolve(self.uri.href, redirectTo) + } + + var uriPrev = self.uri + self.uri = url.parse(redirectTo) + + // handle the case where we change protocol from https to http or vice versa + if (self.uri.protocol !== uriPrev.protocol) { + self._updateProtocol() + } + + self.redirects.push( + { statusCode : response.statusCode + , redirectUri: redirectTo + } + ) + if (self.followAllRedirects && response.statusCode != 401) self.method = 'GET' + // self.method = 'GET' // Force all redirects to use GET || commented out fixes #215 + delete self.src + delete self.req + delete self.agent + delete self._started + if (response.statusCode != 401) { + // Remove parameters from the previous response, unless this is the second request + // for a server that requires digest authentication. + delete self.body + delete self._form + if (self.headers) { + if (self.hasHeader('host')) delete self.headers[self.hasHeader('host')] + if (self.hasHeader('content-type')) delete self.headers[self.hasHeader('content-type')] + if (self.hasHeader('content-length')) delete self.headers[self.hasHeader('content-length')] + } + } + + self.emit('redirect'); + + self.init() + return // Ignore the rest of the response + } else { + self._redirectsFollowed = self._redirectsFollowed || 0 + // Be a good stream and emit end when the response is finished. + // Hack to emit end on close because of a core bug that never fires end + response.on('close', function () { + if (!self._ended) self.response.emit('end') + }) + + if (self.encoding) { + if (self.dests.length !== 0) { + console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.") + } else { + response.setEncoding(self.encoding) + } + } + + self.emit('response', response) + + self.dests.forEach(function (dest) { + self.pipeDest(dest) + }) + + response.on("data", function (chunk) { + self._destdata = true + self.emit("data", chunk) + }) + response.on("end", function (chunk) { + self._ended = true + self.emit("end", chunk) + }) + response.on("close", function () {self.emit("close")}) + + if (self.callback) { + var buffer = [] + var bodyLen = 0 + self.on("data", function (chunk) { + buffer.push(chunk) + bodyLen += chunk.length + }) + self.on("end", function () { + debug('end event', self.uri.href) + if (self._aborted) { + debug('aborted', self.uri.href) + return + } + + if (buffer.length && Buffer.isBuffer(buffer[0])) { + debug('has body', self.uri.href, bodyLen) + var body = new Buffer(bodyLen) + var i = 0 + buffer.forEach(function (chunk) { + chunk.copy(body, i, 0, chunk.length) + i += chunk.length + }) + if (self.encoding === null) { + response.body = body + } else { + response.body = body.toString(self.encoding) + } + } else if (buffer.length) { + // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation. + // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse(). + if (self.encoding === 'utf8' && buffer[0].length > 0 && buffer[0][0] === "\uFEFF") { + buffer[0] = buffer[0].substring(1) + } + response.body = buffer.join('') + } + + if (self._json) { + try { + response.body = JSON.parse(response.body) + } catch (e) {} + } + debug('emitting complete', self.uri.href) + if(response.body == undefined && !self._json) { + response.body = ""; + } + self.emit('complete', response, response.body) + }) + } + //if no callback + else{ + self.on("end", function () { + if (self._aborted) { + debug('aborted', self.uri.href) + return + } + self.emit('complete', response); + }); + } + } + debug('finish init function', self.uri.href) +} + +Request.prototype.abort = function () { + this._aborted = true + + if (this.req) { + this.req.abort() + } + else if (this.response) { + this.response.abort() + } + + this.emit("abort") +} + +Request.prototype.pipeDest = function (dest) { + var response = this.response + // Called after the response is received + if (dest.headers && !dest.headersSent) { + if (hasHeader('content-type', response.headers)) { + var ctname = hasHeader('content-type', response.headers) + if (dest.setHeader) dest.setHeader(ctname, response.headers[ctname]) + else dest.headers[ctname] = response.headers[ctname] + } + + if (hasHeader('content-length', response.headers)) { + var clname = hasHeader('content-length', response.headers) + if (dest.setHeader) dest.setHeader(clname, response.headers[clname]) + else dest.headers[clname] = response.headers[clname] + } + } + if (dest.setHeader && !dest.headersSent) { + for (var i in response.headers) { + dest.setHeader(i, response.headers[i]) + } + dest.statusCode = response.statusCode + } + if (this.pipefilter) this.pipefilter(response, dest) +} + +// Composable API +Request.prototype.setHeader = function (name, value, clobber) { + if (clobber === undefined) clobber = true + if (clobber || !this.hasHeader(name)) this.headers[name] = value + else this.headers[this.hasHeader(name)] += ',' + value + return this +} +Request.prototype.setHeaders = function (headers) { + for (var i in headers) {this.setHeader(i, headers[i])} + return this +} +Request.prototype.hasHeader = function (header, headers) { + var headers = Object.keys(headers || this.headers) + , lheaders = headers.map(function (h) {return h.toLowerCase()}) + ; + header = header.toLowerCase() + for (var i=0;i + +[![NPM](https://nodei.co/npm/through2.png?compact=true)](https://nodei.co/npm/through2/) + + + +**A tiny wrapper around Node streams.Transform (Streams2) to avoid explicit subclassing noise** + +Inspired by [Dominic Tarr](https://github.com/dominictarr)'s [through](https://github.com/dominictarr/through) in that it's so much easier to make a stream out of a function than it is to set up the prototype chain properly: `through(function (chunk) { ... })`. + +```js +fs.createReadStream('ex.txt') + .pipe(through2(function (chunk, enc, callback) { + + for (var i = 0; i < chunk.length; i++) + if (chunk[i] == 97) + chunk[i] = 122 // swap 'a' for 'z' + + this.push(chunk) + + callback() + + })) + .pipe(fs.createWriteStream('out.txt')) +``` + +Or object streams: + +```js +var all = [] + +fs.createReadStream('data.csv') + .pipe(csv2()) + .pipe(through2.obj(function (chunk, enc, callback) { + + var data = { + name : chunk[0] + , address : chunk[3] + , phone : chunk[10] + } + + this.push(data) + + callback() + + })) + .on('data', function (data) { + all.push(data) + }) + .on('end', function () { + doSomethingSpecial(all) + }) +``` + +Note that `through2.obj(fn)` is a convenience wrapper around `through2({ objectMode: true }, fn)`. + +## API + +through2([ options, ] [ transformFunction ] [, flushFunction ]) + +Consult the **[stream.Transform](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform)** documentation for the exact rules of the `transformFunction` (i.e. `this._transform`) and the optional `flushFunction` (i.e. `this._flush`). + +### options + +The options argument is optional and is passed straight through to `stream.Transform`. So you can use `objectMode:true` if you are processing non-binary streams (or just use `through2.obj()`). + +The `options` argument is first, unlike standard convention, because if I'm passing in an anonymous function then I'd prefer for the options argument to not get lost at the end of the call: + +```js +fs.createReadStream('/tmp/important.dat') + .pipe(through2({ objectMode: true, allowHalfOpen: false }, function (chunk, enc, cb) { + + this.push(new Buffer('wut?')) + cb() + + }) + .pipe(fs.createWriteStream('/tmp/wut.txt')) +``` + +### transformFunction + +The `transformFunction` must have the following signature: `function (chunk, encoding, callback) {}`. A minimal implementation should call the `callback` function to indicate that the transformation is done, even if that transformation means discarding the chunk. + +To queue a new chunk, call `this.push(chunk)`—this can be called as many times as required before the `callback()` if you have multiple pieces to send on. + +If you **do not provide a `transformFunction`** then you will get a simple simple pass-through stream. + +### flushFunction + +The optional `flushFunction` is provided as the last argument (2nd or 3rd, depending on whether you've supplied options) is called just prior to the stream ending. Can be used to finish up any processing that may be in progress. + +through2.ctor([ options, ] transformFunction[, flushFunction ]) + +Instead of returning a `stream.Transform` instance, `through2.ctor()` returns a **constructor** for a custom Transform. This is useful when you want to use the same transform logic in multiple instances. + +```js +var FToC = through2.ctor({objectMode: true}, function (record, encoding, callback) { + if (record.temp != null && record.unit = "F") { + record.temp = ( ( record.temp - 32 ) * 5 ) / 9 + record.unit = "C" + } + this.push(record) + callback() +}) + +// Create instances of FToC like so: +var converter = new FToC() +// Or: +var converter = FToC() +// Or specify/override options when you instantiate, if you prefer: +var converter = FToC({objectMode: true}) +``` + +## License + +**through2** is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore new file mode 100644 index 00000000..38344f87 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore @@ -0,0 +1,5 @@ +build/ +test/ +examples/ +fs.js +zlib.js \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE new file mode 100644 index 00000000..0c44ae71 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE @@ -0,0 +1,27 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md new file mode 100644 index 00000000..be976683 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md @@ -0,0 +1,768 @@ +# readable-stream + +A new class of streams for Node.js + +This module provides the new Stream base classes introduced in Node +v0.10, for use in Node v0.8. You can use it to have programs that +have to work with node v0.8, while being forward-compatible for v0.10 +and beyond. When you drop support for v0.8, you can remove this +module, and only use the native streams. + +This is almost exactly the same codebase as appears in Node v0.10. +However: + +1. The exported object is actually the Readable class. Decorating the + native `stream` module would be global pollution. +2. In v0.10, you can safely use `base64` as an argument to + `setEncoding` in Readable streams. However, in v0.8, the + StringDecoder class has no `end()` method, which is problematic for + Base64. So, don't use that, because it'll break and be weird. + +Other than that, the API is the same as `require('stream')` in v0.10, +so the API docs are reproduced below. + +---------- + + Stability: 2 - Unstable + +A stream is an abstract interface implemented by various objects in +Node. For example a request to an HTTP server is a stream, as is +stdout. Streams are readable, writable, or both. All streams are +instances of [EventEmitter][] + +You can load the Stream base classes by doing `require('stream')`. +There are base classes provided for Readable streams, Writable +streams, Duplex streams, and Transform streams. + +## Compatibility + +In earlier versions of Node, the Readable stream interface was +simpler, but also less powerful and less useful. + +* Rather than waiting for you to call the `read()` method, `'data'` + events would start emitting immediately. If you needed to do some + I/O to decide how to handle data, then you had to store the chunks + in some kind of buffer so that they would not be lost. +* The `pause()` method was advisory, rather than guaranteed. This + meant that you still had to be prepared to receive `'data'` events + even when the stream was in a paused state. + +In Node v0.10, the Readable class described below was added. For +backwards compatibility with older Node programs, Readable streams +switch into "old mode" when a `'data'` event handler is added, or when +the `pause()` or `resume()` methods are called. The effect is that, +even if you are not using the new `read()` method and `'readable'` +event, you no longer have to worry about losing `'data'` chunks. + +Most programs will continue to function normally. However, this +introduces an edge case in the following conditions: + +* No `'data'` event handler is added. +* The `pause()` and `resume()` methods are never called. + +For example, consider the following code: + +```javascript +// WARNING! BROKEN! +net.createServer(function(socket) { + + // we add an 'end' method, but never consume the data + socket.on('end', function() { + // It will never get here. + socket.end('I got your message (but didnt read it)\n'); + }); + +}).listen(1337); +``` + +In versions of node prior to v0.10, the incoming message data would be +simply discarded. However, in Node v0.10 and beyond, the socket will +remain paused forever. + +The workaround in this situation is to call the `resume()` method to +trigger "old mode" behavior: + +```javascript +// Workaround +net.createServer(function(socket) { + + socket.on('end', function() { + socket.end('I got your message (but didnt read it)\n'); + }); + + // start the flow of data, discarding it. + socket.resume(); + +}).listen(1337); +``` + +In addition to new Readable streams switching into old-mode, pre-v0.10 +style streams can be wrapped in a Readable class using the `wrap()` +method. + +## Class: stream.Readable + + + +A `Readable Stream` has the following methods, members, and events. + +Note that `stream.Readable` is an abstract class designed to be +extended with an underlying implementation of the `_read(size)` +method. (See below.) + +### new stream.Readable([options]) + +* `options` {Object} + * `highWaterMark` {Number} The maximum number of bytes to store in + the internal buffer before ceasing to read from the underlying + resource. Default=16kb + * `encoding` {String} If specified, then buffers will be decoded to + strings using the specified encoding. Default=null + * `objectMode` {Boolean} Whether this stream should behave + as a stream of objects. Meaning that stream.read(n) returns + a single value instead of a Buffer of size n + +In classes that extend the Readable class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### readable.\_read(size) + +* `size` {Number} Number of bytes to read asynchronously + +Note: **This function should NOT be called directly.** It should be +implemented by child classes, and called by the internal Readable +class methods only. + +All Readable stream implementations must provide a `_read` method +to fetch data from the underlying resource. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +When data is available, put it into the read queue by calling +`readable.push(chunk)`. If `push` returns false, then you should stop +reading. When `_read` is called again, you should start pushing more +data. + +The `size` argument is advisory. Implementations where a "read" is a +single call that returns data can use this to know how much data to +fetch. Implementations where that is not relevant, such as TCP or +TLS, may ignore this argument, and simply provide data whenever it +becomes available. There is no need, for example to "wait" until +`size` bytes are available before calling `stream.push(chunk)`. + +### readable.push(chunk) + +* `chunk` {Buffer | null | String} Chunk of data to push into the read queue +* return {Boolean} Whether or not more pushes should be performed + +Note: **This function should be called by Readable implementors, NOT +by consumers of Readable subclasses.** The `_read()` function will not +be called again until at least one `push(chunk)` call is made. If no +data is available, then you MAY call `push('')` (an empty string) to +allow a future `_read` call, without adding any data to the queue. + +The `Readable` class works by putting data into a read queue to be +pulled out later by calling the `read()` method when the `'readable'` +event fires. + +The `push()` method will explicitly insert some data into the read +queue. If it is called with `null` then it will signal the end of the +data. + +In some cases, you may be wrapping a lower-level source which has some +sort of pause/resume mechanism, and a data callback. In those cases, +you could wrap the low-level source object by doing something like +this: + +```javascript +// source is an object with readStop() and readStart() methods, +// and an `ondata` member that gets called when it has data, and +// an `onend` member that gets called when the data is over. + +var stream = new Readable(); + +source.ondata = function(chunk) { + // if push() returns false, then we need to stop reading from source + if (!stream.push(chunk)) + source.readStop(); +}; + +source.onend = function() { + stream.push(null); +}; + +// _read will be called when the stream wants to pull more data in +// the advisory size argument is ignored in this case. +stream._read = function(n) { + source.readStart(); +}; +``` + +### readable.unshift(chunk) + +* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue +* return {Boolean} Whether or not more pushes should be performed + +This is the corollary of `readable.push(chunk)`. Rather than putting +the data at the *end* of the read queue, it puts it at the *front* of +the read queue. + +This is useful in certain use-cases where a stream is being consumed +by a parser, which needs to "un-consume" some data that it has +optimistically pulled out of the source. + +```javascript +// A parser for a simple data protocol. +// The "header" is a JSON object, followed by 2 \n characters, and +// then a message body. +// +// Note: This can be done more simply as a Transform stream. See below. + +function SimpleProtocol(source, options) { + if (!(this instanceof SimpleProtocol)) + return new SimpleProtocol(options); + + Readable.call(this, options); + this._inBody = false; + this._sawFirstCr = false; + + // source is a readable stream, such as a socket or file + this._source = source; + + var self = this; + source.on('end', function() { + self.push(null); + }); + + // give it a kick whenever the source is readable + // read(0) will not consume any bytes + source.on('readable', function() { + self.read(0); + }); + + this._rawHeader = []; + this.header = null; +} + +SimpleProtocol.prototype = Object.create( + Readable.prototype, { constructor: { value: SimpleProtocol }}); + +SimpleProtocol.prototype._read = function(n) { + if (!this._inBody) { + var chunk = this._source.read(); + + // if the source doesn't have data, we don't have data yet. + if (chunk === null) + return this.push(''); + + // check if the chunk has a \n\n + var split = -1; + for (var i = 0; i < chunk.length; i++) { + if (chunk[i] === 10) { // '\n' + if (this._sawFirstCr) { + split = i; + break; + } else { + this._sawFirstCr = true; + } + } else { + this._sawFirstCr = false; + } + } + + if (split === -1) { + // still waiting for the \n\n + // stash the chunk, and try again. + this._rawHeader.push(chunk); + this.push(''); + } else { + this._inBody = true; + var h = chunk.slice(0, split); + this._rawHeader.push(h); + var header = Buffer.concat(this._rawHeader).toString(); + try { + this.header = JSON.parse(header); + } catch (er) { + this.emit('error', new Error('invalid simple protocol data')); + return; + } + // now, because we got some extra data, unshift the rest + // back into the read queue so that our consumer will see it. + var b = chunk.slice(split); + this.unshift(b); + + // and let them know that we are done parsing the header. + this.emit('header', this.header); + } + } else { + // from there on, just provide the data to our consumer. + // careful not to push(null), since that would indicate EOF. + var chunk = this._source.read(); + if (chunk) this.push(chunk); + } +}; + +// Usage: +var parser = new SimpleProtocol(source); +// Now parser is a readable stream that will emit 'header' +// with the parsed header data. +``` + +### readable.wrap(stream) + +* `stream` {Stream} An "old style" readable stream + +If you are using an older Node library that emits `'data'` events and +has a `pause()` method that is advisory only, then you can use the +`wrap()` method to create a Readable stream that uses the old stream +as its data source. + +For example: + +```javascript +var OldReader = require('./old-api-module.js').OldReader; +var oreader = new OldReader; +var Readable = require('stream').Readable; +var myReader = new Readable().wrap(oreader); + +myReader.on('readable', function() { + myReader.read(); // etc. +}); +``` + +### Event: 'readable' + +When there is data ready to be consumed, this event will fire. + +When this event emits, call the `read()` method to consume the data. + +### Event: 'end' + +Emitted when the stream has received an EOF (FIN in TCP terminology). +Indicates that no more `'data'` events will happen. If the stream is +also writable, it may be possible to continue writing. + +### Event: 'data' + +The `'data'` event emits either a `Buffer` (by default) or a string if +`setEncoding()` was used. + +Note that adding a `'data'` event listener will switch the Readable +stream into "old mode", where data is emitted as soon as it is +available, rather than waiting for you to call `read()` to consume it. + +### Event: 'error' + +Emitted if there was an error receiving data. + +### Event: 'close' + +Emitted when the underlying resource (for example, the backing file +descriptor) has been closed. Not all streams will emit this. + +### readable.setEncoding(encoding) + +Makes the `'data'` event emit a string instead of a `Buffer`. `encoding` +can be `'utf8'`, `'utf16le'` (`'ucs2'`), `'ascii'`, or `'hex'`. + +The encoding can also be set by specifying an `encoding` field to the +constructor. + +### readable.read([size]) + +* `size` {Number | null} Optional number of bytes to read. +* Return: {Buffer | String | null} + +Note: **This function SHOULD be called by Readable stream users.** + +Call this method to consume data once the `'readable'` event is +emitted. + +The `size` argument will set a minimum number of bytes that you are +interested in. If not set, then the entire content of the internal +buffer is returned. + +If there is no data to consume, or if there are fewer bytes in the +internal buffer than the `size` argument, then `null` is returned, and +a future `'readable'` event will be emitted when more is available. + +Calling `stream.read(0)` will always return `null`, and will trigger a +refresh of the internal buffer, but otherwise be a no-op. + +### readable.pipe(destination, [options]) + +* `destination` {Writable Stream} +* `options` {Object} Optional + * `end` {Boolean} Default=true + +Connects this readable stream to `destination` WriteStream. Incoming +data on this stream gets written to `destination`. Properly manages +back-pressure so that a slow destination will not be overwhelmed by a +fast readable stream. + +This function returns the `destination` stream. + +For example, emulating the Unix `cat` command: + + process.stdin.pipe(process.stdout); + +By default `end()` is called on the destination when the source stream +emits `end`, so that `destination` is no longer writable. Pass `{ end: +false }` as `options` to keep the destination stream open. + +This keeps `writer` open so that "Goodbye" can be written at the +end. + + reader.pipe(writer, { end: false }); + reader.on("end", function() { + writer.end("Goodbye\n"); + }); + +Note that `process.stderr` and `process.stdout` are never closed until +the process exits, regardless of the specified options. + +### readable.unpipe([destination]) + +* `destination` {Writable Stream} Optional + +Undo a previously established `pipe()`. If no destination is +provided, then all previously established pipes are removed. + +### readable.pause() + +Switches the readable stream into "old mode", where data is emitted +using a `'data'` event rather than being buffered for consumption via +the `read()` method. + +Ceases the flow of data. No `'data'` events are emitted while the +stream is in a paused state. + +### readable.resume() + +Switches the readable stream into "old mode", where data is emitted +using a `'data'` event rather than being buffered for consumption via +the `read()` method. + +Resumes the incoming `'data'` events after a `pause()`. + + +## Class: stream.Writable + + + +A `Writable` Stream has the following methods, members, and events. + +Note that `stream.Writable` is an abstract class designed to be +extended with an underlying implementation of the +`_write(chunk, encoding, cb)` method. (See below.) + +### new stream.Writable([options]) + +* `options` {Object} + * `highWaterMark` {Number} Buffer level when `write()` starts + returning false. Default=16kb + * `decodeStrings` {Boolean} Whether or not to decode strings into + Buffers before passing them to `_write()`. Default=true + +In classes that extend the Writable class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### writable.\_write(chunk, encoding, callback) + +* `chunk` {Buffer | String} The chunk to be written. Will always + be a buffer unless the `decodeStrings` option was set to `false`. +* `encoding` {String} If the chunk is a string, then this is the + encoding type. Ignore chunk is a buffer. Note that chunk will + **always** be a buffer unless the `decodeStrings` option is + explicitly set to `false`. +* `callback` {Function} Call this function (optionally with an error + argument) when you are done processing the supplied chunk. + +All Writable stream implementations must provide a `_write` method to +send data to the underlying resource. + +Note: **This function MUST NOT be called directly.** It should be +implemented by child classes, and called by the internal Writable +class methods only. + +Call the callback using the standard `callback(error)` pattern to +signal that the write completed successfully or with an error. + +If the `decodeStrings` flag is set in the constructor options, then +`chunk` may be a string rather than a Buffer, and `encoding` will +indicate the sort of string that it is. This is to support +implementations that have an optimized handling for certain string +data encodings. If you do not explicitly set the `decodeStrings` +option to `false`, then you can safely ignore the `encoding` argument, +and assume that `chunk` will always be a Buffer. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + + +### writable.write(chunk, [encoding], [callback]) + +* `chunk` {Buffer | String} Data to be written +* `encoding` {String} Optional. If `chunk` is a string, then encoding + defaults to `'utf8'` +* `callback` {Function} Optional. Called when this chunk is + successfully written. +* Returns {Boolean} + +Writes `chunk` to the stream. Returns `true` if the data has been +flushed to the underlying resource. Returns `false` to indicate that +the buffer is full, and the data will be sent out in the future. The +`'drain'` event will indicate when the buffer is empty again. + +The specifics of when `write()` will return false, is determined by +the `highWaterMark` option provided to the constructor. + +### writable.end([chunk], [encoding], [callback]) + +* `chunk` {Buffer | String} Optional final data to be written +* `encoding` {String} Optional. If `chunk` is a string, then encoding + defaults to `'utf8'` +* `callback` {Function} Optional. Called when the final chunk is + successfully written. + +Call this method to signal the end of the data being written to the +stream. + +### Event: 'drain' + +Emitted when the stream's write queue empties and it's safe to write +without buffering again. Listen for it when `stream.write()` returns +`false`. + +### Event: 'close' + +Emitted when the underlying resource (for example, the backing file +descriptor) has been closed. Not all streams will emit this. + +### Event: 'finish' + +When `end()` is called and there are no more chunks to write, this +event is emitted. + +### Event: 'pipe' + +* `source` {Readable Stream} + +Emitted when the stream is passed to a readable stream's pipe method. + +### Event 'unpipe' + +* `source` {Readable Stream} + +Emitted when a previously established `pipe()` is removed using the +source Readable stream's `unpipe()` method. + +## Class: stream.Duplex + + + +A "duplex" stream is one that is both Readable and Writable, such as a +TCP socket connection. + +Note that `stream.Duplex` is an abstract class designed to be +extended with an underlying implementation of the `_read(size)` +and `_write(chunk, encoding, callback)` methods as you would with a Readable or +Writable stream class. + +Since JavaScript doesn't have multiple prototypal inheritance, this +class prototypally inherits from Readable, and then parasitically from +Writable. It is thus up to the user to implement both the lowlevel +`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method +on extension duplex classes. + +### new stream.Duplex(options) + +* `options` {Object} Passed to both Writable and Readable + constructors. Also has the following fields: + * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then + the stream will automatically end the readable side when the + writable side ends and vice versa. + +In classes that extend the Duplex class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +## Class: stream.Transform + +A "transform" stream is a duplex stream where the output is causally +connected in some way to the input, such as a zlib stream or a crypto +stream. + +There is no requirement that the output be the same size as the input, +the same number of chunks, or arrive at the same time. For example, a +Hash stream will only ever have a single chunk of output which is +provided when the input is ended. A zlib stream will either produce +much smaller or much larger than its input. + +Rather than implement the `_read()` and `_write()` methods, Transform +classes must implement the `_transform()` method, and may optionally +also implement the `_flush()` method. (See below.) + +### new stream.Transform([options]) + +* `options` {Object} Passed to both Writable and Readable + constructors. + +In classes that extend the Transform class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### transform.\_transform(chunk, encoding, callback) + +* `chunk` {Buffer | String} The chunk to be transformed. Will always + be a buffer unless the `decodeStrings` option was set to `false`. +* `encoding` {String} If the chunk is a string, then this is the + encoding type. (Ignore if `decodeStrings` chunk is a buffer.) +* `callback` {Function} Call this function (optionally with an error + argument) when you are done processing the supplied chunk. + +Note: **This function MUST NOT be called directly.** It should be +implemented by child classes, and called by the internal Transform +class methods only. + +All Transform stream implementations must provide a `_transform` +method to accept input and produce output. + +`_transform` should do whatever has to be done in this specific +Transform class, to handle the bytes being written, and pass them off +to the readable portion of the interface. Do asynchronous I/O, +process things, and so on. + +Call `transform.push(outputChunk)` 0 or more times to generate output +from this input chunk, depending on how much data you want to output +as a result of this chunk. + +Call the callback function only when the current chunk is completely +consumed. Note that there may or may not be output as a result of any +particular input chunk. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +### transform.\_flush(callback) + +* `callback` {Function} Call this function (optionally with an error + argument) when you are done flushing any remaining data. + +Note: **This function MUST NOT be called directly.** It MAY be implemented +by child classes, and if so, will be called by the internal Transform +class methods only. + +In some cases, your transform operation may need to emit a bit more +data at the end of the stream. For example, a `Zlib` compression +stream will store up some internal state so that it can optimally +compress the output. At the end, however, it needs to do the best it +can with what is left, so that the data will be complete. + +In those cases, you can implement a `_flush` method, which will be +called at the very end, after all the written data is consumed, but +before emitting `end` to signal the end of the readable side. Just +like with `_transform`, call `transform.push(chunk)` zero or more +times, as appropriate, and call `callback` when the flush operation is +complete. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +### Example: `SimpleProtocol` parser + +The example above of a simple protocol parser can be implemented much +more simply by using the higher level `Transform` stream class. + +In this example, rather than providing the input as an argument, it +would be piped into the parser, which is a more idiomatic Node stream +approach. + +```javascript +function SimpleProtocol(options) { + if (!(this instanceof SimpleProtocol)) + return new SimpleProtocol(options); + + Transform.call(this, options); + this._inBody = false; + this._sawFirstCr = false; + this._rawHeader = []; + this.header = null; +} + +SimpleProtocol.prototype = Object.create( + Transform.prototype, { constructor: { value: SimpleProtocol }}); + +SimpleProtocol.prototype._transform = function(chunk, encoding, done) { + if (!this._inBody) { + // check if the chunk has a \n\n + var split = -1; + for (var i = 0; i < chunk.length; i++) { + if (chunk[i] === 10) { // '\n' + if (this._sawFirstCr) { + split = i; + break; + } else { + this._sawFirstCr = true; + } + } else { + this._sawFirstCr = false; + } + } + + if (split === -1) { + // still waiting for the \n\n + // stash the chunk, and try again. + this._rawHeader.push(chunk); + } else { + this._inBody = true; + var h = chunk.slice(0, split); + this._rawHeader.push(h); + var header = Buffer.concat(this._rawHeader).toString(); + try { + this.header = JSON.parse(header); + } catch (er) { + this.emit('error', new Error('invalid simple protocol data')); + return; + } + // and let them know that we are done parsing the header. + this.emit('header', this.header); + + // now, because we got some extra data, emit this first. + this.push(b); + } + } else { + // from there on, just provide the data to our consumer as-is. + this.push(b); + } + done(); +}; + +var parser = new SimpleProtocol(); +source.pipe(parser) + +// Now parser is a readable stream that will emit 'header' +// with the parsed header data. +``` + + +## Class: stream.PassThrough + +This is a trivial implementation of a `Transform` stream that simply +passes the input bytes across to the output. Its purpose is mainly +for examples and testing, but there are occasionally use cases where +it can come in handy. + + +[EventEmitter]: events.html#events_class_events_eventemitter diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js new file mode 100644 index 00000000..ca807af8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_duplex.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch new file mode 100644 index 00000000..0ad71a1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch @@ -0,0 +1,68 @@ +diff --git a/lib/_stream_duplex.js b/lib/_stream_duplex.js +index c5a741c..a2e0d8e 100644 +--- a/lib/_stream_duplex.js ++++ b/lib/_stream_duplex.js +@@ -26,8 +26,8 @@ + + module.exports = Duplex; + var util = require('util'); +-var Readable = require('_stream_readable'); +-var Writable = require('_stream_writable'); ++var Readable = require('./_stream_readable'); ++var Writable = require('./_stream_writable'); + + util.inherits(Duplex, Readable); + +diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js +index a5e9864..330c247 100644 +--- a/lib/_stream_passthrough.js ++++ b/lib/_stream_passthrough.js +@@ -25,7 +25,7 @@ + + module.exports = PassThrough; + +-var Transform = require('_stream_transform'); ++var Transform = require('./_stream_transform'); + var util = require('util'); + util.inherits(PassThrough, Transform); + +diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js +index 2259d2e..e6681ee 100644 +--- a/lib/_stream_readable.js ++++ b/lib/_stream_readable.js +@@ -23,6 +23,9 @@ module.exports = Readable; + Readable.ReadableState = ReadableState; + + var EE = require('events').EventEmitter; ++if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { ++ return emitter.listeners(type).length; ++}; + var Stream = require('stream'); + var util = require('util'); + var StringDecoder; +diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js +index e925b4b..f08b05e 100644 +--- a/lib/_stream_transform.js ++++ b/lib/_stream_transform.js +@@ -64,7 +64,7 @@ + + module.exports = Transform; + +-var Duplex = require('_stream_duplex'); ++var Duplex = require('./_stream_duplex'); + var util = require('util'); + util.inherits(Transform, Duplex); + +diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js +index a26f711..56ca47d 100644 +--- a/lib/_stream_writable.js ++++ b/lib/_stream_writable.js +@@ -109,7 +109,7 @@ function WritableState(options, stream) { + function Writable(options) { + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. +- if (!(this instanceof Writable) && !(this instanceof Stream.Duplex)) ++ if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) + return new Writable(options); + + this._writableState = new WritableState(options, this); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js new file mode 100644 index 00000000..a2e0d8e0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js @@ -0,0 +1,69 @@ +// 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. + +// 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. + +module.exports = Duplex; +var util = require('util'); +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +Object.keys(Writable.prototype).forEach(function(method) { + 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. + process.nextTick(this.end.bind(this)); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js new file mode 100644 index 00000000..330c247d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js @@ -0,0 +1,41 @@ +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); +var util = require('util'); +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); +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js new file mode 100644 index 00000000..323f3305 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js @@ -0,0 +1,927 @@ +// 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 = Readable; +Readable.ReadableState = ReadableState; + +var EE = require('events').EventEmitter; +if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { + return emitter.listeners(type).length; +}; +var Stream = require('stream'); +var util = require('util'); +var StringDecoder; + +util.inherits(Readable, Stream); + +function ReadableState(options, stream) { + options = options || {}; + + // 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; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + this.buffer = []; + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = false; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // In streams that never have any data, and do push(null) right away, + // the consumer can miss the 'end' event if they do some I/O before + // consuming the stream. So, we don't emit('end') until some reading + // happens. + this.calledRead = 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, becuase 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; + + + // 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; + + // 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; + } +} + +function Readable(options) { + if (!(this instanceof Readable)) + return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + 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 (typeof chunk === 'string' && !state.objectMode) { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = new Buffer(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); +}; + +function readableAddChunk(stream, state, chunk, encoding, addToFront) { + var er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (chunk === null || chunk === undefined) { + state.reading = false; + if (!state.ended) + 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 { + if (state.decoder && !addToFront && !encoding) + chunk = state.decoder.write(chunk); + + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) { + state.buffer.unshift(chunk); + } else { + state.reading = false; + 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; +}; + +// Don't raise the hwm > 128MB +var MAX_HWM = 0x800000; +function roundUpToNextPowerOf2(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 + n--; + for (var p = 1; p < 32; p <<= 1) n |= n >> p; + n++; + } + return n; +} + +function howMuchToRead(n, state) { + if (state.length === 0 && state.ended) + return 0; + + if (state.objectMode) + return n === 0 ? 0 : 1; + + if (isNaN(n) || n === null) { + // 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 = roundUpToNextPowerOf2(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) { + var state = this._readableState; + state.calledRead = true; + 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)) { + 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; + + // if we currently have less than the highWaterMark, then also read some + if (state.length - n <= state.highWaterMark) + doRead = true; + + // 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; + + if (doRead) { + 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 called its callback 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 happened to read() exactly the remaining amount in the + // buffer, and the EOF has been seen at this point, then make sure + // that we emit 'end' on the very next tick. + if (state.ended && !state.endEmitted && state.length === 0) + endReadable(this); + + return ret; +}; + +function chunkInvalid(state, chunk) { + var er = null; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode && + !er) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + + +function onEofChunk(stream, state) { + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // if we've ended and we have some data left, then emit + // 'readable' now to make sure it gets picked up. + if (state.length > 0) + emitReadable(stream); + else + endReadable(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) + return; + + state.emittedReadable = true; + if (state.sync) + process.nextTick(function() { + emitReadable_(stream); + }); + else + emitReadable_(stream); +} + +function emitReadable_(stream) { + stream.emit('readable'); +} + + +// 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; + process.nextTick(function() { + maybeReadMore_(stream, state); + }); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && + state.length < state.highWaterMark) { + 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; + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && + dest !== process.stdout && + dest !== process.stderr; + + var endFn = doEnd ? onend : cleanup; + if (state.endEmitted) + process.nextTick(endFn); + else + src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable) { + if (readable !== src) return; + cleanup(); + } + + function 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); + + function 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); + + // 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 (!dest._writableState || dest._writableState.needDrain) + ondrain(); + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + unpipe(); + dest.removeListener('error', onerror); + if (EE.listenerCount(dest, 'error') === 0) + dest.emit('error', er); + } + // This is a brutally ugly hack to make sure that our error handler + // is attached before any userland ones. NEVER DO THIS. + if (!dest._events || !dest._events.error) + dest.on('error', onerror); + else if (Array.isArray(dest._events.error)) + dest._events.error.unshift(onerror); + else + dest._events.error = [onerror, dest._events.error]; + + + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function 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) { + // the handler that waits for readable events after all + // the data gets sucked out in flow. + // This would be easier to follow with a .once() handler + // in flow(), but that is too slow. + this.on('readable', pipeOnReadable); + + state.flowing = true; + process.nextTick(function() { + flow(src); + }); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function() { + var dest = this; + var state = src._readableState; + state.awaitDrain--; + if (state.awaitDrain === 0) + flow(src); + }; +} + +function flow(src) { + var state = src._readableState; + var chunk; + state.awaitDrain = 0; + + function write(dest, i, list) { + var written = dest.write(chunk); + if (false === written) { + state.awaitDrain++; + } + } + + while (state.pipesCount && null !== (chunk = src.read())) { + + if (state.pipesCount === 1) + write(state.pipes, 0, null); + else + state.pipes.forEach(write); + + src.emit('data', chunk); + + // if anyone needs a drain, then we have to wait for that. + if (state.awaitDrain > 0) + return; + } + + // if every destination was unpiped, either before entering this + // function, or in the while loop, then stop flowing. + // + // NB: This is a pretty rare edge case. + if (state.pipesCount === 0) { + state.flowing = false; + + // if there were data event listeners added, then switch to old mode. + if (EE.listenerCount(src, 'data') > 0) + emitDataEvents(src); + return; + } + + // at this point, no one needed a drain, so we just ran out of data + // on the next readable event, start it over again. + state.ranOut = true; +} + +function pipeOnReadable() { + if (this._readableState.ranOut) { + this._readableState.ranOut = false; + flow(this); + } +} + + +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; + this.removeListener('readable', pipeOnReadable); + 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; + this.removeListener('readable', pipeOnReadable); + 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 = state.pipes.indexOf(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 (ev === 'data' && !this._readableState.flowing) + emitDataEvents(this); + + if (ev === 'readable' && this.readable) { + var state = this._readableState; + if (!state.readableListening) { + state.readableListening = true; + state.emittedReadable = false; + state.needReadable = true; + if (!state.reading) { + this.read(0); + } else if (state.length) { + emitReadable(this, state); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +// 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() { + emitDataEvents(this); + this.read(0); + this.emit('resume'); +}; + +Readable.prototype.pause = function() { + emitDataEvents(this, true); + this.emit('pause'); +}; + +function emitDataEvents(stream, startPaused) { + var state = stream._readableState; + + if (state.flowing) { + // https://github.com/isaacs/readable-stream/issues/16 + throw new Error('Cannot switch to old mode now.'); + } + + var paused = startPaused || false; + var readable = false; + + // convert to an old-style stream. + stream.readable = true; + stream.pipe = Stream.prototype.pipe; + stream.on = stream.addListener = Stream.prototype.on; + + stream.on('readable', function() { + readable = true; + + var c; + while (!paused && (null !== (c = stream.read()))) + stream.emit('data', c); + + if (c === null) { + readable = false; + stream._readableState.needReadable = true; + } + }); + + stream.pause = function() { + paused = true; + this.emit('pause'); + }; + + stream.resume = function() { + paused = false; + if (readable) + process.nextTick(function() { + stream.emit('readable'); + }); + else + this.read(0); + this.emit('resume'); + }; + + // now make it start, just in case it hadn't already. + stream.emit('readable'); +} + +// 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() { + 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) { + if (state.decoder) + chunk = state.decoder.write(chunk); + if (!chunk || !state.objectMode && !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 (typeof stream[i] === 'function' && + typeof this[i] === 'undefined') { + this[i] = function(method) { return function() { + return stream[method].apply(stream, arguments); + }}(i); + } + } + + // proxy certain important events. + var events = ['error', 'close', 'destroy', 'pause', 'resume']; + events.forEach(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) { + 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 + 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 = new Buffer(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.calledRead) { + state.ended = true; + process.nextTick(function() { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } + }); + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js new file mode 100644 index 00000000..707e4b3b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js @@ -0,0 +1,205 @@ +// 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. + + +// 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. + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); +var util = require('util'); +util.inherits(Transform, Duplex); + + +function TransformState(options, stream) { + this.afterTransform = function(er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = 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); + + if (cb) + 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); + + var ts = this._transformState = new TransformState(options, 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; + + this.once('finish', function() { + if ('function' === typeof this._flush) + 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 rs = stream._readableState; + 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); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js new file mode 100644 index 00000000..9eaf4ec2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js @@ -0,0 +1,371 @@ +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, cb), and it'll handle all +// the drain event emission and buffering. + +module.exports = Writable; +Writable.WritableState = WritableState; + +var util = require('util'); +var assert = require('assert'); +var Stream = require('stream'); + +util.inherits(Writable, Stream); + +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; +} + +function WritableState(options, stream) { + options = options || {}; + + // 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; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + // 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; + + // 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, becuase 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.buffer = []; +} + +function Writable(options) { + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. + if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) + return new Writable(options); + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + 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, state, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + process.nextTick(function() { + 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; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode) { + var er = new TypeError('Invalid non-string/buffer chunk'); + stream.emit('error', er); + process.nextTick(function() { + 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 = function() {}; + + if (state.ended) + writeAfterEnd(this, state, cb); + else if (validChunk(this, state, chunk, cb)) + ret = writeOrBuffer(this, state, chunk, encoding, cb); + + return ret; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && + state.decodeStrings !== false && + typeof chunk === 'string') { + chunk = new Buffer(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.buffer.push(new WriteReq(chunk, encoding, cb)); + else + doWrite(stream, state, len, chunk, encoding, cb); + + return ret; +} + +function doWrite(stream, state, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + if (sync) + process.nextTick(function() { + cb(er); + }); + else + cb(er); + + 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(stream, state); + + if (!finished && !state.bufferProcessing && state.buffer.length) + clearBuffer(stream, state); + + if (sync) { + process.nextTick(function() { + afterWrite(stream, state, finished, cb); + }); + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) + onwriteDrain(stream, state); + cb(); + if (finished) + 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; + + for (var c = 0; c < state.buffer.length; c++) { + var entry = state.buffer[c]; + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, len, chunk, encoding, cb); + + // 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) { + c++; + break; + } + } + + state.bufferProcessing = false; + if (c < state.buffer.length) + state.buffer = state.buffer.slice(c); + else + state.buffer.length = 0; +} + +Writable.prototype._write = function(chunk, encoding, cb) { + cb(new Error('not implemented')); +}; + +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 (typeof chunk !== 'undefined' && chunk !== null) + this.write(chunk, encoding); + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) + endWritable(this, state, cb); +}; + + +function needFinish(stream, state) { + return (state.ending && + state.length === 0 && + !state.finished && + !state.writing); +} + +function finishMaybe(stream, state) { + var need = needFinish(stream, state); + if (need) { + state.finished = true; + stream.emit('finish'); + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) + process.nextTick(cb); + else + stream.once('finish', cb); + } + state.ended = true; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore new file mode 100644 index 00000000..b512c09d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE new file mode 100644 index 00000000..6de584a4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE @@ -0,0 +1,20 @@ +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. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md new file mode 100644 index 00000000..4d2aa001 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md @@ -0,0 +1,7 @@ +**string_decoder.js** (`require('string_decoder')`) from Node.js core + +Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. + +Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** + +The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js new file mode 100755 index 00000000..46470cfd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js @@ -0,0 +1,94 @@ +#!/usr/bin/env node + +const hyperquest = require('hyperzip')(require('hyperdirect')) + , bl = require('bl') + , fs = require('fs') + , path = require('path') + , cheerio = require('cheerio') + + , files = require('./files') + , testReplace = require('./test-replacements') + + , srcurlpfx = 'https://raw.github.com/joyent/node/v' + process.argv[2] + '-release/' + , libsrcurl = srcurlpfx + 'lib/' + , testsrcurl = srcurlpfx + 'test/simple/' + , testlisturl = 'https://github.com/joyent/node/tree/v' + process.argv[2] + '-release/test/simple' + , libourroot = path.join(__dirname, '../') + , testourroot = path.join(__dirname, '../test/simple/') + + +function processFile (url, out, replacements) { + hyperquest(url).pipe(bl(function (err, data) { + if (err) + throw err + + data = data.toString() + replacements.forEach(function (replacement) { + data = data.replace.apply(data, replacement) + }) + + fs.writeFile(out, data, 'utf8', function (err) { + if (err) + throw err + + console.log('Wrote', out) + }) + })) +} + +function processLibFile (file) { + var replacements = files[file] + , url = libsrcurl + file + , out = path.join(libourroot, replacements.out || file) + + processFile(url, out, replacements) +} + + +function processTestFile (file) { + var replacements = testReplace.all + , url = testsrcurl + file + , out = path.join(testourroot, file) + + if (testReplace[file]) + replacements = replacements.concat(testReplace[file]) + + processFile(url, out, replacements) +} + + +if (!/0\.1\d\.\d+/.test(process.argv[2])) { + console.log('Usage: build.js ') + return process.exit(-1) +} + + +//-------------------------------------------------------------------- +// Grab & process files in ../lib/ + +Object.keys(files).forEach(processLibFile) + +//-------------------------------------------------------------------- +// Discover, grab and process all test-string-decoder* files on joyent/node + +hyperquest(testlisturl).pipe(bl(function (err, data) { + if (err) + throw err + + var $ = cheerio.load(data.toString()) + + $('table.files .js-directory-link').each(function () { + var file = $(this).text() + if (/^test-string-decoder/.test(file) || file == 'common.js') + processTestFile(file) + }) +})) + +//-------------------------------------------------------------------- +// Grab the joyent/node test/common.js + +processFile( + testsrcurl + '../common.js' + , path.join(testourroot, '../common.js') + , testReplace['common.js'] +) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js new file mode 100644 index 00000000..7396a4f4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js @@ -0,0 +1,36 @@ +/* This file lists the files to be fetched from the node repo + * in the /lib/ directory which will be placed in the ../lib/ + * directory after having each of the "replacements" in the + * array for that file applied to it. The replacements are + * simply the arguments to String#replace, so they can be + * strings, regexes, functions. + */ + +module.exports['string_decoder.js'] = [ + + // pull in Bufer as a require + // add Buffer.isEncoding where missing + [ + /^(\/\/ USE OR OTHER DEALINGS IN THE SOFTWARE\.)/m + , '$1\n\nvar Buffer = require(\'buffer\').Buffer;' + + '\n' + + '\nvar isBufferEncoding = Buffer.isEncoding' + + '\n || function(encoding) {' + + '\n switch (encoding && encoding.toLowerCase()) {' + + '\n 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;' + + '\n default: return false;' + + '\n }' + + '\n }' + + '\n' + + ] + + // use custom Buffer.isEncoding reference + , [ + /Buffer\.isEncoding\(/g + , 'isBufferEncoding\(' + ] + +] + +module.exports['string_decoder.js'].out = 'index.js' \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json new file mode 100644 index 00000000..f7ee6a46 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json @@ -0,0 +1,12 @@ +{ + "name": "string_decoder-build", + "version": "0.0.0", + "description": "", + "main": "build.js", + "dependencies": { + "bl": "~0.6.0", + "hyperzip": "0.0.0", + "hyperdirect": "0.0.0", + "cheerio": "~0.13.1" + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js new file mode 100644 index 00000000..5bbf6028 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js @@ -0,0 +1,24 @@ +module.exports.all = [ + [ + /require\(['"]string_decoder['"]\)/g + , 'require(\'../../\')' + ] + +] + +module.exports['common.js'] = [ + [ + /^ setImmediate,$/m + , ' typeof setImmediate == \'undefined\' ? null : setImmediate,' + ] + + , [ + /^ clearImmediate,$/m + , ' typeof clearImmediate == \'undefined\' ? null : clearImmediate,' + ] + + , [ + /^ global];$/m + , ' global].filter(Boolean);' + ] +] diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js new file mode 100644 index 00000000..2e44a03e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js @@ -0,0 +1,200 @@ +// 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); + } +} + +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; + } + + this.charBuffer = new Buffer(6); + this.charReceived = 0; + this.charLength = 0; +}; + + +StringDecoder.prototype.write = function(buffer) { + var charStr = ''; + var offset = 0; + + // 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 i = (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, offset, i); + this.charReceived += (i - offset); + offset = i; + + if (this.charReceived < this.charLength) { + // still not enough chars in this buffer? wait for more ... + return ''; + } + + // get the character that was split + charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); + + // 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 (i == buffer.length) return charStr; + + // otherwise cut off the characters end from the beginning of this buffer + buffer = buffer.slice(i, buffer.length); + break; + } + + var lenIncomplete = this.detectIncompleteChar(buffer); + + var end = buffer.length; + if (this.charLength) { + // buffer the incomplete character bytes we got + buffer.copy(this.charBuffer, 0, buffer.length - lenIncomplete, end); + this.charReceived = lenIncomplete; + end -= lenIncomplete; + } + + charStr += buffer.toString(this.encoding, 0, end); + + var end = charStr.length - 1; + var charCode = charStr.charCodeAt(end); + // 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); + this.charBuffer.write(charStr.charAt(charStr.length - 1), this.encoding); + return charStr.substring(0, end); + } + + // or just emit the charStr + return charStr; +}; + +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; + } + } + + return 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) { + var incomplete = this.charReceived = buffer.length % 2; + this.charLength = incomplete ? 2 : 0; + return incomplete; +} + +function base64DetectIncompleteChar(buffer) { + var incomplete = this.charReceived = buffer.length % 3; + this.charLength = incomplete ? 3 : 0; + return incomplete; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json new file mode 100644 index 00000000..c7cac1a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json @@ -0,0 +1,36 @@ +{ + "name": "string_decoder", + "version": "0.10.25", + "description": "The string_decoder module from Node core", + "main": "index.js", + "dependencies": {}, + "devDependencies": { + "tap": "~0.4.8" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/rvagg/string_decoder.git" + }, + "homepage": "https://github.com/rvagg/string_decoder", + "keywords": [ + "string", + "decoder", + "browser", + "browserify" + ], + "license": "MIT", + "readme": "**string_decoder.js** (`require('string_decoder')`) from Node.js core\n\nCopyright Joyent, Inc. and other Node contributors. See LICENCE file for details.\n\nVersion numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.**\n\nThe *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version.", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/rvagg/string_decoder/issues" + }, + "_id": "string_decoder@0.10.25", + "dist": { + "shasum": "aa026a29a0177ff13c8df4472dcda2f26d646900" + }, + "_from": "string_decoder@~0.10.x", + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js new file mode 100644 index 00000000..ed5ff08d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js @@ -0,0 +1,200 @@ +// 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 path = require('path'); +var assert = require('assert'); + +exports.testDir = path.dirname(__filename); +exports.fixturesDir = path.join(exports.testDir, 'fixtures'); +exports.libDir = path.join(exports.testDir, '../lib'); +exports.tmpDir = path.join(exports.testDir, 'tmp'); +exports.PORT = +process.env.NODE_COMMON_PORT || 12346; + +if (process.platform === 'win32') { + exports.PIPE = '\\\\.\\pipe\\libuv-test'; +} else { + exports.PIPE = exports.tmpDir + '/test.sock'; +} + +var util = require('util'); +for (var i in util) exports[i] = util[i]; +//for (var i in exports) global[i] = exports[i]; + +function protoCtrChain(o) { + var result = []; + for (; o; o = o.__proto__) { result.push(o.constructor); } + return result.join(); +} + +exports.indirectInstanceOf = function(obj, cls) { + if (obj instanceof cls) { return true; } + var clsChain = protoCtrChain(cls.prototype); + var objChain = protoCtrChain(obj); + return objChain.slice(-clsChain.length) === clsChain; +}; + + +exports.ddCommand = function(filename, kilobytes) { + if (process.platform === 'win32') { + var p = path.resolve(exports.fixturesDir, 'create-file.js'); + return '"' + process.argv[0] + '" "' + p + '" "' + + filename + '" ' + (kilobytes * 1024); + } else { + return 'dd if=/dev/zero of="' + filename + '" bs=1024 count=' + kilobytes; + } +}; + + +exports.spawnCat = function(options) { + var spawn = require('child_process').spawn; + + if (process.platform === 'win32') { + return spawn('more', [], options); + } else { + return spawn('cat', [], options); + } +}; + + +exports.spawnPwd = function(options) { + var spawn = require('child_process').spawn; + + if (process.platform === 'win32') { + return spawn('cmd.exe', ['/c', 'cd'], options); + } else { + return spawn('pwd', [], options); + } +}; + + +// Turn this off if the test should not check for global leaks. +exports.globalCheck = true; + +process.on('exit', function() { + if (!exports.globalCheck) return; + var knownGlobals = [setTimeout, + setInterval, + typeof setImmediate == 'undefined' ? null : setImmediate, + clearTimeout, + clearInterval, + typeof clearImmediate == 'undefined' ? null : clearImmediate, + console, + Buffer, + process, + global].filter(Boolean); + + if (global.gc) { + knownGlobals.push(gc); + } + + if (global.DTRACE_HTTP_SERVER_RESPONSE) { + knownGlobals.push(DTRACE_HTTP_SERVER_RESPONSE); + knownGlobals.push(DTRACE_HTTP_SERVER_REQUEST); + knownGlobals.push(DTRACE_HTTP_CLIENT_RESPONSE); + knownGlobals.push(DTRACE_HTTP_CLIENT_REQUEST); + knownGlobals.push(DTRACE_NET_STREAM_END); + knownGlobals.push(DTRACE_NET_SERVER_CONNECTION); + knownGlobals.push(DTRACE_NET_SOCKET_READ); + knownGlobals.push(DTRACE_NET_SOCKET_WRITE); + } + if (global.COUNTER_NET_SERVER_CONNECTION) { + knownGlobals.push(COUNTER_NET_SERVER_CONNECTION); + knownGlobals.push(COUNTER_NET_SERVER_CONNECTION_CLOSE); + knownGlobals.push(COUNTER_HTTP_SERVER_REQUEST); + knownGlobals.push(COUNTER_HTTP_SERVER_RESPONSE); + knownGlobals.push(COUNTER_HTTP_CLIENT_REQUEST); + knownGlobals.push(COUNTER_HTTP_CLIENT_RESPONSE); + } + + if (global.ArrayBuffer) { + knownGlobals.push(ArrayBuffer); + knownGlobals.push(Int8Array); + knownGlobals.push(Uint8Array); + knownGlobals.push(Uint8ClampedArray); + knownGlobals.push(Int16Array); + knownGlobals.push(Uint16Array); + knownGlobals.push(Int32Array); + knownGlobals.push(Uint32Array); + knownGlobals.push(Float32Array); + knownGlobals.push(Float64Array); + knownGlobals.push(DataView); + } + + for (var x in global) { + var found = false; + + for (var y in knownGlobals) { + if (global[x] === knownGlobals[y]) { + found = true; + break; + } + } + + if (!found) { + console.error('Unknown global: %s', x); + assert.ok(false, 'Unknown global found'); + } + } +}); + + +var mustCallChecks = []; + + +function runCallChecks(exitCode) { + if (exitCode !== 0) return; + + var failed = mustCallChecks.filter(function(context) { + return context.actual !== context.expected; + }); + + failed.forEach(function(context) { + console.log('Mismatched %s function calls. Expected %d, actual %d.', + context.name, + context.expected, + context.actual); + console.log(context.stack.split('\n').slice(2).join('\n')); + }); + + if (failed.length) process.exit(1); +} + + +exports.mustCall = function(fn, expected) { + if (typeof expected !== 'number') expected = 1; + + var context = { + expected: expected, + actual: 0, + stack: (new Error).stack, + name: fn.name || '' + }; + + // add the exit listener only once to avoid listener leak warnings + if (mustCallChecks.length === 0) process.on('exit', runCallChecks); + + mustCallChecks.push(context); + + return function() { + context.actual++; + return fn.apply(this, arguments); + }; +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js new file mode 100644 index 00000000..869a4116 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js @@ -0,0 +1,75 @@ +// 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. + +// verify that the string decoder works getting 1 byte at a time, +// the whole buffer at once, and that both match the .toString(enc) +// result of the entire buffer. + +var assert = require('assert'); +var SD = require('../../').StringDecoder; +var encodings = ['base64', 'hex', 'utf8', 'utf16le', 'ucs2']; + +var bufs = [ '☃💩', 'asdf' ].map(function(b) { + return new Buffer(b); +}); + +// also test just arbitrary bytes from 0-15. +for (var i = 1; i <= 16; i++) { + var bytes = new Array(i).join('.').split('.').map(function(_, j) { + return j + 0x78; + }); + bufs.push(new Buffer(bytes)); +} + +encodings.forEach(testEncoding); + +console.log('ok'); + +function testEncoding(encoding) { + bufs.forEach(function(buf) { + testBuf(encoding, buf); + }); +} + +function testBuf(encoding, buf) { + console.error('# %s', encoding, buf); + + // write one byte at a time. + var s = new SD(encoding); + var res1 = ''; + for (var i = 0; i < buf.length; i++) { + res1 += s.write(buf.slice(i, i + 1)); + } + res1 += s.end(); + + // write the whole buffer at once. + var res2 = ''; + var s = new SD(encoding); + res2 += s.write(buf); + res2 += s.end(); + + // .toString() on the buffer + var res3 = buf.toString(encoding); + + console.log('expect=%j', res3); + assert.equal(res1, res3, 'one byte at a time should match toString'); + assert.equal(res2, res3, 'all bytes at once should match toString'); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js new file mode 100644 index 00000000..7f69f7ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js @@ -0,0 +1,163 @@ +// 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 common = require('../common'); +var assert = require('assert'); +var StringDecoder = require('../../').StringDecoder; +var decoder = new StringDecoder('utf8'); + + + +var buffer = new Buffer('$'); +assert.deepEqual('$', decoder.write(buffer)); + +buffer = new Buffer('¢'); +assert.deepEqual('', decoder.write(buffer.slice(0, 1))); +assert.deepEqual('¢', decoder.write(buffer.slice(1, 2))); + +buffer = new Buffer('€'); +assert.deepEqual('', decoder.write(buffer.slice(0, 1))); +assert.deepEqual('', decoder.write(buffer.slice(1, 2))); +assert.deepEqual('€', decoder.write(buffer.slice(2, 3))); + +buffer = new Buffer([0xF0, 0xA4, 0xAD, 0xA2]); +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); +s += decoder.write(buffer.slice(2, 3)); +s += decoder.write(buffer.slice(3, 4)); +assert.ok(s.length > 0); + +// CESU-8 +buffer = new Buffer('EDA0BDEDB18D', 'hex'); // THUMBS UP SIGN (in CESU-8) +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); +s += decoder.write(buffer.slice(2, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 4)); +s += decoder.write(buffer.slice(4, 5)); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 2)); +s += decoder.write(buffer.slice(2, 4)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(4, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 4)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(4, 5)); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 5)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 6)); +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + + +// UCS-2 +decoder = new StringDecoder('ucs2'); +buffer = new Buffer('ab', 'ucs2'); +assert.equal(decoder.write(buffer), 'ab'); // 2 complete chars +buffer = new Buffer('abc', 'ucs2'); +assert.equal(decoder.write(buffer.slice(0, 3)), 'a'); // 'a' and first of 'b' +assert.equal(decoder.write(buffer.slice(3, 6)), 'bc'); // second of 'b' and 'c' + + +// UTF-16LE +buffer = new Buffer('3DD84DDC', 'hex'); // THUMBS UP SIGN (in CESU-8) +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(2, 3)); +s += decoder.write(buffer.slice(3, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 2)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(2, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 4)); +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + + +// A mixed ascii and non-ascii string +// Test stolen from deps/v8/test/cctest/test-strings.cc +// U+02E4 -> CB A4 +// U+0064 -> 64 +// U+12E4 -> E1 8B A4 +// U+0030 -> 30 +// U+3045 -> E3 81 85 +var expected = '\u02e4\u0064\u12e4\u0030\u3045'; +var buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4, + 0x30, 0xE3, 0x81, 0x85]); +var charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5]; + +// Split the buffer into 3 segments +// |----|------|-------| +// 0 i j buffer.length +// Scan through every possible 3 segment combination +// and make sure that the string is always parsed. +common.print('scanning '); +for (var j = 2; j < buffer.length; j++) { + for (var i = 1; i < j; i++) { + var decoder = new StringDecoder('utf8'); + + var sum = decoder.write(buffer.slice(0, i)); + + // just check that we've received the right amount + // after the first write + assert.equal(charLengths[i], sum.length); + + sum += decoder.write(buffer.slice(i, j)); + sum += decoder.write(buffer.slice(j, buffer.length)); + assert.equal(expected, sum); + common.print('.'); + } +} +console.log(' crayon!'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json new file mode 100644 index 00000000..c9e268d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json @@ -0,0 +1,42 @@ +{ + "name": "readable-stream", + "version": "1.0.25", + "description": "An exploration of a new kind of readable streams for Node.js", + "main": "readable.js", + "dependencies": { + "string_decoder": "~0.10.x" + }, + "devDependencies": { + "tap": "~0.2.6" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/readable-stream" + }, + "keywords": [ + "readable", + "stream", + "pipe" + ], + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "license": "BSD", + "readme": "# readable-stream\n\nA new class of streams for Node.js\n\nThis module provides the new Stream base classes introduced in Node\nv0.10, for use in Node v0.8. You can use it to have programs that\nhave to work with node v0.8, while being forward-compatible for v0.10\nand beyond. When you drop support for v0.8, you can remove this\nmodule, and only use the native streams.\n\nThis is almost exactly the same codebase as appears in Node v0.10.\nHowever:\n\n1. The exported object is actually the Readable class. Decorating the\n native `stream` module would be global pollution.\n2. In v0.10, you can safely use `base64` as an argument to\n `setEncoding` in Readable streams. However, in v0.8, the\n StringDecoder class has no `end()` method, which is problematic for\n Base64. So, don't use that, because it'll break and be weird.\n\nOther than that, the API is the same as `require('stream')` in v0.10,\nso the API docs are reproduced below.\n\n----------\n\n Stability: 2 - Unstable\n\nA stream is an abstract interface implemented by various objects in\nNode. For example a request to an HTTP server is a stream, as is\nstdout. Streams are readable, writable, or both. All streams are\ninstances of [EventEmitter][]\n\nYou can load the Stream base classes by doing `require('stream')`.\nThere are base classes provided for Readable streams, Writable\nstreams, Duplex streams, and Transform streams.\n\n## Compatibility\n\nIn earlier versions of Node, the Readable stream interface was\nsimpler, but also less powerful and less useful.\n\n* Rather than waiting for you to call the `read()` method, `'data'`\n events would start emitting immediately. If you needed to do some\n I/O to decide how to handle data, then you had to store the chunks\n in some kind of buffer so that they would not be lost.\n* The `pause()` method was advisory, rather than guaranteed. This\n meant that you still had to be prepared to receive `'data'` events\n even when the stream was in a paused state.\n\nIn Node v0.10, the Readable class described below was added. For\nbackwards compatibility with older Node programs, Readable streams\nswitch into \"old mode\" when a `'data'` event handler is added, or when\nthe `pause()` or `resume()` methods are called. The effect is that,\neven if you are not using the new `read()` method and `'readable'`\nevent, you no longer have to worry about losing `'data'` chunks.\n\nMost programs will continue to function normally. However, this\nintroduces an edge case in the following conditions:\n\n* No `'data'` event handler is added.\n* The `pause()` and `resume()` methods are never called.\n\nFor example, consider the following code:\n\n```javascript\n// WARNING! BROKEN!\nnet.createServer(function(socket) {\n\n // we add an 'end' method, but never consume the data\n socket.on('end', function() {\n // It will never get here.\n socket.end('I got your message (but didnt read it)\\n');\n });\n\n}).listen(1337);\n```\n\nIn versions of node prior to v0.10, the incoming message data would be\nsimply discarded. However, in Node v0.10 and beyond, the socket will\nremain paused forever.\n\nThe workaround in this situation is to call the `resume()` method to\ntrigger \"old mode\" behavior:\n\n```javascript\n// Workaround\nnet.createServer(function(socket) {\n\n socket.on('end', function() {\n socket.end('I got your message (but didnt read it)\\n');\n });\n\n // start the flow of data, discarding it.\n socket.resume();\n\n}).listen(1337);\n```\n\nIn addition to new Readable streams switching into old-mode, pre-v0.10\nstyle streams can be wrapped in a Readable class using the `wrap()`\nmethod.\n\n## Class: stream.Readable\n\n\n\nA `Readable Stream` has the following methods, members, and events.\n\nNote that `stream.Readable` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nmethod. (See below.)\n\n### new stream.Readable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} The maximum number of bytes to store in\n the internal buffer before ceasing to read from the underlying\n resource. Default=16kb\n * `encoding` {String} If specified, then buffers will be decoded to\n strings using the specified encoding. Default=null\n * `objectMode` {Boolean} Whether this stream should behave\n as a stream of objects. Meaning that stream.read(n) returns\n a single value instead of a Buffer of size n\n\nIn classes that extend the Readable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### readable.\\_read(size)\n\n* `size` {Number} Number of bytes to read asynchronously\n\nNote: **This function should NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Readable\nclass methods only.\n\nAll Readable stream implementations must provide a `_read` method\nto fetch data from the underlying resource.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\nWhen data is available, put it into the read queue by calling\n`readable.push(chunk)`. If `push` returns false, then you should stop\nreading. When `_read` is called again, you should start pushing more\ndata.\n\nThe `size` argument is advisory. Implementations where a \"read\" is a\nsingle call that returns data can use this to know how much data to\nfetch. Implementations where that is not relevant, such as TCP or\nTLS, may ignore this argument, and simply provide data whenever it\nbecomes available. There is no need, for example to \"wait\" until\n`size` bytes are available before calling `stream.push(chunk)`.\n\n### readable.push(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to push into the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nNote: **This function should be called by Readable implementors, NOT\nby consumers of Readable subclasses.** The `_read()` function will not\nbe called again until at least one `push(chunk)` call is made. If no\ndata is available, then you MAY call `push('')` (an empty string) to\nallow a future `_read` call, without adding any data to the queue.\n\nThe `Readable` class works by putting data into a read queue to be\npulled out later by calling the `read()` method when the `'readable'`\nevent fires.\n\nThe `push()` method will explicitly insert some data into the read\nqueue. If it is called with `null` then it will signal the end of the\ndata.\n\nIn some cases, you may be wrapping a lower-level source which has some\nsort of pause/resume mechanism, and a data callback. In those cases,\nyou could wrap the low-level source object by doing something like\nthis:\n\n```javascript\n// source is an object with readStop() and readStart() methods,\n// and an `ondata` member that gets called when it has data, and\n// an `onend` member that gets called when the data is over.\n\nvar stream = new Readable();\n\nsource.ondata = function(chunk) {\n // if push() returns false, then we need to stop reading from source\n if (!stream.push(chunk))\n source.readStop();\n};\n\nsource.onend = function() {\n stream.push(null);\n};\n\n// _read will be called when the stream wants to pull more data in\n// the advisory size argument is ignored in this case.\nstream._read = function(n) {\n source.readStart();\n};\n```\n\n### readable.unshift(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nThis is the corollary of `readable.push(chunk)`. Rather than putting\nthe data at the *end* of the read queue, it puts it at the *front* of\nthe read queue.\n\nThis is useful in certain use-cases where a stream is being consumed\nby a parser, which needs to \"un-consume\" some data that it has\noptimistically pulled out of the source.\n\n```javascript\n// A parser for a simple data protocol.\n// The \"header\" is a JSON object, followed by 2 \\n characters, and\n// then a message body.\n//\n// Note: This can be done more simply as a Transform stream. See below.\n\nfunction SimpleProtocol(source, options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Readable.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n\n // source is a readable stream, such as a socket or file\n this._source = source;\n\n var self = this;\n source.on('end', function() {\n self.push(null);\n });\n\n // give it a kick whenever the source is readable\n // read(0) will not consume any bytes\n source.on('readable', function() {\n self.read(0);\n });\n\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Readable.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._read = function(n) {\n if (!this._inBody) {\n var chunk = this._source.read();\n\n // if the source doesn't have data, we don't have data yet.\n if (chunk === null)\n return this.push('');\n\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // '\\n'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n this.push('');\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit('error', new Error('invalid simple protocol data'));\n return;\n }\n // now, because we got some extra data, unshift the rest\n // back into the read queue so that our consumer will see it.\n var b = chunk.slice(split);\n this.unshift(b);\n\n // and let them know that we are done parsing the header.\n this.emit('header', this.header);\n }\n } else {\n // from there on, just provide the data to our consumer.\n // careful not to push(null), since that would indicate EOF.\n var chunk = this._source.read();\n if (chunk) this.push(chunk);\n }\n};\n\n// Usage:\nvar parser = new SimpleProtocol(source);\n// Now parser is a readable stream that will emit 'header'\n// with the parsed header data.\n```\n\n### readable.wrap(stream)\n\n* `stream` {Stream} An \"old style\" readable stream\n\nIf you are using an older Node library that emits `'data'` events and\nhas a `pause()` method that is advisory only, then you can use the\n`wrap()` method to create a Readable stream that uses the old stream\nas its data source.\n\nFor example:\n\n```javascript\nvar OldReader = require('./old-api-module.js').OldReader;\nvar oreader = new OldReader;\nvar Readable = require('stream').Readable;\nvar myReader = new Readable().wrap(oreader);\n\nmyReader.on('readable', function() {\n myReader.read(); // etc.\n});\n```\n\n### Event: 'readable'\n\nWhen there is data ready to be consumed, this event will fire.\n\nWhen this event emits, call the `read()` method to consume the data.\n\n### Event: 'end'\n\nEmitted when the stream has received an EOF (FIN in TCP terminology).\nIndicates that no more `'data'` events will happen. If the stream is\nalso writable, it may be possible to continue writing.\n\n### Event: 'data'\n\nThe `'data'` event emits either a `Buffer` (by default) or a string if\n`setEncoding()` was used.\n\nNote that adding a `'data'` event listener will switch the Readable\nstream into \"old mode\", where data is emitted as soon as it is\navailable, rather than waiting for you to call `read()` to consume it.\n\n### Event: 'error'\n\nEmitted if there was an error receiving data.\n\n### Event: 'close'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### readable.setEncoding(encoding)\n\nMakes the `'data'` event emit a string instead of a `Buffer`. `encoding`\ncan be `'utf8'`, `'utf16le'` (`'ucs2'`), `'ascii'`, or `'hex'`.\n\nThe encoding can also be set by specifying an `encoding` field to the\nconstructor.\n\n### readable.read([size])\n\n* `size` {Number | null} Optional number of bytes to read.\n* Return: {Buffer | String | null}\n\nNote: **This function SHOULD be called by Readable stream users.**\n\nCall this method to consume data once the `'readable'` event is\nemitted.\n\nThe `size` argument will set a minimum number of bytes that you are\ninterested in. If not set, then the entire content of the internal\nbuffer is returned.\n\nIf there is no data to consume, or if there are fewer bytes in the\ninternal buffer than the `size` argument, then `null` is returned, and\na future `'readable'` event will be emitted when more is available.\n\nCalling `stream.read(0)` will always return `null`, and will trigger a\nrefresh of the internal buffer, but otherwise be a no-op.\n\n### readable.pipe(destination, [options])\n\n* `destination` {Writable Stream}\n* `options` {Object} Optional\n * `end` {Boolean} Default=true\n\nConnects this readable stream to `destination` WriteStream. Incoming\ndata on this stream gets written to `destination`. Properly manages\nback-pressure so that a slow destination will not be overwhelmed by a\nfast readable stream.\n\nThis function returns the `destination` stream.\n\nFor example, emulating the Unix `cat` command:\n\n process.stdin.pipe(process.stdout);\n\nBy default `end()` is called on the destination when the source stream\nemits `end`, so that `destination` is no longer writable. Pass `{ end:\nfalse }` as `options` to keep the destination stream open.\n\nThis keeps `writer` open so that \"Goodbye\" can be written at the\nend.\n\n reader.pipe(writer, { end: false });\n reader.on(\"end\", function() {\n writer.end(\"Goodbye\\n\");\n });\n\nNote that `process.stderr` and `process.stdout` are never closed until\nthe process exits, regardless of the specified options.\n\n### readable.unpipe([destination])\n\n* `destination` {Writable Stream} Optional\n\nUndo a previously established `pipe()`. If no destination is\nprovided, then all previously established pipes are removed.\n\n### readable.pause()\n\nSwitches the readable stream into \"old mode\", where data is emitted\nusing a `'data'` event rather than being buffered for consumption via\nthe `read()` method.\n\nCeases the flow of data. No `'data'` events are emitted while the\nstream is in a paused state.\n\n### readable.resume()\n\nSwitches the readable stream into \"old mode\", where data is emitted\nusing a `'data'` event rather than being buffered for consumption via\nthe `read()` method.\n\nResumes the incoming `'data'` events after a `pause()`.\n\n\n## Class: stream.Writable\n\n\n\nA `Writable` Stream has the following methods, members, and events.\n\nNote that `stream.Writable` is an abstract class designed to be\nextended with an underlying implementation of the\n`_write(chunk, encoding, cb)` method. (See below.)\n\n### new stream.Writable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} Buffer level when `write()` starts\n returning false. Default=16kb\n * `decodeStrings` {Boolean} Whether or not to decode strings into\n Buffers before passing them to `_write()`. Default=true\n\nIn classes that extend the Writable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### writable.\\_write(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be written. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. Ignore chunk is a buffer. Note that chunk will\n **always** be a buffer unless the `decodeStrings` option is\n explicitly set to `false`.\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nAll Writable stream implementations must provide a `_write` method to\nsend data to the underlying resource.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Writable\nclass methods only.\n\nCall the callback using the standard `callback(error)` pattern to\nsignal that the write completed successfully or with an error.\n\nIf the `decodeStrings` flag is set in the constructor options, then\n`chunk` may be a string rather than a Buffer, and `encoding` will\nindicate the sort of string that it is. This is to support\nimplementations that have an optimized handling for certain string\ndata encodings. If you do not explicitly set the `decodeStrings`\noption to `false`, then you can safely ignore the `encoding` argument,\nand assume that `chunk` will always be a Buffer.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n\n### writable.write(chunk, [encoding], [callback])\n\n* `chunk` {Buffer | String} Data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `'utf8'`\n* `callback` {Function} Optional. Called when this chunk is\n successfully written.\n* Returns {Boolean}\n\nWrites `chunk` to the stream. Returns `true` if the data has been\nflushed to the underlying resource. Returns `false` to indicate that\nthe buffer is full, and the data will be sent out in the future. The\n`'drain'` event will indicate when the buffer is empty again.\n\nThe specifics of when `write()` will return false, is determined by\nthe `highWaterMark` option provided to the constructor.\n\n### writable.end([chunk], [encoding], [callback])\n\n* `chunk` {Buffer | String} Optional final data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `'utf8'`\n* `callback` {Function} Optional. Called when the final chunk is\n successfully written.\n\nCall this method to signal the end of the data being written to the\nstream.\n\n### Event: 'drain'\n\nEmitted when the stream's write queue empties and it's safe to write\nwithout buffering again. Listen for it when `stream.write()` returns\n`false`.\n\n### Event: 'close'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### Event: 'finish'\n\nWhen `end()` is called and there are no more chunks to write, this\nevent is emitted.\n\n### Event: 'pipe'\n\n* `source` {Readable Stream}\n\nEmitted when the stream is passed to a readable stream's pipe method.\n\n### Event 'unpipe'\n\n* `source` {Readable Stream}\n\nEmitted when a previously established `pipe()` is removed using the\nsource Readable stream's `unpipe()` method.\n\n## Class: stream.Duplex\n\n\n\nA \"duplex\" stream is one that is both Readable and Writable, such as a\nTCP socket connection.\n\nNote that `stream.Duplex` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nand `_write(chunk, encoding, callback)` methods as you would with a Readable or\nWritable stream class.\n\nSince JavaScript doesn't have multiple prototypal inheritance, this\nclass prototypally inherits from Readable, and then parasitically from\nWritable. It is thus up to the user to implement both the lowlevel\n`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method\non extension duplex classes.\n\n### new stream.Duplex(options)\n\n* `options` {Object} Passed to both Writable and Readable\n constructors. Also has the following fields:\n * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then\n the stream will automatically end the readable side when the\n writable side ends and vice versa.\n\nIn classes that extend the Duplex class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n## Class: stream.Transform\n\nA \"transform\" stream is a duplex stream where the output is causally\nconnected in some way to the input, such as a zlib stream or a crypto\nstream.\n\nThere is no requirement that the output be the same size as the input,\nthe same number of chunks, or arrive at the same time. For example, a\nHash stream will only ever have a single chunk of output which is\nprovided when the input is ended. A zlib stream will either produce\nmuch smaller or much larger than its input.\n\nRather than implement the `_read()` and `_write()` methods, Transform\nclasses must implement the `_transform()` method, and may optionally\nalso implement the `_flush()` method. (See below.)\n\n### new stream.Transform([options])\n\n* `options` {Object} Passed to both Writable and Readable\n constructors.\n\nIn classes that extend the Transform class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### transform.\\_transform(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be transformed. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. (Ignore if `decodeStrings` chunk is a buffer.)\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Transform\nclass methods only.\n\nAll Transform stream implementations must provide a `_transform`\nmethod to accept input and produce output.\n\n`_transform` should do whatever has to be done in this specific\nTransform class, to handle the bytes being written, and pass them off\nto the readable portion of the interface. Do asynchronous I/O,\nprocess things, and so on.\n\nCall `transform.push(outputChunk)` 0 or more times to generate output\nfrom this input chunk, depending on how much data you want to output\nas a result of this chunk.\n\nCall the callback function only when the current chunk is completely\nconsumed. Note that there may or may not be output as a result of any\nparticular input chunk.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### transform.\\_flush(callback)\n\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done flushing any remaining data.\n\nNote: **This function MUST NOT be called directly.** It MAY be implemented\nby child classes, and if so, will be called by the internal Transform\nclass methods only.\n\nIn some cases, your transform operation may need to emit a bit more\ndata at the end of the stream. For example, a `Zlib` compression\nstream will store up some internal state so that it can optimally\ncompress the output. At the end, however, it needs to do the best it\ncan with what is left, so that the data will be complete.\n\nIn those cases, you can implement a `_flush` method, which will be\ncalled at the very end, after all the written data is consumed, but\nbefore emitting `end` to signal the end of the readable side. Just\nlike with `_transform`, call `transform.push(chunk)` zero or more\ntimes, as appropriate, and call `callback` when the flush operation is\ncomplete.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### Example: `SimpleProtocol` parser\n\nThe example above of a simple protocol parser can be implemented much\nmore simply by using the higher level `Transform` stream class.\n\nIn this example, rather than providing the input as an argument, it\nwould be piped into the parser, which is a more idiomatic Node stream\napproach.\n\n```javascript\nfunction SimpleProtocol(options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Transform.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Transform.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._transform = function(chunk, encoding, done) {\n if (!this._inBody) {\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // '\\n'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit('error', new Error('invalid simple protocol data'));\n return;\n }\n // and let them know that we are done parsing the header.\n this.emit('header', this.header);\n\n // now, because we got some extra data, emit this first.\n this.push(b);\n }\n } else {\n // from there on, just provide the data to our consumer as-is.\n this.push(b);\n }\n done();\n};\n\nvar parser = new SimpleProtocol();\nsource.pipe(parser)\n\n// Now parser is a readable stream that will emit 'header'\n// with the parsed header data.\n```\n\n\n## Class: stream.PassThrough\n\nThis is a trivial implementation of a `Transform` stream that simply\npasses the input bytes across to the output. Its purpose is mainly\nfor examples and testing, but there are occasionally use cases where\nit can come in handy.\n\n\n[EventEmitter]: events.html#events_class_events_eventemitter\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/readable-stream/issues" + }, + "homepage": "https://github.com/isaacs/readable-stream", + "_id": "readable-stream@1.0.25", + "dist": { + "shasum": "3d234b55fd2a25db8327618f088e50a32044df50" + }, + "_from": "readable-stream@~1.0.17", + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.25.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js new file mode 100644 index 00000000..27e8d8a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_passthrough.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js new file mode 100644 index 00000000..4d1ddfc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js @@ -0,0 +1,6 @@ +exports = module.exports = require('./lib/_stream_readable.js'); +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'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js new file mode 100644 index 00000000..5d482f07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_transform.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js new file mode 100644 index 00000000..e1e9efdf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_writable.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE new file mode 100644 index 00000000..a23e08a8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE @@ -0,0 +1,19 @@ +Copyright (c) 2012 Raynos. + +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile new file mode 100644 index 00000000..d583fcf4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile @@ -0,0 +1,4 @@ +browser: + node ./support/compile + +.PHONY: browser \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md new file mode 100644 index 00000000..389adae3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md @@ -0,0 +1,27 @@ +# xtend + +[![browser support][3]][4] + +Extend like a boss + +xtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes presedence. + +## Examples + +```js +var extend = require("xtend") + +var combination = extend({ + a: "a" +}, { + b: "b" +}) +// { a: "a", b: "b" } +``` + + +## MIT Licenced + + + [3]: http://ci.testling.com/Raynos/xtend.png + [4]: http://ci.testling.com/Raynos/xtend diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js new file mode 100644 index 00000000..62391e78 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js @@ -0,0 +1,7 @@ +module.exports = hasKeys + +function hasKeys(source) { + return source !== null && + (typeof source === "object" || + typeof source === "function") +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js new file mode 100644 index 00000000..20937d19 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js @@ -0,0 +1,25 @@ +var Keys = require("object-keys") +var hasKeys = require("./has-keys") + +module.exports = extend + +function extend() { + var target = {} + + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] + + if (!hasKeys(source)) { + continue + } + + var keys = Keys(source) + + for (var j = 0; j < keys.length; j++) { + var name = keys[j] + target[name] = source[name] + } + } + + return target +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js new file mode 100644 index 00000000..17454ae4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js @@ -0,0 +1,25 @@ +var Keys = require("object-keys") +var hasKeys = require("./has-keys") + +module.exports = extend + +function extend(target) { + var sources = [].slice.call(arguments, 1) + + for (var i = 0; i < sources.length; i++) { + var source = sources[i] + + if (!hasKeys(source)) { + continue + } + + var keys = Keys(source) + + for (var j = 0; j < keys.length; j++) { + var name = keys[j] + target[name] = source[name] + } + } + + return target +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml new file mode 100644 index 00000000..60d00ce1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "0.10" + - "0.8" + - "0.6" diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md new file mode 100644 index 00000000..ab32d0ad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md @@ -0,0 +1,39 @@ +#object-keys [![Version Badge][2]][1] + +[![Build Status][3]][4] [![dependency status][5]][6] + +[![browser support][7]][8] + +An Object.keys shim. Uses Object.keys if available. + +## Example + +```js +var keys = require('object-keys'); +var assert = require('assert'); +var obj = { + a: true, + b: true, + c: true +}; + +assert.equal(keys(obj), ['a', 'b', 'c']); +``` + +## Source +Implementation taken directly from [es5-shim]([9]), with modifications, including from [lodash]([10]). + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/object-keys +[2]: http://vb.teelaun.ch/ljharb/object-keys.svg +[3]: https://travis-ci.org/ljharb/object-keys.png +[4]: https://travis-ci.org/ljharb/object-keys +[5]: https://david-dm.org/ljharb/object-keys.png +[6]: https://david-dm.org/ljharb/object-keys +[7]: https://ci.testling.com/ljharb/object-keys.png +[8]: https://ci.testling.com/ljharb/object-keys +[9]: https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L542-589 +[10]: https://github.com/bestiejs/lodash + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js new file mode 100644 index 00000000..db32d458 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js @@ -0,0 +1,40 @@ +var hasOwn = Object.prototype.hasOwnProperty; +var toString = Object.prototype.toString; + +var isFunction = function (fn) { + var isFunc = (typeof fn === 'function' && !(fn instanceof RegExp)) || toString.call(fn) === '[object Function]'; + if (!isFunc && typeof window !== 'undefined') { + isFunc = fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt; + } + return isFunc; +}; + +module.exports = function forEach(obj, fn) { + if (!isFunction(fn)) { + throw new TypeError('iterator must be a function'); + } + var i, k, + isString = typeof obj === 'string', + l = obj.length, + context = arguments.length > 2 ? arguments[2] : null; + if (l === +l) { + for (i = 0; i < l; i++) { + if (context === null) { + fn(isString ? obj.charAt(i) : obj[i], i, obj); + } else { + fn.call(context, isString ? obj.charAt(i) : obj[i], i, obj); + } + } + } else { + for (k in obj) { + if (hasOwn.call(obj, k)) { + if (context === null) { + fn(obj[k], k, obj); + } else { + fn.call(context, obj[k], k, obj); + } + } + } + } +}; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js new file mode 100644 index 00000000..f5b24b6d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js @@ -0,0 +1,2 @@ +module.exports = Object.keys || require('./shim'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js new file mode 100644 index 00000000..74a09897 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js @@ -0,0 +1,16 @@ +var toString = Object.prototype.toString; + +module.exports = function isArguments(value) { + var str = toString.call(value); + var isArguments = str === '[object Arguments]'; + if (!isArguments) { + isArguments = str !== '[object Array]' + && value !== null + && typeof value === 'object' + && typeof value.length === 'number' + && value.length >= 0 + && toString.call(value.callee) === '[object Function]'; + } + return isArguments; +}; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json new file mode 100644 index 00000000..9dfda8dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json @@ -0,0 +1,60 @@ +{ + "name": "object-keys", + "version": "0.4.0", + "author": { + "name": "Jordan Harband" + }, + "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/kriskowal/es5-shim", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "node test/index.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/ljharb/object-keys.git" + }, + "keywords": [ + "Object.keys", + "keys", + "ES5", + "shim" + ], + "dependencies": {}, + "devDependencies": { + "foreach": "~2.0.3", + "is": "~0.2.6", + "tape": "~1.0.4", + "indexof": "~0.0.1" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "readme": "#object-keys [![Version Badge][2]][1]\n\n[![Build Status][3]][4] [![dependency status][5]][6]\n\n[![browser support][7]][8]\n\nAn Object.keys shim. Uses Object.keys if available.\n\n## Example\n\n```js\nvar keys = require('object-keys');\nvar assert = require('assert');\nvar obj = {\n\ta: true,\n\tb: true,\n\tc: true\n};\n\nassert.equal(keys(obj), ['a', 'b', 'c']);\n```\n\n## Source\nImplementation taken directly from [es5-shim]([9]), with modifications, including from [lodash]([10]).\n\n## Tests\nSimply clone the repo, `npm install`, and run `npm test`\n\n[1]: https://npmjs.org/package/object-keys\n[2]: http://vb.teelaun.ch/ljharb/object-keys.svg\n[3]: https://travis-ci.org/ljharb/object-keys.png\n[4]: https://travis-ci.org/ljharb/object-keys\n[5]: https://david-dm.org/ljharb/object-keys.png\n[6]: https://david-dm.org/ljharb/object-keys\n[7]: https://ci.testling.com/ljharb/object-keys.png\n[8]: https://ci.testling.com/ljharb/object-keys\n[9]: https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L542-589\n[10]: https://github.com/bestiejs/lodash\n\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/ljharb/object-keys/issues" + }, + "homepage": "https://github.com/ljharb/object-keys", + "_id": "object-keys@0.4.0", + "dist": { + "shasum": "28a6aae7428dd2c3a92f3d95f21335dd204e0336" + }, + "_from": "object-keys@~0.4.0", + "_resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js new file mode 100644 index 00000000..b88421be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js @@ -0,0 +1,62 @@ +(function () { + "use strict"; + + // modified from https://github.com/kriskowal/es5-shim + var has = Object.prototype.hasOwnProperty, + toString = Object.prototype.toString, + forEach = require('./foreach'), + isArgs = require('./isArguments'), + hasDontEnumBug = !({'toString': null}).propertyIsEnumerable('toString'), + hasProtoEnumBug = (function () {}).propertyIsEnumerable('prototype'), + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + keysShim; + + keysShim = function keys(object) { + var isObject = object !== null && typeof object === 'object', + isFunction = toString.call(object) === '[object Function]', + isArguments = isArgs(object), + theKeys = []; + + if (!isObject && !isFunction && !isArguments) { + throw new TypeError("Object.keys called on a non-object"); + } + + if (isArguments) { + forEach(object, function (value) { + theKeys.push(value); + }); + } else { + var name, + skipProto = hasProtoEnumBug && isFunction; + + for (name in object) { + if (!(skipProto && name === 'prototype') && has.call(object, name)) { + theKeys.push(name); + } + } + } + + if (hasDontEnumBug) { + var ctor = object.constructor, + skipConstructor = ctor && ctor.prototype === object; + + forEach(dontEnums, function (dontEnum) { + if (!(skipConstructor && dontEnum === 'constructor') && has.call(object, dontEnum)) { + theKeys.push(dontEnum); + } + }); + } + return theKeys; + }; + + module.exports = keysShim; +}()); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js new file mode 100644 index 00000000..f29f065a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js @@ -0,0 +1,156 @@ +var test = require('tape'); +var forEach = require('../foreach.js'); + +test('second argument: iterator', function (t) { + var arr = []; + t.throws(function () { forEach(arr); }, TypeError, 'undefined is not a function'); + t.throws(function () { forEach(arr, null); }, TypeError, 'null is not a function'); + t.throws(function () { forEach(arr, ''); }, TypeError, 'string is not a function'); + t.throws(function () { forEach(arr, /a/); }, TypeError, 'regex is not a function'); + t.throws(function () { forEach(arr, true); }, TypeError, 'true is not a function'); + t.throws(function () { forEach(arr, false); }, TypeError, 'false is not a function'); + t.throws(function () { forEach(arr, NaN); }, TypeError, 'NaN is not a function'); + t.throws(function () { forEach(arr, 42); }, TypeError, '42 is not a function'); + t.doesNotThrow(function () { forEach(arr, function () {}); }, 'function is a function'); + t.doesNotThrow(function () { forEach(arr, setTimeout); }, 'setTimeout is a function'); + if (typeof window !== 'undefined') { + t.doesNotThrow(function () { forEach(arr, window.alert); }, 'alert is a function'); + } + t.end(); +}); + +test('array', function (t) { + var arr = [1, 2, 3]; + + t.test('iterates over every item', function (st) { + var index = 0; + forEach(arr, function () { index += 1; }); + st.equal(index, arr.length, 'iterates ' + arr.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(arr.length); + forEach(arr, function (item) { + st.equal(arr[index], item, 'item ' + index + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(arr.length); + forEach(arr, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(arr.length); + forEach(arr, function (item, index, array) { + st.deepEqual(arr, array, 'array is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + st.plan(arr.length); + forEach(arr, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + +test('object', function (t) { + var obj = { + a: 1, + b: 2, + c: 3 + }; + var keys = ['a', 'b', 'c']; + + var F = function () { + this.a = 1; + this.b = 2; + }; + F.prototype.c = 3; + var fKeys = ['a', 'b']; + + t.test('iterates over every object literal key', function (st) { + var counter = 0; + forEach(obj, function () { counter += 1; }); + st.equal(counter, keys.length, 'iterated ' + counter + ' times'); + st.end(); + }); + + t.test('iterates only over own keys', function (st) { + var counter = 0; + forEach(new F(), function () { counter += 1; }); + st.equal(counter, fKeys.length, 'iterated ' + fKeys.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(keys.length); + forEach(obj, function (item) { + st.equal(obj[keys[index]], item, 'item at key ' + keys[index] + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(keys.length); + forEach(obj, function (item, key) { + st.equal(keys[counter], key, 'key ' + key + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(keys.length); + forEach(obj, function (item, key, object) { + st.deepEqual(obj, object, 'object is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + st.plan(1); + forEach({foo: 'bar'}, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + + +test('string', function (t) { + var str = 'str'; + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(str.length * 2 + 1); + forEach(str, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + st.equal(str.charAt(index), item); + counter += 1; + }); + st.equal(counter, str.length, 'iterates ' + str.length + ' times'); + }); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js new file mode 100644 index 00000000..8b77b1fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js @@ -0,0 +1,6 @@ + +require('./foreach'); +require('./isArguments'); + +require('./shim'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js new file mode 100644 index 00000000..62a07c2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js @@ -0,0 +1,10 @@ +var test = require('tape'); +var isArguments = require('../isArguments'); + +test('is.arguments', function (t) { + t.notOk(isArguments([]), 'array is not arguments'); + (function () { t.ok(isArguments(arguments), 'arguments is arguments'); }()); + (function () { t.notOk(isArguments(Array.prototype.slice.call(arguments)), 'sliced arguments is not arguments'); }()); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js new file mode 100644 index 00000000..9d932712 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js @@ -0,0 +1,134 @@ +var test = require('tape'); +var shimmedKeys = require('../index.js'); +var is = require('is'); +var keys = require('../shim.js'); +var forEach = require('foreach'); +var indexOf = require('indexof'); + +var obj = { + "str": "boz", + "obj": {}, + "arr": [], + "bool": true, + "num": 42, + "aNull": null, + "undef": undefined +}; +var objKeys = ['str', 'obj', 'arr', 'bool', 'num', 'aNull', 'undef']; + +test('exports a function', function (t) { + if (Object.keys) { + t.equal(Object.keys, shimmedKeys, 'Object.keys is supported and exported'); + } else { + t.equal(keys, shimmedKeys, 'Object.keys is not supported; shim is exported'); + } + t.end(); +}); + +test('working with actual shim', function (t) { + t.notEqual(Object.keys, keys, 'keys shim is not native Object.keys'); + t.end(); +}); + +test('works with an object literal', function (t) { + var theKeys = keys(obj); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, objKeys, 'Object has expected keys'); + t.end(); +}); + +test('works with an array', function (t) { + var arr = [1, 2, 3]; + var theKeys = keys(arr); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, ['0', '1', '2'], 'Array has expected keys'); + t.end(); +}); + +test('works with a function', function (t) { + var foo = function () {}; + foo.a = true; + + t.doesNotThrow(function () { return keys(foo); }, 'does not throw an error'); + t.deepEqual(keys(foo), ['a'], 'returns expected keys'); + t.end(); +}); + +test('returns names which are own properties', function (t) { + forEach(keys(obj), function (name) { + t.equal(obj.hasOwnProperty(name), true, name + ' should be returned'); + }); + t.end(); +}); + +test('returns names which are enumerable', function (t) { + var k, loopedValues = []; + for (k in obj) { + loopedValues.push(k); + } + forEach(keys(obj), function (name) { + t.notEqual(indexOf(loopedValues, name), -1, name + ' is not enumerable'); + }); + t.end(); +}); + +test('throws an error for a non-object', function (t) { + t.throws( + function () { return keys(42); }, + new TypeError('Object.keys called on a non-object'), + 'throws on a non-object' + ); + t.end(); +}); + +test('works with an object instance', function (t) { + var Prototype = function () {}; + Prototype.prototype.foo = true; + var obj = new Prototype(); + obj.bar = true; + var theKeys = keys(obj); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, ['bar'], 'Instance has expected keys'); + t.end(); +}); + +test('works in iOS 5 mobile Safari', function (t) { + var Foo = function () {}; + Foo.a = function () {}; + + // the bug is keys(Foo) => ['a', 'prototype'] instead of ['a'] + t.deepEqual(keys(Foo), ['a'], 'has expected keys'); + t.end(); +}); + +test('works in environments with the dontEnum bug (IE < 9)', function (t) { + var Foo = function () {}; + Foo.prototype.a = function () {}; + + // the bug is keys(Foo.prototype) => ['a', 'constructor'] instead of ['a'] + t.deepEqual(keys(Foo.prototype), ['a'], 'has expected keys'); + t.end(); +}); + +test('shadowed properties', function (t) { + var shadowedProps = [ + 'dummyControlProp', /* just to be sure */ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + shadowedProps.sort(); + var shadowedObject = {}; + forEach(shadowedProps, function (value, index) { + shadowedObject[value] = index; + }); + var shadowedObjectKeys = keys(shadowedObject); + shadowedObjectKeys.sort(); + t.deepEqual(shadowedObjectKeys, shadowedProps, 'troublesome shadowed properties are keys of object literals'); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json new file mode 100644 index 00000000..a761197d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json @@ -0,0 +1,76 @@ +{ + "name": "xtend", + "version": "2.1.2", + "description": "extend like a boss", + "keywords": [ + "extend", + "merge", + "options", + "opts", + "object", + "array" + ], + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "repository": { + "type": "git", + "url": "git://github.com/Raynos/xtend.git" + }, + "main": "index", + "scripts": { + "test": "node test" + }, + "dependencies": { + "object-keys": "~0.4.0" + }, + "devDependencies": { + "tape": "~1.1.0" + }, + "homepage": "https://github.com/Raynos/xtend", + "contributors": [ + { + "name": "Jake Verbaten" + }, + { + "name": "Matt Esch" + } + ], + "bugs": { + "url": "https://github.com/Raynos/xtend/issues", + "email": "raynos2@gmail.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/raynos/xtend/raw/master/LICENSE" + } + ], + "testling": { + "files": "test.js", + "browsers": [ + "ie/7..latest", + "firefox/16..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest" + ] + }, + "engines": { + "node": ">=0.4" + }, + "readme": "# xtend\n\n[![browser support][3]][4]\n\nExtend like a boss\n\nxtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes presedence.\n\n## Examples\n\n```js\nvar extend = require(\"xtend\")\n\nvar combination = extend({\n a: \"a\"\n}, {\n b: \"b\"\n})\n// { a: \"a\", b: \"b\" }\n```\n\n\n## MIT Licenced\n\n\n [3]: http://ci.testling.com/Raynos/xtend.png\n [4]: http://ci.testling.com/Raynos/xtend\n", + "readmeFilename": "README.md", + "_id": "xtend@2.1.2", + "dist": { + "shasum": "5e8f75d1b0d9ca976fee0f1aa88f80c7619210d5" + }, + "_from": "xtend@~2.1.1", + "_resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js new file mode 100644 index 00000000..3369d796 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js @@ -0,0 +1,63 @@ +var test = require("tape") +var extend = require("./") +var mutableExtend = require("./mutable") + +test("merge", function(assert) { + var a = { a: "foo" } + var b = { b: "bar" } + + assert.deepEqual(extend(a, b), { a: "foo", b: "bar" }) + assert.end() +}) + +test("replace", function(assert) { + var a = { a: "foo" } + var b = { a: "bar" } + + assert.deepEqual(extend(a, b), { a: "bar" }) + assert.end() +}) + +test("undefined", function(assert) { + var a = { a: undefined } + var b = { b: "foo" } + + assert.deepEqual(extend(a, b), { a: undefined, b: "foo" }) + assert.deepEqual(extend(b, a), { a: undefined, b: "foo" }) + assert.end() +}) + +test("handle 0", function(assert) { + var a = { a: "default" } + var b = { a: 0 } + + assert.deepEqual(extend(a, b), { a: 0 }) + assert.deepEqual(extend(b, a), { a: "default" }) + assert.end() +}) + +test("is immutable", function (assert) { + var record = {} + + extend(record, { foo: "bar" }) + assert.equal(record.foo, undefined) + assert.end() +}) + +test("null as argument", function (assert) { + var a = { foo: "bar" } + var b = null + var c = void 0 + + assert.deepEqual(extend(b, a, c), { foo: "bar" }) + assert.end() +}) + +test("mutable", function (assert) { + var a = { foo: "bar" } + + mutableExtend(a, { bar: "baz" }) + + assert.equal(a.bar, "baz") + assert.end() +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json new file mode 100644 index 00000000..9612fee2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json @@ -0,0 +1,48 @@ +{ + "name": "through2", + "version": "0.4.1", + "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise", + "main": "through2.js", + "scripts": { + "test": "node test/test.js", + "test-local": "brtapsauce-local test/basic-test.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/rvagg/through2.git" + }, + "keywords": [ + "stream", + "streams2", + "through", + "transform" + ], + "author": { + "name": "Rod Vagg", + "email": "r@va.gg", + "url": "https://github.com/rvagg" + }, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + }, + "devDependencies": { + "tape": "~2.3.0", + "bl": "~0.6.0", + "stream-spigot": "~3.0.1", + "brtapsauce": "~0.2.2" + }, + "readme": "# through2\n\n\n\n[![NPM](https://nodei.co/npm/through2.png?compact=true)](https://nodei.co/npm/through2/) \n\n\n\n**A tiny wrapper around Node streams.Transform (Streams2) to avoid explicit subclassing noise**\n\nInspired by [Dominic Tarr](https://github.com/dominictarr)'s [through](https://github.com/dominictarr/through) in that it's so much easier to make a stream out of a function than it is to set up the prototype chain properly: `through(function (chunk) { ... })`.\n\n```js\nfs.createReadStream('ex.txt')\n .pipe(through2(function (chunk, enc, callback) {\n\n for (var i = 0; i < chunk.length; i++)\n if (chunk[i] == 97)\n chunk[i] = 122 // swap 'a' for 'z'\n\n this.push(chunk)\n \n callback()\n\n }))\n .pipe(fs.createWriteStream('out.txt'))\n```\n\nOr object streams:\n\n```js\nvar all = []\n\nfs.createReadStream('data.csv')\n .pipe(csv2())\n .pipe(through2.obj(function (chunk, enc, callback) {\n\n var data = {\n name : chunk[0]\n , address : chunk[3]\n , phone : chunk[10]\n }\n \n this.push(data)\n \n callback()\n\n }))\n .on('data', function (data) {\n all.push(data)\n })\n .on('end', function () {\n doSomethingSpecial(all)\n })\n```\n\nNote that `through2.obj(fn)` is a convenience wrapper around `through2({ objectMode: true }, fn)`.\n\n## API\n\nthrough2([ options, ] [ transformFunction ] [, flushFunction ])\n\nConsult the **[stream.Transform](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform)** documentation for the exact rules of the `transformFunction` (i.e. `this._transform`) and the optional `flushFunction` (i.e. `this._flush`).\n\n### options\n\nThe options argument is optional and is passed straight through to `stream.Transform`. So you can use `objectMode:true` if you are processing non-binary streams (or just use `through2.obj()`).\n\nThe `options` argument is first, unlike standard convention, because if I'm passing in an anonymous function then I'd prefer for the options argument to not get lost at the end of the call:\n\n```js\nfs.createReadStream('/tmp/important.dat')\n .pipe(through2({ objectMode: true, allowHalfOpen: false }, function (chunk, enc, cb) {\n\n this.push(new Buffer('wut?'))\n cb()\n\n })\n .pipe(fs.createWriteStream('/tmp/wut.txt'))\n```\n\n### transformFunction\n\nThe `transformFunction` must have the following signature: `function (chunk, encoding, callback) {}`. A minimal implementation should call the `callback` function to indicate that the transformation is done, even if that transformation means discarding the chunk.\n\nTo queue a new chunk, call `this.push(chunk)`—this can be called as many times as required before the `callback()` if you have multiple pieces to send on.\n\nIf you **do not provide a `transformFunction`** then you will get a simple simple pass-through stream.\n\n### flushFunction\n\nThe optional `flushFunction` is provided as the last argument (2nd or 3rd, depending on whether you've supplied options) is called just prior to the stream ending. Can be used to finish up any processing that may be in progress.\n\nthrough2.ctor([ options, ] transformFunction[, flushFunction ])\n\nInstead of returning a `stream.Transform` instance, `through2.ctor()` returns a **constructor** for a custom Transform. This is useful when you want to use the same transform logic in multiple instances.\n\n```js\nvar FToC = through2.ctor({objectMode: true}, function (record, encoding, callback) {\n if (record.temp != null && record.unit = \"F\") {\n record.temp = ( ( record.temp - 32 ) * 5 ) / 9\n record.unit = \"C\"\n }\n this.push(record)\n callback()\n})\n\n// Create instances of FToC like so:\nvar converter = new FToC()\n// Or:\nvar converter = FToC()\n// Or specify/override options when you instantiate, if you prefer:\nvar converter = FToC({objectMode: true})\n```\n\n## License\n\n**through2** is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/rvagg/through2/issues" + }, + "homepage": "https://github.com/rvagg/through2", + "_id": "through2@0.4.1", + "dist": { + "shasum": "48772c8b50c4955c25e7cdbe69f4220f4138178b" + }, + "_from": "through2@~0.4.0", + "_resolved": "https://registry.npmjs.org/through2/-/through2-0.4.1.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js new file mode 100644 index 00000000..9d137c7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js @@ -0,0 +1,334 @@ +const test = require('tape') + , through2 = require('../') + , crypto = require('crypto') + , bl = require('bl') + , spigot = require('stream-spigot') + +test('plain through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('pipeable through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + // bl() acts like a proper streams2 stream and passes as much as it's + // asked for, so we really only get one write with such a small amount + // of data + t.equal(s, 'aaaaaaaaaaaaaaaaaaaaaaaaa', 'got transformed string') + t.end() + })) + + var bufs = bl() + bufs.append(crypto.randomBytes(10)) + bufs.append(crypto.randomBytes(5)) + bufs.append(crypto.randomBytes(10)) + bufs.pipe(th2) +}) + +test('object through', function (t) { + t.plan(3) + + var th2 = through2({ objectMode: true}, function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object through with through2.obj', function (t) { + t.plan(3) + + var th2 = through2.obj(function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('flushing through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }, function (callback) { + this.push(new Buffer([ 101, 110, 100 ])) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal(s, 'aaaaaaaaaabbbbbccccccccccend', 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('plain through ctor', function (t) { + var Th2 = through2.ctor(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + var th2 = new Th2() + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('reuse through ctor', function (t) { + t.plan(4) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + if (!this._i) { + t.ok(1, 'did not contain previous instance data (this._i)') + this._i = 97 // 'a' + } else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + var th2 = Th2() + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + + var newInstance = Th2() + newInstance.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaabbbbccccccc', s, 'got transformed string') + })) + + newInstance.write(crypto.randomBytes(7)) + newInstance.write(crypto.randomBytes(4)) + newInstance.write(crypto.randomBytes(7)) + newInstance.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('object through ctor', function (t) { + t.plan(3) + + var Th2 = through2.ctor({ objectMode: true}, function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = new Th2() + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('pipeable object through ctor', function (t) { + t.plan(4) + + var Th2 = through2.ctor({ objectMode: true}, function (record, enc, callback) { + if (record.temp != null && record.unit == 'F') { + record.temp = ( ( record.temp - 32 ) * 5 ) / 9 + record.unit = 'C' + } + this.push(record) + callback() + }) + + var th2 = Th2() + + var expect = [-19, -40, 100, 22] + th2.on('data', function (o) { + t.deepEqual(o, { temp: expect.shift(), unit: 'C' }, 'got transformed object') + }) + + spigot({objectMode: true}, [ + {temp: -2.2, unit: 'F'}, + {temp: -40, unit: 'F'}, + {temp: 212, unit: 'F'}, + {temp: 22, unit: 'C'} + ]).pipe(th2) +}) + +test('object through ctor override', function (t) { + t.plan(3) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({objectMode: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object settings available in transform', function (t) { + t.plan(6) + + var Th2 = through2.ctor({objectMode: true, peek: true}, function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2() + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object settings available in transform override', function (t) { + t.plan(6) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({objectMode: true, peek: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object override extends options', function (t) { + t.plan(6) + + var Th2 = through2.ctor({objectMode: true}, function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({peek: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js new file mode 100644 index 00000000..cc10868b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js @@ -0,0 +1,42 @@ +/* +on rvagg@fletcher: + @0.2.3: Ran 36719 iterations in 10000 ms +*/ + +const through2 = require('../') + , bl = require('bl') + , crypto = require('crypto') + , assert = require('assert') + +function run (callback) { + var bufs = Array.apply(null, Array(10)).map(function () { return crypto.randomBytes(32) }) + , stream = through2(function (chunk, env, callback) { + callback(null, chunk.toString('hex')) + }) + + stream.pipe(bl(function (err, data) { + assert(!err) + assert.equal(data.toString(), Buffer.concat(bufs).toString('hex')) + callback() + })) + + bufs.forEach(function (b) { + stream.write(b) + }) + stream.end() +} + +var count = 0 + , start = Date.now() + +;(function exec () { + count++ + run(function () { + if (Date.now() - start < 1000 * 10) { + return setImmediate(exec) + } + console.log('Ran', count, 'iterations in', Date.now() - start, 'ms') + }) +}()) + +console.log('Running for ~10s') \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js new file mode 100644 index 00000000..a6d28625 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js @@ -0,0 +1,38 @@ +#!/usr/bin/env node + +const user = process.env.SAUCE_USER + , key = process.env.SAUCE_KEY + , path = require('path') + , brtapsauce = require('brtapsauce') + , testFile = path.join(__dirname, 'basic-test.js') + + , capabilities = [ + { browserName: 'chrome' , platform: 'Windows XP', version: '' } + , { browserName: 'firefox' , platform: 'Windows 8' , version: '' } + , { browserName: 'firefox' , platform: 'Windows XP', version: '4' } + , { browserName: 'internet explorer' , platform: 'Windows 8' , version: '10' } + , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '9' } + , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '8' } + , { browserName: 'internet explorer' , platform: 'Windows XP', version: '7' } + , { browserName: 'internet explorer' , platform: 'Windows XP', version: '6' } + , { browserName: 'safari' , platform: 'Windows 7' , version: '5' } + , { browserName: 'safari' , platform: 'OS X 10.8' , version: '6' } + , { browserName: 'opera' , platform: 'Windows 7' , version: '' } + , { browserName: 'opera' , platform: 'Windows 7' , version: '11' } + , { browserName: 'ipad' , platform: 'OS X 10.8' , version: '6' } + , { browserName: 'android' , platform: 'Linux' , version: '4.0', 'device-type': 'tablet' } + ] + +if (!user) + throw new Error('Must set a SAUCE_USER env var') +if (!key) + throw new Error('Must set a SAUCE_KEY env var') + +brtapsauce({ + name : 'Traversty' + , user : user + , key : key + , brsrc : testFile + , capabilities : capabilities + , options : { timeout: 60 * 6 } +}) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js new file mode 100644 index 00000000..aa9b4877 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js @@ -0,0 +1,9 @@ +require('./basic-test') + +if (!process.env.SAUCE_KEY || !process.env.SAUCE_USER) + return console.log('SAUCE_KEY and/or SAUCE_USER not set, not running sauce tests') + +if (!/v0\.10/.test(process.version)) + return console.log('Not Node v0.10.x, not running sauce tests') + +require('./sauce.js') \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js new file mode 100644 index 00000000..c1104848 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js @@ -0,0 +1,78 @@ +var Transform = require('readable-stream/transform') + , inherits = require('util').inherits + , xtend = require('xtend') + + +// a noop _transform function +function noop (chunk, enc, callback) { + callback(null, chunk) +} + + +// create a new export function, used by both the main export and +// the .ctor export, contains common logic for dealing with arguments +function through2 (construct) { + return function (options, transform, flush) { + if (typeof options == 'function') { + flush = transform + transform = options + options = {} + } + + if (typeof transform != 'function') + transform = noop + + if (typeof flush != 'function') + flush = null + + return construct(options, transform, flush) + } +} + + +// main export, just make me a transform stream! +module.exports = through2(function (options, transform, flush) { + var t2 = new Transform(options) + + t2._transform = transform + + if (flush) + t2._flush = flush + + return t2 +}) + + +// make me a reusable prototype that I can `new`, or implicitly `new` +// with a constructor call +module.exports.ctor = through2(function (options, transform, flush) { + function Through2 (override) { + if (!(this instanceof Through2)) + return new Through2(override) + + this.options = xtend(options, override) + + Transform.call(this, this.options) + } + + inherits(Through2, Transform) + + Through2.prototype._transform = transform + + if (flush) + Through2.prototype._flush = flush + + return Through2 +}) + + +module.exports.obj = through2(function (options, transform, flush) { + var t2 = new Transform(xtend({ objectMode: true }, options)) + + t2._transform = transform + + if (flush) + t2._flush = flush + + return t2 +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/package.json new file mode 100644 index 00000000..d289871c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/download/package.json @@ -0,0 +1,55 @@ +{ + "name": "download", + "version": "0.1.10", + "description": "Download and extract files effortlessly", + "keywords": [ + "url", + "http", + "download", + "extract" + ], + "homepage": "https://github.com/kevva/download", + "bugs": { + "url": "https://github.com/kevva/download/issues" + }, + "author": { + "name": "Kevin Martensson", + "email": "kevinmartensson@gmail.com", + "url": "http://kevinmartensson.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/kevva/download.git" + }, + "scripts": { + "test": "mocha --reporter list" + }, + "main": "download.js", + "files": [ + "download.js" + ], + "dependencies": { + "decompress": "~0.1.5", + "each-async": "~0.1.1", + "mkdirp": "~0.3.5", + "request": "~2.31.0", + "through2": "~0.4.0" + }, + "devDependencies": { + "mocha": "~1.17.0", + "nock": "~0.27.1", + "rimraf": "~2.2.5" + }, + "engines": { + "node": ">=0.10.0" + }, + "readme": "# download [![Build Status](https://secure.travis-ci.org/kevva/download.png?branch=master)](http://travis-ci.org/kevva/download)\n\nDownload and extract files effortlessly in Node.js.\n\n## Getting started\n\nInstall with [npm](https://npmjs.org/package/download): `npm install download`\n\n## Examples\n\nIf you're fetching an archive you can set `extract: true` in options and\nit'll extract it for you.\n\n```js\nvar download = require('download');\n\n// download and extract `foo.tar.gz` into `bar/`\ndownload('foo.tar.gz', 'bar', { extract: true });\n\n// download and save `foo.exe` into `bar/foo.exe` with mode `0755`\ndownload('foo.exe', 'bar', { mode: '0755' });\n\n// download and save `foo.zip` into `bar/foobar.zip`\ndownload({ url: 'foo.zip', name: 'foobar.zip' }, 'bar');\n\n// download and save an array of files in `bar/`\nvar files = ['foo.jpg', 'bar.jpg', 'cat.jpg'];\ndownload(files, 'bar');\n\n// download, save and rename an array of files in `bar/`\nvar files = [{\n url: 'foo.jpg',\n name: 'foobar.jpg'\n}, {\n url: 'cat.jpg',\n name: 'dog.jpg'\n}];\ndownload(files, 'bar');\n```\n\n## API\n\n### download(url, dest, opts)\n\nDownload a file or an array of files to a given destination. Returns an EventEmitter \nthat emits the following possible events:\n\n* `response` — Relayed when the underlying `http.ClientRequest` emits the same \nevent. Listeners called with a `http.IncomingMessage` instance.\n* `data` — Relayed when the underlying `http.IncomingMessage` emits the same \nevent. Listeners called with a `Buffer` instance.\n* `error` — Relayed when the underlying `http.ClientRequest` emits the same event \nor when the response status code is not in the 200s. Listeners called with an \n`Error` instance (in the first case) or the response status code.\n* `close` — Relayed when the underlying `stream.Duplex` emits the same event.\n\n## Options\n\nYou can define options accepted by the [request](https://github.com/mikeal/request/) module besides from the options below.\n\n### extract\n\nType: `Boolean` \nDefault: `false`\n\nIf set to `true`, try extracting the file using [decompress](https://github.com/kevva/decompress/).\n\n### mode\n\nType: `String` \nDefault: `undefined`\n\nSet mode on the downloaded files.\n\n### strip\n\nType: `Number` \nDefault: `0`\n\nEquivalent to `--strip-components` for tar.\n\n## License\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License) (c) [Kevin Mårtensson](http://kevinmartensson.com)\n", + "readmeFilename": "README.md", + "_id": "download@0.1.10", + "dist": { + "shasum": "dc5d3ab4a7fc78e374e2de0381273b7b999bc29d" + }, + "_from": "download@~0.1.2", + "_resolved": "https://registry.npmjs.org/download/-/download-0.1.10.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.npmignore new file mode 100644 index 00000000..2ccbe465 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.npmignore @@ -0,0 +1 @@ +/node_modules/ diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.travis.yml new file mode 100644 index 00000000..c1ffcb31 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - 0.8 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/History.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/History.md new file mode 100644 index 00000000..d1fa5334 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/History.md @@ -0,0 +1,20 @@ + +0.0.2 / 2013-05-29 +================== + + * Updated github url + * Fix bug calling isbin with list of paths + * Add tests for sync version + * Added travis CI passing image to readme + * Added node engines and keywords + * Added travis CI config + * Added basic readme + * Added basic test suite and Makefile + * Add async version + * Some refactorings using 'some' function + * Fixed issue with wrong paths if called multiple times + +0.0.1 / 2012-12-06 +================== + + * Initial release diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/Makefile new file mode 100644 index 00000000..1a2444a1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/Makefile @@ -0,0 +1,6 @@ +REPORTER ?= dot + +test: + @NODE_ENV=test ./node_modules/mocha/bin/mocha -R $(REPORTER) + +.PHONY: test diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/README.md new file mode 100644 index 00000000..5224d614 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/README.md @@ -0,0 +1,59 @@ +[![Build Status](https://secure.travis-ci.org/mbehrendt/isbin.png?branch=master)](https://travis-ci.org/mbehrendt/isbin) + +# Isbin + +Tiny little helper library to determine if a certain binary is available within $PATH or any additional folder. + +# Installation + +```bash +$ npm install isbin +``` + +# Usage + +```js +var isbin = require('isbin'); + +// Test against $PATH +isbin('mysql', function(exists) { + console.log(exists); // ==> Boolean +}); + +// With additional path to test +isbin('mysql', '/usr/local/bin', function(exists) { + console.log(exists); // ==> Boolean +}); + +// Or multiple ones +isbin('mysql', ['/usr/local/bin', '/home/me/bins'], function(exists) { + console.log(exists); // ==> Boolean +}); +``` + +There are also synchronous versions available + +```js +var exists = isbin('mysql'); +var exists = isbin('mysql', '/usr/local/bin'); +var exists = isbin('mysql', ['/usr/local/bin', '/home/me/bins']); +``` + +# Running the tests + +```bash +$ npm install +$ make test +``` + +# License + +(The MIT License) + +Copyright (c) 2012 Mario Behrendt info@mario-behrendt.de, Stephan Hoyer + +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/index.js new file mode 100644 index 00000000..bb0a047c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/index.js @@ -0,0 +1 @@ +module.exports = require('./lib'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/lib/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/lib/index.js new file mode 100644 index 00000000..1b8a5cac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/lib/index.js @@ -0,0 +1,51 @@ +/** + * Require dependencies + */ + +var fs = require('fs') + , async = require('async'); + +/** + * Check if given binary exists + * + * @param {String} bin Binary to test + * @param {String|Array} additional Additional paths to check + * @param {Function(result)} isbinChecked Callback when check is done async, optional + * @return {Boolean} True if binary was found + */ + +function isbin(bin, additional, isbinChecked) { + // isbin(bin, cb) + if (!isbinChecked) isbinChecked = additional; + + // Read $PATH to get set up bin folders + var paths = process.env.PATH.split(':') || []; + + // isbin(bin, 'path', cb) + if ('string' === typeof additional) { + paths.push(additional); + } + + // isbin(bin, ['path1', 'path2'], cb) + if ('object' === typeof additional && additional.length !== null) { + paths.concat(additional); + } + + // async check + if ('function' === typeof isbinChecked) { + return async.some(paths, function(path, pathChecked) { + fs.exists(path + '/' + bin, pathChecked); + }, isbinChecked); + } + + // sync check + return paths.reverse().some(function(path) { + return fs.existsSync(path + '/' + bin); + }); +}; + +/** + * Expose module + */ + +module.exports = isbin; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules new file mode 100644 index 00000000..a9aae984 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules @@ -0,0 +1,9 @@ +[submodule "deps/nodeunit"] + path = deps/nodeunit + url = git://github.com/caolan/nodeunit.git +[submodule "deps/UglifyJS"] + path = deps/UglifyJS + url = https://github.com/mishoo/UglifyJS.git +[submodule "deps/nodelint"] + path = deps/nodelint + url = https://github.com/tav/nodelint.git diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore new file mode 100644 index 00000000..9bdfc97c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore @@ -0,0 +1,4 @@ +deps +dist +test +nodelint.cfg \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE new file mode 100644 index 00000000..b7f9d500 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010 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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile new file mode 100644 index 00000000..bad647c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile @@ -0,0 +1,25 @@ +PACKAGE = asyncjs +NODEJS = $(if $(shell test -f /usr/bin/nodejs && echo "true"),nodejs,node) +CWD := $(shell pwd) +NODEUNIT = $(CWD)/node_modules/nodeunit/bin/nodeunit +UGLIFY = $(CWD)/node_modules/uglify-js/bin/uglifyjs +NODELINT = $(CWD)/node_modules/nodelint/nodelint + +BUILDDIR = dist + +all: clean test build + +build: $(wildcard lib/*.js) + mkdir -p $(BUILDDIR) + $(UGLIFY) lib/async.js > $(BUILDDIR)/async.min.js + +test: + $(NODEUNIT) test + +clean: + rm -rf $(BUILDDIR) + +lint: + $(NODELINT) --config nodelint.cfg lib/async.js + +.PHONY: test build all diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md new file mode 100644 index 00000000..1bbbc477 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md @@ -0,0 +1,1021 @@ +# Async.js + +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), it can also be used directly in the +browser. + +Async provides around 20 functions that include the usual 'functional' +suspects (map, reduce, filter, forEach…) 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 + + 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'], path.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. + + +## Download + +Releases are available for download from +[GitHub](http://github.com/caolan/async/downloads). +Alternatively, you can install using Node Package Manager (npm): + + npm install async + + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed + +__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped + + +## In the Browser + +So far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage: + + + + + +## Documentation + +### Collections + +* [forEach](#forEach) +* [map](#map) +* [filter](#filter) +* [reject](#reject) +* [reduce](#reduce) +* [detect](#detect) +* [sortBy](#sortBy) +* [some](#some) +* [every](#every) +* [concat](#concat) + +### Control Flow + +* [series](#series) +* [parallel](#parallel) +* [whilst](#whilst) +* [until](#until) +* [waterfall](#waterfall) +* [queue](#queue) +* [auto](#auto) +* [iterator](#iterator) +* [apply](#apply) +* [nextTick](#nextTick) + +### Utils + +* [memoize](#memoize) +* [unmemoize](#unmemoize) +* [log](#log) +* [dir](#dir) +* [noConflict](#noConflict) + + +## Collections + + +### forEach(arr, iterator, callback) + +Applies an iterator function to each item in an array, 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 this callback, the main +callback for the forEach 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. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(err) - A callback which is called after all the iterator functions + have finished, or an error has occurred. + +__Example__ + + // assuming openFiles is an array of file names and saveFile is a function + // to save the modified contents of that file: + + async.forEach(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error + }); + +--------------------------------------- + + +### forEachSeries(arr, iterator, callback) + +The same as forEach only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. This means the iterator functions will complete in order. + + +--------------------------------------- + + +### forEachLimit(arr, limit, iterator, callback) + +The same as forEach only the iterator is applied to batches of items in the +array, in series. The next batch of iterators is only called once the current +one has completed processing. + +__Arguments__ + +* arr - An array to iterate over. +* limit - How many items should be in each batch. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(err) - A callback which is called after all the iterator functions + have finished, or an error has occurred. + +__Example__ + + // Assume documents is an array of JSON objects and requestApi is a + // function that interacts with a rate-limited REST api. + + async.forEachLimit(documents, 20, requestApi, function(err){ + // if any of the saves produced an error, err would equal that error + }); +--------------------------------------- + + +### map(arr, iterator, callback) + +Produces a new array of values by mapping each value in the given array through +the iterator function. The iterator is called with an item from the array and a +callback for when it has finished processing. The callback takes 2 arguments, +an error and the transformed item from the array. If the iterator passes an +error to this 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 array. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed + with an error (which can be null) and a transformed item. +* callback(err, results) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is an array of the + transformed items from the original array. + +__Example__ + + async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file + }); + +--------------------------------------- + + +### mapSeries(arr, iterator, callback) + +The same as map only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. The results array will be in the same order as the original. + + +--------------------------------------- + + +### filter(arr, iterator, callback) + +__Alias:__ select + +Returns a new array of all the values 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 path.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 the array. + The iterator is passed a callback which must be called once it has completed. +* callback(results) - A callback which is called after all the iterator + functions have finished. + +__Example__ + + async.filter(['file1','file2','file3'], path.exists, function(results){ + // results now equals an array of the existing files + }); + +--------------------------------------- + + +### filterSeries(arr, iterator, callback) + +__alias:__ selectSeries + +The same as filter only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. The results array will be in the same order as the original. + +--------------------------------------- + + +### reject(arr, iterator, callback) + +The opposite of filter. Removes values that pass an async truth test. + +--------------------------------------- + + +### rejectSeries(arr, iterator, callback) + +The same as filter, only the iterator is applied to each item in the array +in series. + + +--------------------------------------- + + +### reduce(arr, memo, iterator, callback) + +__aliases:__ inject, foldl + +Reduces a list of values 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, 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 its 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 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) - A callback which is called after all the iterator + functions have finished. Result is the reduced value. + +__Example__ + + 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 + }); + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, callback) + +__Alias:__ foldr + +Same as reduce, only operates on the items in the array in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, callback) + +Returns the first value in a list 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 array (in terms of order) that passes the test. + +If order within the original array is important then look at detectSeries. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A truth test to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - 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. + +__Example__ + + async.detect(['file1','file2','file3'], path.exists, function(result){ + // result now equals the first file in the list that exists + }); + +--------------------------------------- + + +### detectSeries(arr, iterator, callback) + +The same as detect, only the iterator is applied to each item in the array +in series. This means the result is always the first in the original array (in +terms of array order) that passes the truth test. + + +--------------------------------------- + + +### sortBy(arr, iterator, callback) + +Sorts a list by the results of running each value through an async iterator. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback 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) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is the items from + the original array sorted by the values returned by the iterator calls. + +__Example__ + + 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 + }); + + +--------------------------------------- + + +### some(arr, iterator, callback) + +__Alias:__ any + +Returns true if at least one element in the array 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 path.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. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - 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. + +__Example__ + + async.some(['file1','file2','file3'], path.exists, function(result){ + // if result is true then at least one of the files exists + }); + +--------------------------------------- + + +### every(arr, iterator, callback) + +__Alias:__ all + +Returns true if every element in the array 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 path.exists. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A truth test to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - A callback which is called after all the iterator + functions have finished. Result will be either true or false depending on + the values of the async tests. + +__Example__ + + async.every(['file1','file2','file3'], path.exists, function(result){ + // if result is true then every file exists + }); + +--------------------------------------- + + +### concat(arr, iterator, callback) + +Applies an iterator to each item in a list, concatenating the results. Returns the +concatenated list. The iterators 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 the arguments passed to the iterator function. + +__Arguments__ + +* arr - An array to iterate over +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed + with an error (which can be null) and an array of results. +* callback(err, results) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is an array containing + the concatenated results of the iterator function. + +__Example__ + + async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories + }); + +--------------------------------------- + + +### concatSeries(arr, iterator, callback) + +Same as async.concat, but executes in series instead of parallel. + + +## Control Flow + + +### series(tasks, [callback]) + +Run an array of functions 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 the callback for the series 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. + +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 +async.series. + + +__Arguments__ + +* tasks - An array or object containing functions to run, each function is passed + a callback it must call on completion. +* callback(err, results) - An optional callback to run once all the functions + have completed. This function gets an array of all the arguments passed to + the callbacks used in the array. + +__Example__ + + 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} + }); + + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run an 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. + +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 +async.parallel. + + +__Arguments__ + +* tasks - An array or object containing functions to run, each function is passed a + callback it must call on completion. +* callback(err, results) - An optional callback to run once all the functions + have completed. This function gets an array of all the arguments passed to + the callbacks used in the array. + +__Example__ + + 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} + }); + + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call fn, while test returns true. Calls the callback when stopped, +or an error occurs. + +__Arguments__ + +* test() - synchronous truth test to perform before each execution of fn. +* fn(callback) - A function to call each time the test passes. The function is + passed a callback which must be called once it has completed with an optional + error as the first argument. +* callback(err) - A callback which is called after the test fails and repeated + execution of fn has stopped. + +__Example__ + + var count = 0; + + async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } + ); + + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call fn, until test returns true. Calls the callback when stopped, +or an error occurs. + +The inverse of async.whilst. + + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs an array of functions in series, each passing their results to the next in +the array. However, if any of the functions pass an error to the 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 it + must call on completion. +* 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__ + + async.waterfall([ + function(callback){ + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback){ + callback(null, 'three'); + }, + function(arg1, callback){ + // arg1 now equals 'three' + callback(null, 'done'); + } + ], function (err, result) { + // result now equals 'done' + }); + + +--------------------------------------- + + +### queue(worker, concurrency) + +Creates a queue object with the specified concurrency. Tasks added to the +queue will be processed in parallel (up to the concurrency limit). If all +workers are in progress, the task is queued until one is available. Once +a worker has completed a task, the task's callback is called. + +__Arguments__ + +* worker(task, callback) - An asynchronous function for processing a queued + task. +* concurrency - An integer for determining how many worker functions should be + run in parallel. + +__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. +* 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, 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 + +__Example__ + + // 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 bar'); + }); + + +--------------------------------------- + + +### auto(tasks, [callback]) + +Determines the best order for running functions 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, that function will not complete +(so any other functions depending on it will not run) and the main callback +will be called immediately with the error. Functions also receive an object +containing the results of functions which have completed so far. + +__Arguments__ + +* tasks - An object literal containing named functions or an array of + requirements, with the function itself the last item in the array. The key + used for each function or array is used when specifying requirements. The + syntax is easier to understand by looking at the example. +* callback(err, results) - An optional callback which is called when all the + tasks have been completed. The callback will receive an error as an argument + if any tasks pass an error to their callback. If all tasks complete + successfully, it will receive an object containing their results. + +__Example__ + + async.auto({ + get_data: function(callback){ + // async code to get some data + }, + make_folder: function(callback){ + // async code to create a directory to store a file in + // this is run at the same time as getting the data + }, + write_file: ['get_data', 'make_folder', function(callback){ + // 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){ + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + }] + }); + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + + async.parallel([ + function(callback){ + // async code to get some data + }, + function(callback){ + // async code to create a directory to store a file in + // this is run at the same time as getting the data + } + ], + function(results){ + async.series([ + function(callback){ + // once there is some data and the directory exists, + // write the data to a file in the directory + }, + email_link: function(callback){ + // once the file is written let's email a link to it... + } + ]); + }); + +For a complicated series of async tasks using the auto function makes adding +new tasks much easier and makes the code more readable. + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the array, +returning a continuation to call the next one after that. Its also possible to +'peek' the next iterator by doing 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, each function is passed a callback it + must call on completion. + +__Example__ + + 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' + + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied, a useful +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__ + + // 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: + + node> var fn = async.apply(sys.puts, 'one'); + node> fn('two', 'three'); + one + two + three + +--------------------------------------- + + +### nextTick(callback) + +Calls the callback on a later loop around the event loop. In node.js this just +calls process.nextTick, in the browser it falls back to setTimeout(callback, 0), +which means other higher priority events may precede the execution of the callback. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* callback - The function to call on a later loop around the event loop. + +__Example__ + + var call_order = []; + async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two] + }); + call_order.push('one') + + +## Utils + + +### 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. + +__Arguments__ + +* fn - the function you 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__ + + 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 + }); + + +### unmemoize(fn) + +Undoes a memoized function, reverting it to the original, unmemoized +form. Comes handy in tests. + +__Arguments__ + +* fn - the memoized function + + +### 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__ + + var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); + }; + + node> async.log(hello, 'world'); + 'hello world' + + +--------------------------------------- + + +### 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__ + + var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); + }; + + node> async.dir(hello, 'world'); + {hello: 'world'} + + +--------------------------------------- + + +### noConflict() + +Changes the value of async back to its original value, returning a reference to the +async object. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js new file mode 100644 index 00000000..8e238453 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js @@ -0,0 +1,3 @@ +// This file is just added for convenience so this repository can be +// directly checked out into a project's deps folder +module.exports = require('./lib/async'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js new file mode 100644 index 00000000..7cc4f5ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js @@ -0,0 +1,692 @@ +/*global setTimeout: false, console: false */ +(function () { + + var async = {}; + + // global on the server, window in the browser + var root = this, + previous_async = root.async; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + else { + root.async = async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function (arr, iterator) { + if (arr.forEach) { + return arr.forEach(iterator); + } + for (var i = 0; i < arr.length; i += 1) { + iterator(arr[i], i, arr); + } + }; + + var _map = function (arr, iterator) { + if (arr.map) { + return arr.map(iterator); + } + var results = []; + _forEach(arr, function (x, i, a) { + results.push(iterator(x, i, a)); + }); + return results; + }; + + var _reduce = function (arr, iterator, memo) { + if (arr.reduce) { + return arr.reduce(iterator, memo); + } + _forEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + if (typeof process === 'undefined' || !(process.nextTick)) { + async.nextTick = function (fn) { + setTimeout(fn, 0); + }; + } + else { + async.nextTick = process.nextTick; + } + + async.forEach = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + _forEach(arr, function (x) { + iterator(x, function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(null); + } + } + }); + }); + }; + + async.forEachSeries = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(null); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + + async.forEachLimit = function (arr, limit, iterator, callback) { + callback = callback || function () {}; + if (!arr.length || limit <= 0) { + return callback(); + } + var completed = 0; + var started = 0; + var running = 0; + + (function replenish () { + if (completed === arr.length) { + return callback(); + } + + while (running < limit && started < arr.length) { + started += 1; + running += 1; + iterator(arr[started - 1], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + running -= 1; + if (completed === arr.length) { + callback(); + } + else { + replenish(); + } + } + }); + } + })(); + }; + + + var doParallel = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEach].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.forEachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + main_callback = function () {}; + } + else { + callback(); + } + }); + }, function (err) { + main_callback(); + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + 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 { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + if (!keys.length) { + return callback(null); + } + + var results = {}; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + _forEach(listeners.slice(0), function (fn) { + fn(); + }); + }; + + addListener(function () { + if (_keys(results).length === keys.length) { + callback(null, results); + callback = function () {}; + } + }); + + _forEach(keys, function (k) { + var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; + var taskCallback = function (err) { + if (err) { + callback(err); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + taskComplete(); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + }; + if (ready()) { + task[task.length - 1](taskCallback, results); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + }; + addListener(listener); + } + }); + }; + + async.waterfall = function (tasks, callback) { + callback = callback || function () {}; + if (!tasks.length) { + return callback(); + } + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.nextTick(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + async.parallel = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.forEach(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.forEachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + 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 = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.queue = function (worker, concurrency) { + var workers = 0; + var q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + push: function (data, callback) { + if(data.constructor !== Array) { + data = [data]; + } + _forEach(data, function(task) { + q.tasks.push({ + data: task, + callback: typeof callback === 'function' ? callback : null + }); + if (q.saturated && q.tasks.length == concurrency) { + q.saturated(); + } + async.nextTick(q.process); + }); + }, + process: function () { + if (workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + if(q.empty && q.tasks.length == 0) q.empty(); + workers += 1; + worker(task.data, function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + if(q.drain && q.tasks.length + workers == 0) q.drain(); + q.process(); + }); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + } + }; + return q; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _forEach(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 = {}; + hasher = hasher || function (x) { + return x; + }; + var memoized = function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + callback.apply(null, memo[key]); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([function () { + memo[key] = arguments; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, arguments); + } + }])); + } + }; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + +}()); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json new file mode 100644 index 00000000..31e18559 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json @@ -0,0 +1,36 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "main": "./index", + "author": { + "name": "Caolan McMahon" + }, + "version": "0.1.22", + "repository": { + "type": "git", + "url": "http://github.com/caolan/async.git" + }, + "bugs": { + "url": "http://github.com/caolan/async/issues" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/caolan/async/raw/master/LICENSE" + } + ], + "devDependencies": { + "nodeunit": ">0.0.0", + "uglify-js": "1.2.x", + "nodelint": ">0.0.0" + }, + "readme": "# Async.js\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [node.js](http://nodejs.org), it can also be used directly in the\nbrowser.\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (map, reduce, filter, forEach…) as well as some common patterns\nfor asynchronous control flow (parallel, series, waterfall…). All these\nfunctions assume you follow the node.js convention of providing a single\ncallback as the last argument of your async function.\n\n\n## Quick Examples\n\n async.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n });\n\n async.filter(['file1','file2','file3'], path.exists, function(results){\n // results now equals an array of the existing files\n });\n\n async.parallel([\n function(){ ... },\n function(){ ... }\n ], callback);\n\n async.series([\n function(){ ... },\n function(){ ... }\n ]);\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n\n## Download\n\nReleases are available for download from\n[GitHub](http://github.com/caolan/async/downloads).\nAlternatively, you can install using Node Package Manager (npm):\n\n npm install async\n\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed\n\n__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped\n\n\n## In the Browser\n\nSo far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:\n\n \n \n\n\n## Documentation\n\n### Collections\n\n* [forEach](#forEach)\n* [map](#map)\n* [filter](#filter)\n* [reject](#reject)\n* [reduce](#reduce)\n* [detect](#detect)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [whilst](#whilst)\n* [until](#until)\n* [waterfall](#waterfall)\n* [queue](#queue)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n\n### Utils\n\n* [memoize](#memoize)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n\n### forEach(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the forEach function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n // assuming openFiles is an array of file names and saveFile is a function\n // to save the modified contents of that file:\n\n async.forEach(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n });\n\n---------------------------------------\n\n\n### forEachSeries(arr, iterator, callback)\n\nThe same as forEach only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n\n### forEachLimit(arr, limit, iterator, callback)\n\nThe same as forEach only the iterator is applied to batches of items in the\narray, in series. The next batch of iterators is only called once the current\none has completed processing.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - How many items should be in each batch.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n // Assume documents is an array of JSON objects and requestApi is a\n // function that interacts with a rate-limited REST api.\n\n async.forEachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n });\n---------------------------------------\n\n\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n async.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n });\n\n---------------------------------------\n\n\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a new array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(results) - A callback which is called after all the iterator\n functions have finished.\n\n__Example__\n\n async.filter(['file1','file2','file3'], path.exists, function(results){\n // results now equals an array of the existing files\n });\n\n---------------------------------------\n\n\n### filterSeries(arr, iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n\n### rejectSeries(arr, iterator, callback)\n\nThe same as filter, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. For performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then its probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n array to produce the next step in the reduction. The iterator is passed a\n callback which accepts an optional error as its first argument, and the state\n of the reduction as the second. If an error is passed to the callback, the\n reduction is stopped and the main callback is immediately called with the\n error.\n* callback(err, result) - A callback which is called after all the iterator\n functions have finished. Result is the reduced value.\n\n__Example__\n\n async.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n }, function(err, result){\n // result is now equal to the last value of memo, which is 6\n });\n\n---------------------------------------\n\n\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value undefined if none passed.\n\n__Example__\n\n async.detect(['file1','file2','file3'], path.exists, function(result){\n // result now equals the first file in the list that exists\n });\n\n---------------------------------------\n\n\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and a value to use as the sort criteria.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is the items from\n the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n async.sortBy(['file1','file2','file3'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n }, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n });\n\n\n---------------------------------------\n\n\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n either true or false depending on the values of the async tests.\n\n__Example__\n\n async.some(['file1','file2','file3'], path.exists, function(result){\n // if result is true then at least one of the files exists\n });\n\n---------------------------------------\n\n\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called after all the iterator\n functions have finished. Result will be either true or false depending on\n the values of the async tests.\n\n__Example__\n\n async.every(['file1','file2','file3'], path.exists, function(result){\n // if result is true then every file exists\n });\n\n---------------------------------------\n\n\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array containing\n the concatenated results of the iterator function.\n\n__Example__\n\n async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n });\n\n---------------------------------------\n\n\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n a callback it must call on completion.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets an array of all the arguments passed to\n the callbacks used in the array.\n\n__Example__\n\n async.series([\n function(callback){\n // do some stuff ...\n callback(null, 'one');\n },\n function(callback){\n // do some more stuff ...\n callback(null, 'two');\n },\n ],\n // optional callback\n function(err, results){\n // results is now equal to ['one', 'two']\n });\n\n\n // an example using an object instead of an array\n async.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n },\n },\n function(err, results) {\n // results is now equal to: {one: 1, two: 2}\n });\n\n\n---------------------------------------\n\n\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed a\n callback it must call on completion.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets an array of all the arguments passed to\n the callbacks used in the array.\n\n__Example__\n\n async.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, 'one');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, 'two');\n }, 100);\n },\n ],\n // optional callback\n function(err, results){\n // the results array will equal ['one','two'] even though\n // the second function had a shorter timeout.\n });\n\n\n // an example using an object instead of an array\n async.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n },\n },\n function(err, results) {\n // results is now equals to: {one: 1, two: 2}\n });\n\n\n---------------------------------------\n\n\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n passed a callback which must be called once it has completed with an optional\n error as the first argument.\n* callback(err) - A callback which is called after the test fails and repeated\n execution of fn has stopped.\n\n__Example__\n\n var count = 0;\n\n async.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n );\n\n\n---------------------------------------\n\n\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n\n---------------------------------------\n\n\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a callback it\n must call on completion.\n* callback(err, [results]) - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n async.waterfall([\n function(callback){\n callback(null, 'one', 'two');\n },\n function(arg1, arg2, callback){\n callback(null, 'three');\n },\n function(arg1, callback){\n // arg1 now equals 'three'\n callback(null, 'done');\n }\n ], function (err, result) {\n // result now equals 'done' \n });\n\n\n---------------------------------------\n\n\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task's callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n task.\n* concurrency - An integer for determining how many worker functions should be\n run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n run in parallel. This property can be changed after a queue is created to\n alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n // create a queue object with concurrency 2\n\n var q = async.queue(function (task, callback) {\n console.log('hello ' + task.name);\n callback();\n }, 2);\n\n\n // assign a callback\n q.drain = function() {\n console.log('all items have been processed');\n }\n\n // add some items to the queue\n\n q.push({name: 'foo'}, function (err) {\n console.log('finished processing foo');\n });\n q.push({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n });\n\n // add some items to the queue (batch-wise)\n\n q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n console.log('finished processing bar');\n });\n\n\n---------------------------------------\n\n\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n requirements, with the function itself the last item in the array. The key\n used for each function or array is used when specifying requirements. The\n syntax is easier to understand by looking at the example.\n* callback(err, results) - An optional callback which is called when all the\n tasks have been completed. The callback will receive an error as an argument\n if any tasks pass an error to their callback. If all tasks complete\n successfully, it will receive an object containing their results.\n\n__Example__\n\n async.auto({\n get_data: function(callback){\n // async code to get some data\n },\n make_folder: function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n },\n write_file: ['get_data', 'make_folder', function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, filename);\n }],\n email_link: ['write_file', function(callback, results){\n // once the file is written let's email a link to it...\n // results.write_file contains the filename returned by write_file.\n }]\n });\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n async.parallel([\n function(callback){\n // async code to get some data\n },\n function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n }\n ],\n function(results){\n async.series([\n function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n },\n email_link: function(callback){\n // once the file is written let's email a link to it...\n }\n ]);\n });\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. Its also possible to\n'peek' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a callback it\n must call on completion.\n\n__Example__\n\n var iterator = async.iterator([\n function(){ sys.p('one'); },\n function(){ sys.p('two'); },\n function(){ sys.p('three'); }\n ]);\n\n node> var iterator2 = iterator();\n 'one'\n node> var iterator3 = iterator2();\n 'two'\n node> iterator3();\n 'three'\n node> var nextfn = iterator2.next();\n node> nextfn();\n 'three'\n\n\n---------------------------------------\n\n\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n // using apply\n\n async.parallel([\n async.apply(fs.writeFile, 'testfile1', 'test1'),\n async.apply(fs.writeFile, 'testfile2', 'test2'),\n ]);\n\n\n // the same process without using apply\n\n async.parallel([\n function(callback){\n fs.writeFile('testfile1', 'test1', callback);\n },\n function(callback){\n fs.writeFile('testfile2', 'test2', callback);\n },\n ]);\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n node> var fn = async.apply(sys.puts, 'one');\n node> fn('two', 'three');\n one\n two\n three\n\n---------------------------------------\n\n\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setTimeout(callback, 0),\nwhich means other higher priority events may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n var call_order = [];\n async.nextTick(function(){\n call_order.push('two');\n // call_order now equals ['one','two]\n });\n call_order.push('one')\n\n\n## Utils\n\n\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\n__Arguments__\n\n* fn - the function you to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n results, it has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n var slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n };\n var fn = async.memoize(slow_fn);\n\n // fn can now be used as if it were slow_fn\n fn('some name', function () {\n // callback\n });\n\n\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n var hello = function(name, callback){\n setTimeout(function(){\n callback(null, 'hello ' + name);\n }, 1000);\n };\n\n node> async.log(hello, 'world');\n 'hello world'\n\n\n---------------------------------------\n\n\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n var hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n };\n\n node> async.dir(hello, 'world');\n {hello: 'world'}\n\n\n---------------------------------------\n\n\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/caolan/async", + "_id": "async@0.1.22", + "dist": { + "shasum": "3b270eedc0419d6f92a664444ce98e0f59a8fef7" + }, + "_from": "async@0.1.22", + "_resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/package.json new file mode 100644 index 00000000..1d8c8459 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/package.json @@ -0,0 +1,45 @@ +{ + "name": "isbin", + "version": "0.0.2", + "description": "Checks for available binaries on unix machines", + "main": "index.js", + "engines": { + "node": ">= 0.8.0" + }, + "keywords": [ + "fs", + "bin", + "binary", + "exists", + "check", + "path" + ], + "scripts": { + "test": "make test" + }, + "repository": { + "type": "git", + "url": "git://github.com/behrendtio/isbin.git" + }, + "author": "", + "license": "MIT", + "dependencies": { + "async": "0.1.22" + }, + "devDependencies": { + "mocha": "1.7.3", + "should": "1.2.1" + }, + "readme": "[![Build Status](https://secure.travis-ci.org/mbehrendt/isbin.png?branch=master)](https://travis-ci.org/mbehrendt/isbin)\n\n# Isbin\n\nTiny little helper library to determine if a certain binary is available within $PATH or any additional folder.\n\n# Installation\n\n```bash\n$ npm install isbin\n```\n\n# Usage\n\n```js\nvar isbin = require('isbin');\n\n// Test against $PATH\nisbin('mysql', function(exists) {\n console.log(exists); // ==> Boolean\n});\n\n// With additional path to test\nisbin('mysql', '/usr/local/bin', function(exists) {\n console.log(exists); // ==> Boolean\n});\n\n// Or multiple ones\nisbin('mysql', ['/usr/local/bin', '/home/me/bins'], function(exists) {\n console.log(exists); // ==> Boolean\n});\n```\n\nThere are also synchronous versions available\n\n```js\nvar exists = isbin('mysql');\nvar exists = isbin('mysql', '/usr/local/bin');\nvar exists = isbin('mysql', ['/usr/local/bin', '/home/me/bins']);\n```\n\n# Running the tests\n\n```bash\n$ npm install\n$ make test\n```\n\n# License\n\n(The MIT License)\n\nCopyright (c) 2012 Mario Behrendt info@mario-behrendt.de, Stephan Hoyer \n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/behrendtio/isbin/issues" + }, + "homepage": "https://github.com/behrendtio/isbin", + "_id": "isbin@0.0.2", + "dist": { + "shasum": "2a35fb234ad5ee30f78da61b57e8f42ac43ec5a4" + }, + "_from": "isbin@0.0.2", + "_resolved": "https://registry.npmjs.org/isbin/-/isbin-0.0.2.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js new file mode 100644 index 00000000..068a38a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js @@ -0,0 +1,39 @@ +var isbin = require('../'); + +describe('isbin', function() { + it('accepts binary, additional path and callback', function(done) { + isbin('ls', '/etc', function(exists) { + exists.should.be.a('boolean'); + done(); + }) + }); + + it('accepts array of paths', function(done) { + isbin('ls', ['/etc', '/home'], function(exists) { + exists.should.be.a('boolean'); + done(); + }); + }); + + it('accepts just binary and callback', function(done) { + isbin('ls', function(exists) { + exists.should.be.a('boolean'); + done(); + }); + }); + + it('accepts binary, additional path and callback', function() { + var exists = isbin('ls', '/etc'); + exists.should.be.a('boolean'); + }); + + it('accepts array of paths', function() { + var exists = isbin('ls', ['/etc', '/home']); + exists.should.be.a('boolean'); + }); + + it('accepts just binary', function() { + var exists = isbin('ls'); + exists.should.be.a('boolean'); + }); +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts new file mode 100644 index 00000000..e5eb9f87 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts @@ -0,0 +1,4 @@ +--require should +--bail +--ui bdd +--slow 100 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.editorconfig b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.editorconfig new file mode 100644 index 00000000..e036e247 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.editorconfig @@ -0,0 +1,20 @@ +; EditorConfig is awesome: http://EditorConfig.org + +; top-most EditorConfig file +root = true + +; base rules +[*] +end_of_line = lf +insert_final_newline = false +indent_style = space +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true + +; The default indent on package.json is 2 spaces, better to keep it so we can +; use `npm install --save` and other features that rewrites the package.json +; file automatically +[package.json] +indent_style = space +indent_size = 2 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.jshintrc b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.jshintrc new file mode 100644 index 00000000..bbdb29cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.jshintrc @@ -0,0 +1,69 @@ +{ + // Settings + "passfail" : false, // Stop on first error. + "maxerr" : 50, // Maximum error before stopping. + + + // Predefined globals whom JSHint will ignore. + "browser" : true, // Standard browser globals e.g. `window`, `document`. + "couch" : false, + "dojo" : false, + "jquery" : true, + "mootools" : false, + "node" : false, + "prototypejs" : false, + "rhino" : false, + "wsh" : false, + + // Custom globals. + "predef" : [ + "define", + "require" + ], + + + // Development. + "debug" : false, // Allow debugger statements e.g. browser breakpoints. + "devel" : false, // Allow developments statements e.g. `console.log();`. + + + // EcmaScript 5. + "es5" : false, // Allow EcmaScript 5 syntax. + "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). + "strict" : false, // Require `use strict` pragma in every file. + + + // The Good Parts. + "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). + "bitwise" : false, // Prohibit bitwise operators (&, |, ^, etc.). + "boss" : true, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. + "curly" : false, // Require {} for every new block or scope. + "eqeqeq" : true, // Require triple equals i.e. `===`. + "eqnull" : true, // Tolerate use of `== null`. + "evil" : false, // Tolerate use of `eval`. + "expr" : false, // Tolerate `ExpressionStatement` as Programs. + "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. + "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef" : false, // Prohibit variable use before definition. + "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. + "loopfunc" : false, // Allow functions to be defined within loops. + "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "regexdash" : true, // Tolerate unescaped last dash i.e. `[-...]`. + "regexp" : false, // Prohibit `.` and `[^...]` in regular expressions. + "scripturl" : false, // Tolerate script-targeted URLs. + "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. + "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. + "undef" : false, // Require all non-global variables be declared before they are used. + + + // Personal styling prefrences. + "newcap" : true, // Require capitalization of all constructor functions e.g. `new F()`. + "noempty" : true, // Prohipit use of empty blocks. + "nomen" : false, // Prohibit use of initial or trailing underbars in names. + "nonew" : true, // Prohibit use of constructors for side-effects. + "onevar" : false, // Allow only one `var` statement per function. + "plusplus" : false, // Prohibit use of `++` & `--`. + "sub" : false, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. + "trailing" : true, // Prohibit trailing whitespaces. + "white" : false // Check against strict whitespace and indentation rules. +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.npmignore new file mode 100644 index 00000000..1341acd9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.npmignore @@ -0,0 +1,30 @@ +# dumb files +# ========== + +.tmp* +.project +.settings/ +.livereload +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db + + +# stuff not needed by node +# ======================== + +node_modules/ +tests/ +_build/ +doc_html/ +coverage/ + +# we keep the doc/ folder in case npm decides to display it in the future +# also good in case user is using an old version or working offline + +# we also keep the src/ folder in case the user still needs the AMD modules +# after build (see issue #102) + +bower.json +build.js diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.travis.yml new file mode 100644 index 00000000..36de1532 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/.travis.yml @@ -0,0 +1,13 @@ + language: node_js + node_js: + - "0.8" + script: "npm test --coverage" + notifications: + irc: + channels: + - "irc.freenode.org#moutjs" + on_success: always + on_failure: always + use_notice: true + skip_join: true + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md new file mode 100644 index 00000000..0f5eac12 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md @@ -0,0 +1,93 @@ +mout changelog +============== + +v0.6.0 (2013/05/22) +------------------- + + - add optional delimeter to `string/unCamelCase` + - allow custom char on `number/pad` + - allow underscore characters in `string/removeNonWord` + - accept `level` on `array/flatten` instead of a flag + - convert underscores to camelCase in `string/camelCase` + - remove `create()` from number/currencyFormat + - add `date/dayOfTheYear` + - add `date/diff` + - add `date/isSame` + - add `date/startOf` + - add `date/strftime` + - add `date/timezoneAbbr` + - add `date/timezoneOffset` + - add `date/totalDaysInYear` + - add `date/weekOfTheYear` + - add `function/timeout` + - add `object/bindAll` + - add `object/functions` + - add `time/convert` + + +v0.5.0 (2013/04/04) +------------------- + + - add `array/collect` + - add `callback` parameter to `object/equals` and `object/deepEquals` to allow + custom compare operations. + - normalize behavior in `array/*` methods to treat `null` values as empty + arrays when reading from array + - add `date/parseIso` + - add `date/isLeapYear` + - add `date/totalDaysInMonth` + - add `object/deepMatches` + - change `function/makeIterator_` to use `deepMatches` (affects nearly all + iteration methods) + - add `thisObj` parameter to `array/min` and `array/max` + + +v0.4.0 (2013/02/26) +------------------- + + - add `object/equals` + - add `object/deepEquals` + - add `object/matches`. + - add `lang/is` and `lang/isnt`. + - add `lang/isInteger`. + - add `array/findIndex`. + - add shorthand syntax to `array/*`, `object/*` and `collection/*` methods. + - improve `number/sign` behavior when value is NaN or +0 or -0. + - improve `lang/isNaN` to actually check if value *is not a number* without + coercing value; so `[]`, `""`, `null` and `"12"` are considered NaN (#39). + - improve `string/contains` to match ES6 behavior (add fromIndex argument). + + +v0.3.0 (2013/02/01) +------------------- + + - add `lang/clone`. + - add `lang/toString`. + - add `string/replace`. + - add `string/WHITE_SPACES` + - rename `function/curry` to `function/partial`. + - allow custom chars in `string/trim`, `ltrim`, and `rtrim`. + - convert values to strings in the `string/*` functions. + + +v0.2.0 (2013/01/13) +------------------- + + - fix bug in `math/ceil` for negative radixes. + - change `object/deepFillIn` and `object/deepMixIn` to recurse only if both + existing and new values are plain objects. Will not recurse into arrays + or objects not created by the Object constructor. + - add `lang/isPlainObject` to check if a file is a valid object and is created + by the Object constructor + - change `lang/clone` behavior when dealing with custom types (avoid cloning + it by default) and add second argument to allow custom behavior if needed. + - rename `lang/clone` to `lang/deepClone`. + - add VERSION property to index.js + - simplify `math/floor`, `math/round`, `math/ceil` and `math/countSteps`. + + +v0.1.0 (2013/01/09) +------------------- + +- Rename project from "amd-utils" to "mout" + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md new file mode 100644 index 00000000..65d9add1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contributing + +Fork the repo at https://github.com/mout/mout + + > "Write clearly, don't be too clever" - The Elements of Programming Style + +Avoid unnamed functions and follow the other modules structure. By only using named functions it will be easier to extract the code from the AMD module if needed and it will also give better error messages, JavaScript minifiers like [Google Closure Compiler](http://code.google.com/closure/compiler/) and [UglifyJS](https://github.com/mishoo/UglifyJS) will make sure code is as small/optimized as possible. + + > "Make it clear before you make it faster." - The Elements of Programming Style + +Be sure to always create tests for each proposed module. Features will only be merged if they contain proper tests and documentation. + + > "Good code is its own best documentation." - Steve McConnell + +We should do a code review before merging to make sure names makes sense and implementation is as good as possible. + +Try to split your pull requests into logical groups, the smaller the easier to be reviewed/merged. + + + +## Tests & Code Coverage ## + +Tests can be found inside the `tests` folder, to execute them in the browser open the `tests/runner.html`. The same tests also work on node.js by running `npm test`. + +We should have tests for all methods and ensure we have a high code coverage through our continuous integration server ([travis](https://travis-ci.org/mout/mout)). When you ask for a pull request Travis will automatically run the tests on node.js and check the code coverage as well. + +We run `node build pkg` automatically before any `npm test`, so specs and packages should always be in sync. (will avoid human mistakes) + +To check code coverage run `npm test --coverage`, it will generate the reports inside the `coverage` folder and also log the results. Please note that node.js doesn't execute all code branches since we have some conditionals that are only met on old JavaScript engines (eg. IE 7-8), so we will never have 100% code coverage (but should be close to it). + + + +## Build Script ## + +The [build script](https://github.com/mout/mout/wiki/Build-Script) can be extremely helpful and can avoid human mistakes, use it. + + + +## Admins / Pull Requests ## + +Even if you are an admin (have commit rights) please do pull requests when adding new features or changing current behavior, that way we can review the work and discuss. Feel free to push changes that doesn't affect behavior without asking for a pull request (readme, changelog, build script, typos, refactoring, ...). + + + +## Large changes ## + +If you are proposing some major change, please create an issue to discuss it first. (maybe it's outside the scope of the project) + + + +## Questions / IRC / Wiki / Issue Tracker ## + +When in doubt ask someone on IRC to help you ([#moutjs on irc.freenode.net](http://webchat.freenode.net/?channels=moutjs)) or create a [new issue](http://github.com/mout/mout/issues). + +The [project wiki](https://github.com/mout/mout/wiki) can also be a good resource of information. + + +--- + +Check the [contributors list at github](https://github.com/mout/mout/contributors). + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/LICENSE.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/LICENSE.md new file mode 100644 index 00000000..e9ccc2be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/LICENSE.md @@ -0,0 +1,21 @@ +# The MIT License (MIT) +## Copyright (c) 2012, 2013 moutjs team and contributors (http://moutjs.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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/README.md new file mode 100644 index 00000000..872943bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/README.md @@ -0,0 +1,63 @@ +![mout](http://moutjs.com/logo.png "Modular JavaScript Utilties") + +http://moutjs.com/ + +[![Build Status](https://travis-ci.org/mout/mout.png?branch=master)](https://travis-ci.org/mout/mout) + +All code is library agnostic and consist mostly of helper methods that aren't +directly related with the DOM, the purpose of this library isn't to replace +Dojo, jQuery, YUI, Mootools, etc, but to provide modular solutions for common +problems that aren't solved by most of them. Consider it as a crossbrowser +JavaScript standard library. + + + +## Main goals ## + + - increase code reuse; + - be clear (code should be clean/readable); + - be easy to debug; + - be easy to maintain; + - follow best practices; + - follow standards when possible; + - **don't convert JavaScript into another language!** + - be compatible with other frameworks; + - be modular; + - have unit tests for all modules; + - work on multiple environments (IE7+, modern browsers, node.js); + + + +## What shouldn't be here ## + + - UI components; + - CSS selector engine; + - Event system - pub/sub; + - Template engine; + - Anything that isn't generic enough to be on a standard library; + - Anything that could be a separate library and/or isn't a modular utility... + + + +## API Documentation ## + +Online documentation can be found at http://moutjs.com/ or inside the +`doc` folder. + + + +## FAQ / Wiki / IRC ## + +For more info about project structure, design decisions, tips, how to +contribute, build system, etc, please check the [project +wiki](https://github.com/mout/mout/wiki). + +We also have an IRC channel [#moutjs on +irc.freenode.net](http://webchat.freenode.net/?channels=moutjs) + + + +## License ## + +Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array.js new file mode 100644 index 00000000..89d388ba --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array.js @@ -0,0 +1,46 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'append' : require('./array/append'), + 'collect' : require('./array/collect'), + 'combine' : require('./array/combine'), + 'compact' : require('./array/compact'), + 'contains' : require('./array/contains'), + 'difference' : require('./array/difference'), + 'every' : require('./array/every'), + 'filter' : require('./array/filter'), + 'find' : require('./array/find'), + 'findIndex' : require('./array/findIndex'), + 'flatten' : require('./array/flatten'), + 'forEach' : require('./array/forEach'), + 'indexOf' : require('./array/indexOf'), + 'insert' : require('./array/insert'), + 'intersection' : require('./array/intersection'), + 'invoke' : require('./array/invoke'), + 'join' : require('./array/join'), + 'lastIndexOf' : require('./array/lastIndexOf'), + 'map' : require('./array/map'), + 'max' : require('./array/max'), + 'min' : require('./array/min'), + 'pick' : require('./array/pick'), + 'pluck' : require('./array/pluck'), + 'range' : require('./array/range'), + 'reduce' : require('./array/reduce'), + 'reduceRight' : require('./array/reduceRight'), + 'reject' : require('./array/reject'), + 'remove' : require('./array/remove'), + 'removeAll' : require('./array/removeAll'), + 'shuffle' : require('./array/shuffle'), + 'some' : require('./array/some'), + 'sort' : require('./array/sort'), + 'split' : require('./array/split'), + 'toLookup' : require('./array/toLookup'), + 'union' : require('./array/union'), + 'unique' : require('./array/unique'), + 'xor' : require('./array/xor'), + 'zip' : require('./array/zip') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/append.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/append.js new file mode 100644 index 00000000..bf74037e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/append.js @@ -0,0 +1,21 @@ + + + /** + * Appends an array to the end of another. + * The first array will be modified. + */ + function append(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var pad = arr1.length, + i = -1, + len = arr2.length; + while (++i < len) { + arr1[pad + i] = arr2[i]; + } + return arr1; + } + module.exports = append; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/collect.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/collect.js new file mode 100644 index 00000000..58637493 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/collect.js @@ -0,0 +1,27 @@ +var append = require('./append'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Maps the items in the array and concatenates the result arrays. + */ + function collect(arr, callback, thisObj){ + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + var value = callback(arr[i], i, arr); + if (value != null) { + append(results, value); + } + } + + return results; + } + + module.exports = collect; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/combine.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/combine.js new file mode 100644 index 00000000..d66e6212 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/combine.js @@ -0,0 +1,22 @@ +var indexOf = require('./indexOf'); + + /** + * Combines an array with all the items of another. + * Does not allow duplicates and is case and type sensitive. + */ + function combine(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var i = -1, len = arr2.length; + while (++i < len) { + if (indexOf(arr1, arr2[i]) === -1) { + arr1.push(arr2[i]); + } + } + + return arr1; + } + module.exports = combine; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/compact.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/compact.js new file mode 100644 index 00000000..74c176ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/compact.js @@ -0,0 +1,13 @@ +var filter = require('./filter'); + + /** + * Remove all null/undefined items from array. + */ + function compact(arr) { + return filter(arr, function(val){ + return (val != null); + }); + } + + module.exports = compact; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/contains.js new file mode 100644 index 00000000..92bb6ad9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/contains.js @@ -0,0 +1,10 @@ +var indexOf = require('./indexOf'); + + /** + * If array contains values. + */ + function contains(arr, val) { + return indexOf(arr, val) !== -1; + } + module.exports = contains; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/difference.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/difference.js new file mode 100644 index 00000000..d0570510 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/difference.js @@ -0,0 +1,22 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var some = require('./some'); +var contains = require('./contains'); + + + /** + * Return a new Array with elements that aren't present in the other Arrays. + */ + function difference(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return !some(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + module.exports = difference; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/every.js new file mode 100644 index 00000000..ac598832 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/every.js @@ -0,0 +1,27 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Array every + */ + function every(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (!callback(arr[i], i, arr) ) { + result = false; + break; + } + } + + return result; + } + + module.exports = every; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/filter.js new file mode 100644 index 00000000..ebeb58dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/filter.js @@ -0,0 +1,27 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array filter + */ + function filter(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + module.exports = filter; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/find.js new file mode 100644 index 00000000..b4a73131 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/find.js @@ -0,0 +1,13 @@ +var findIndex = require('./findIndex'); + + /** + * Returns first item that matches criteria + */ + function find(arr, iterator, thisObj){ + var idx = findIndex(arr, iterator, thisObj); + return idx >= 0? arr[idx] : void(0); + } + + module.exports = find; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js new file mode 100644 index 00000000..53f22a5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js @@ -0,0 +1,23 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Returns the index of the first item that matches criteria + */ + function findIndex(arr, iterator, thisObj){ + iterator = makeIterator(iterator, thisObj); + if (arr == null) { + return -1; + } + + var i = -1, len = arr.length; + while (++i < len) { + if (iterator(arr[i], i, arr)) { + return i; + } + } + + return -1; + } + + module.exports = findIndex; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/flatten.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/flatten.js new file mode 100644 index 00000000..aa9757ab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/flatten.js @@ -0,0 +1,43 @@ +var isArray = require('../lang/isArray'); +var append = require('./append'); + + /* + * Helper function to flatten to a destination array. + * Used to remove the need to create intermediate arrays while flattening. + */ + function flattenTo(arr, result, level) { + if (arr == null) { + return result; + } else if (level === 0) { + append(result, arr); + return result; + } + + var value, + i = -1, + len = arr.length; + while (++i < len) { + value = arr[i]; + if (isArray(value)) { + flattenTo(value, result, level - 1); + } else { + result.push(value); + } + } + return result; + } + + /** + * Recursively flattens an array. + * A new array containing all the elements is returned. + * If `shallow` is true, it will only flatten one level. + */ + function flatten(arr, level) { + level = level == null? -1 : level; + return flattenTo(arr, [], level); + } + + module.exports = flatten; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/forEach.js new file mode 100644 index 00000000..268e506f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/forEach.js @@ -0,0 +1,23 @@ + + + /** + * Array forEach + */ + function forEach(arr, callback, thisObj) { + if (arr == null) { + return; + } + var i = -1, + len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback.call(thisObj, arr[i], i, arr) === false ) { + break; + } + } + } + + module.exports = forEach; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js new file mode 100644 index 00000000..6a9ac832 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js @@ -0,0 +1,28 @@ + + + /** + * Array.indexOf + */ + function indexOf(arr, item, fromIndex) { + fromIndex = fromIndex || 0; + if (arr == null) { + return -1; + } + + var len = arr.length, + i = fromIndex < 0 ? len + fromIndex : fromIndex; + while (i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[i] === item) { + return i; + } + + i++; + } + + return -1; + } + + module.exports = indexOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/insert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/insert.js new file mode 100644 index 00000000..f1f95b75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/insert.js @@ -0,0 +1,15 @@ +var difference = require('./difference'); +var toArray = require('../lang/toArray'); + + /** + * Insert item into array if not already present. + */ + function insert(arr, rest_items) { + var diff = difference(toArray(arguments).slice(1), arr); + if (diff.length) { + Array.prototype.push.apply(arr, diff); + } + return arr.length; + } + module.exports = insert; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/intersection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/intersection.js new file mode 100644 index 00000000..e6170062 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/intersection.js @@ -0,0 +1,23 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var every = require('./every'); +var contains = require('./contains'); + + + /** + * Return a new Array with elements common to all Arrays. + * - based on underscore.js implementation + */ + function intersection(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return every(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + module.exports = intersection; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/invoke.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/invoke.js new file mode 100644 index 00000000..c01aab1b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/invoke.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); + + /** + * Call `methodName` on each item of the array passing custom arguments if + * needed. + */ + function invoke(arr, methodName, var_args){ + if (arr == null) { + return arr; + } + + var args = Array.prototype.slice.call(arguments, 2); + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + value[methodName].apply(value, args); + } + + return arr; + } + + module.exports = invoke; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/join.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/join.js new file mode 100644 index 00000000..71d8bd20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/join.js @@ -0,0 +1,17 @@ +var filter = require('./filter'); + + function isValidString(val) { + return (val != null && val !== ''); + } + + /** + * Joins strings with the specified separator inserted between each value. + * Null values and empty strings will be excluded. + */ + function join(items, separator) { + separator = separator || ''; + return filter(items, isValidString).join(separator); + } + + module.exports = join; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js new file mode 100644 index 00000000..ee44a25b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js @@ -0,0 +1,28 @@ + + + /** + * Array lastIndexOf + */ + function lastIndexOf(arr, item, fromIndex) { + if (arr == null) { + return -1; + } + + var len = arr.length; + fromIndex = (fromIndex == null || fromIndex >= len)? len - 1 : fromIndex; + fromIndex = (fromIndex < 0)? len + fromIndex : fromIndex; + + while (fromIndex >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[fromIndex] === item) { + return fromIndex; + } + fromIndex--; + } + + return -1; + } + + module.exports = lastIndexOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/map.js new file mode 100644 index 00000000..54064f6b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/map.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array map + */ + function map(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null){ + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + results[i] = callback(arr[i], i, arr); + } + + return results; + } + + module.exports = map; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/max.js new file mode 100644 index 00000000..183b10ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/max.js @@ -0,0 +1,35 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Return maximum value inside array + */ + function max(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return Infinity; + } else if (arr.length && !iterator) { + return Math.max.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = -Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp > compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + module.exports = max; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/min.js new file mode 100644 index 00000000..dd00b6cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/min.js @@ -0,0 +1,35 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Return minimum value inside array + */ + function min(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return -Infinity; + } else if (arr.length && !iterator) { + return Math.min.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp < compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + module.exports = min; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pick.js new file mode 100644 index 00000000..6a54846c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pick.js @@ -0,0 +1,14 @@ +var randInt = require('../random/randInt'); + + /** + * Remove a random item from the Array and return it + */ + function pick(arr){ + if (arr == null || !arr.length) return; + var idx = randInt(0, arr.length - 1); + return arr.splice(idx, 1)[0]; + } + + module.exports = pick; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pluck.js new file mode 100644 index 00000000..fef4043b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/pluck.js @@ -0,0 +1,12 @@ +var map = require('./map'); + + /** + * Extract a list of property values. + */ + function pluck(arr, propName){ + return map(arr, propName); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/range.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/range.js new file mode 100644 index 00000000..31d3c770 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/range.js @@ -0,0 +1,27 @@ +var countSteps = require('../math/countSteps'); + + /** + * Returns an Array of numbers inside range. + */ + function range(start, stop, step) { + if (stop == null) { + stop = start; + start = 0; + } + step = step || 1; + + var result = [], + nSteps = countSteps(stop - start, step), + i = start; + + while (i <= stop) { + result.push(i); + i += step; + } + + return result; + } + + module.exports = range; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduce.js new file mode 100644 index 00000000..1a350c6e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduce.js @@ -0,0 +1,33 @@ +var forEach = require('./forEach'); + + /** + * Array reduce + */ + function reduce(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2, + result = initVal; + + if (arr == null || !arr.length) { + if (!hasInit) { + throw new Error('reduce of empty array with no initial value'); + } else { + return initVal; + } + } + + var i = -1, len = arr.length; + while (++i < len) { + if (!hasInit) { + result = arr[i]; + hasInit = true; + } else { + result = fn(result, arr[i], i, arr); + } + } + + return result; + } + + module.exports = reduce; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js new file mode 100644 index 00000000..e36fd4aa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js @@ -0,0 +1,34 @@ + + + /** + * Array reduceRight + */ + function reduceRight(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2; + + if (arr == null || !arr.length) { + if (hasInit) { + return initVal; + } else { + throw new Error('reduce of empty array with no initial value'); + } + } + + var i = arr.length, result = initVal, value; + while (--i >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + value = arr[i]; + if (!hasInit) { + result = value; + hasInit = true; + } else { + result = fn(result, value, i, arr); + } + } + return result; + } + + module.exports = reduceRight; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reject.js new file mode 100644 index 00000000..685f2918 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/reject.js @@ -0,0 +1,26 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array reject + */ + function reject(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (!callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + module.exports = reject; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/remove.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/remove.js new file mode 100644 index 00000000..aa6517db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/remove.js @@ -0,0 +1,13 @@ +var indexOf = require('./indexOf'); + + /** + * Remove a single item from the array. + * (it won't remove duplicates, just a single item) + */ + function remove(arr, item){ + var idx = indexOf(arr, item); + if (idx !== -1) arr.splice(idx, 1); + } + + module.exports = remove; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js new file mode 100644 index 00000000..d5f7f3b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js @@ -0,0 +1,15 @@ +var indexOf = require('./indexOf'); + + /** + * Remove all instances of an item from array. + */ + function removeAll(arr, item){ + var idx = indexOf(arr, item); + while (idx !== -1) { + arr.splice(idx, 1); + idx = indexOf(arr, item, idx); + } + } + + module.exports = removeAll; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js new file mode 100644 index 00000000..97805ec8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js @@ -0,0 +1,29 @@ +var randInt = require('../random/randInt'); +var forEach = require('./forEach'); + + /** + * Shuffle array items. + */ + function shuffle(arr) { + var results = [], + rnd; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + if (!i) { + results[0] = arr[0]; + } else { + rnd = randInt(0, i); + results[i] = results[rnd]; + results[rnd] = arr[i]; + } + } + + return results; + } + + module.exports = shuffle; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/some.js new file mode 100644 index 00000000..8d17772b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/some.js @@ -0,0 +1,27 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Array some + */ + function some(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback(arr[i], i, arr) ) { + result = true; + break; + } + } + + return result; + } + + module.exports = some; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/sort.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/sort.js new file mode 100644 index 00000000..7807339b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/sort.js @@ -0,0 +1,55 @@ + + + /** + * Merge sort (http://en.wikipedia.org/wiki/Merge_sort) + */ + function mergeSort(arr, compareFn) { + if (arr == null) { + return []; + } else if (arr.length < 2) { + return arr; + } + + if (compareFn == null) { + compareFn = defaultCompare; + } + + var mid, left, right; + + mid = ~~(arr.length / 2); + left = mergeSort( arr.slice(0, mid), compareFn ); + right = mergeSort( arr.slice(mid, arr.length), compareFn ); + + return merge(left, right, compareFn); + } + + function defaultCompare(a, b) { + return a < b ? -1 : (a > b? 1 : 0); + } + + function merge(left, right, compareFn) { + var result = []; + + while (left.length && right.length) { + if (compareFn(left[0], right[0]) <= 0) { + // if 0 it should preserve same order (stable) + result.push(left.shift()); + } else { + result.push(right.shift()); + } + } + + if (left.length) { + result.push.apply(result, left); + } + + if (right.length) { + result.push.apply(result, right); + } + + return result; + } + + module.exports = mergeSort; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/split.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/split.js new file mode 100644 index 00000000..4f3ba50c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/split.js @@ -0,0 +1,35 @@ + + + /** + * Split array into a fixed number of segments. + */ + function split(array, segments) { + segments = segments || 2; + var results = []; + if (array == null) { + return results; + } + + var minLength = Math.floor(array.length / segments), + remainder = array.length % segments, + i = 0, + len = array.length, + segmentIndex = 0, + segmentLength; + + while (i < len) { + segmentLength = minLength; + if (segmentIndex < remainder) { + segmentLength++; + } + + results.push(array.slice(i, i + segmentLength)); + + segmentIndex++; + i += segmentLength; + } + + return results; + } + module.exports = split; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js new file mode 100644 index 00000000..ce4c55dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js @@ -0,0 +1,28 @@ +var isFunction = require('../lang/isFunction'); + + /** + * Creates an object that holds a lookup for the objects in the array. + */ + function toLookup(arr, key) { + var result = {}; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length, value; + if (isFunction(key)) { + while (++i < len) { + value = arr[i]; + result[key(value)] = value; + } + } else { + while (++i < len) { + value = arr[i]; + result[value[key]] = value; + } + } + + return result; + } + module.exports = toLookup; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/union.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/union.js new file mode 100644 index 00000000..f1334a91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/union.js @@ -0,0 +1,19 @@ +var unique = require('./unique'); +var append = require('./append'); + + /** + * Concat multiple arrays and remove duplicates + */ + function union(arrs) { + var results = []; + var i = -1, len = arguments.length; + while (++i < len) { + append(results, arguments[i]); + } + + return unique(results); + } + + module.exports = union; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/unique.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/unique.js new file mode 100644 index 00000000..0192b2df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/unique.js @@ -0,0 +1,17 @@ +var indexOf = require('./indexOf'); +var filter = require('./filter'); + + /** + * @return {array} Array of unique items + */ + function unique(arr){ + return filter(arr, isUnique); + } + + function isUnique(item, i, arr){ + return indexOf(arr, item, i+1) === -1; + } + + module.exports = unique; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/xor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/xor.js new file mode 100644 index 00000000..c125a996 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/xor.js @@ -0,0 +1,26 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var contains = require('./contains'); + + + /** + * Exclusive OR. Returns items that are present in a single array. + * - like ptyhon's `symmetric_difference` + */ + function xor(arr1, arr2) { + arr1 = unique(arr1); + arr2 = unique(arr2); + + var a1 = filter(arr1, function(item){ + return !contains(arr2, item); + }), + a2 = filter(arr2, function(item){ + return !contains(arr1, item); + }); + + return a1.concat(a2); + } + + module.exports = xor; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/zip.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/zip.js new file mode 100644 index 00000000..931eb818 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/array/zip.js @@ -0,0 +1,29 @@ +var max = require('./max'); +var pluck = require('./pluck'); +var map = require('./map'); + + function getLength(arr) { + return arr == null ? 0 : arr.length; + } + + /** + * Merges together the values of each of the arrays with the values at the + * corresponding position. + */ + function zip(arr){ + var len = arr ? max(map(arguments, getLength)) : 0, + results = [], + i = -1, + item; + while (++i < len) { + results.push(map(arguments, function(item) { + return item == null ? undefined : item[i]; + })); + } + + return results; + } + + module.exports = zip; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection.js new file mode 100644 index 00000000..d5cf6cad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection.js @@ -0,0 +1,22 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'contains' : require('./collection/contains'), + 'every' : require('./collection/every'), + 'filter' : require('./collection/filter'), + 'find' : require('./collection/find'), + 'forEach' : require('./collection/forEach'), + 'make_' : require('./collection/make_'), + 'map' : require('./collection/map'), + 'max' : require('./collection/max'), + 'min' : require('./collection/min'), + 'pluck' : require('./collection/pluck'), + 'reduce' : require('./collection/reduce'), + 'reject' : require('./collection/reject'), + 'size' : require('./collection/size'), + 'some' : require('./collection/some') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/contains.js new file mode 100644 index 00000000..a73f994b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/contains.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrContains = require('../array/contains'); +var objContains = require('../object/contains'); + + /** + */ + module.exports = make(arrContains, objContains); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/every.js new file mode 100644 index 00000000..300e03c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/every.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrEvery = require('../array/every'); +var objEvery = require('../object/every'); + + /** + */ + module.exports = make(arrEvery, objEvery); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/filter.js new file mode 100644 index 00000000..38757005 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/filter.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * filter collection values, returns array. + */ + function filter(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + var results = []; + if (!list) { + return results; + } + forEach(list, function(value, index, list) { + if (iterator(value, index, list)) { + results[results.length] = value; + } + }); + return results; + } + + module.exports = filter; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/find.js new file mode 100644 index 00000000..14317e64 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/find.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrFind = require('../array/find'); +var objFind = require('../object/find'); + + /** + * Find value that returns true on iterator check. + */ + module.exports = make(arrFind, objFind); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js new file mode 100644 index 00000000..6e28dcb1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrForEach = require('../array/forEach'); +var objForEach = require('../object/forOwn'); + + /** + */ + module.exports = make(arrForEach, objForEach); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/make_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/make_.js new file mode 100644 index 00000000..029d27bf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/make_.js @@ -0,0 +1,19 @@ + + + /** + * internal method used to create other collection modules. + */ + function makeCollectionMethod(arrMethod, objMethod, defaultReturn) { + return function(){ + var args = Array.prototype.slice.call(arguments); + if (args[0] == null) { + return defaultReturn; + } + // array-like is treated as array + return (typeof args[0].length === 'number')? arrMethod.apply(null, args) : objMethod.apply(null, args); + }; + } + + module.exports = makeCollectionMethod; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/map.js new file mode 100644 index 00000000..fc157f53 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/map.js @@ -0,0 +1,23 @@ +var isObject = require('../lang/isObject'); +var values = require('../object/values'); +var arrMap = require('../array/map'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Map collection values, returns Array. + */ + function map(list, callback, thisObj) { + callback = makeIterator(callback, thisObj); + // list.length to check array-like object, if not array-like + // we simply map all the object values + if( isObject(list) && list.length == null ){ + list = values(list); + } + return arrMap(list, function (val, key, list) { + return callback(val, key, list); + }); + } + + module.exports = map; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/max.js new file mode 100644 index 00000000..a8490e7e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/max.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrMax = require('../array/max'); +var objMax = require('../object/max'); + + /** + * Get maximum value inside collection + */ + module.exports = make(arrMax, objMax); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/min.js new file mode 100644 index 00000000..51d9f148 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/min.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrMin = require('../array/min'); +var objMin = require('../object/min'); + + /** + * Get minimum value inside collection. + */ + module.exports = make(arrMin, objMin); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js new file mode 100644 index 00000000..9b283776 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js @@ -0,0 +1,14 @@ +var map = require('./map'); + + /** + * Extract a list of property values. + */ + function pluck(list, key) { + return map(list, function(value) { + return value[key]; + }); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js new file mode 100644 index 00000000..4c075735 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrReduce = require('../array/reduce'); +var objReduce = require('../object/reduce'); + + /** + */ + module.exports = make(arrReduce, objReduce); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reject.js new file mode 100644 index 00000000..2a92e3b3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/reject.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Inverse or collection/filter + */ + function reject(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + return filter(list, function(value, index, list) { + return !iterator(value, index, list); + }, thisObj); + } + + module.exports = reject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/size.js new file mode 100644 index 00000000..244e33e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/size.js @@ -0,0 +1,19 @@ +var isArray = require('../lang/isArray'); +var objSize = require('../object/size'); + + /** + * Get collection size + */ + function size(list) { + if (!list) { + return 0; + } + if (isArray(list)) { + return list.length; + } + return objSize(list); + } + + module.exports = size; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/some.js new file mode 100644 index 00000000..48fd252e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/collection/some.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrSome = require('../array/some'); +var objSome = require('../object/some'); + + /** + */ + module.exports = make(arrSome, objSome); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date.js new file mode 100644 index 00000000..1cde1a95 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date.js @@ -0,0 +1,21 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'dayOfTheYear' : require('./date/dayOfTheYear'), + 'diff' : require('./date/diff'), + 'i18n_' : require('./date/i18n_'), + 'isLeapYear' : require('./date/isLeapYear'), + 'isSame' : require('./date/isSame'), + 'parseIso' : require('./date/parseIso'), + 'startOf' : require('./date/startOf'), + 'strftime' : require('./date/strftime'), + 'timezoneAbbr' : require('./date/timezoneAbbr'), + 'timezoneOffset' : require('./date/timezoneOffset'), + 'totalDaysInMonth' : require('./date/totalDaysInMonth'), + 'totalDaysInYear' : require('./date/totalDaysInYear'), + 'weekOfTheYear' : require('./date/weekOfTheYear') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js new file mode 100644 index 00000000..85905c5a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js @@ -0,0 +1,13 @@ +var isDate = require('../lang/isDate'); + + /** + * return the day of the year (1..366) + */ + function dayOfTheYear(date){ + return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - + Date.UTC(date.getFullYear(), 0, 1)) / 86400000 + 1; + } + + module.exports = dayOfTheYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/diff.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/diff.js new file mode 100644 index 00000000..1131cdcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/diff.js @@ -0,0 +1,130 @@ +var totalDaysInMonth = require('./totalDaysInMonth'); +var totalDaysInYear = require('./totalDaysInYear'); +var convert = require('../time/convert'); + + /** + * calculate the difference between dates (range) + */ + function diff(start, end, unitName){ + // sort the dates to make it easier to process (specially year/month) + if (start > end) { + var swap = start; + start = end; + end = swap; + } + + var output; + + if (unitName === 'month') { + output = getMonthsDiff(start, end); + } else if (unitName === 'year'){ + output = getYearsDiff(start, end); + } else if (unitName != null) { + if (unitName === 'day') { + // ignore timezone difference because of daylight savings time + start = toUtc(start); + end = toUtc(end); + } + output = convert(end - start, 'ms', unitName); + } else { + output = end - start; + } + + return output; + } + + + function toUtc(d){ + // we ignore timezone differences on purpose because of daylight + // savings time, otherwise it would return fractional days/weeks even + // if a full day elapsed. eg: + // Wed Feb 12 2014 00:00:00 GMT-0200 (BRST) + // Sun Feb 16 2014 00:00:00 GMT-0300 (BRT) + // diff should be 4 days and not 4.041666666666667 + return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), + d.getHours(), d.getMinutes(), d.getSeconds(), + d.getMilliseconds()); + } + + + function getMonthsDiff(start, end){ + return getElapsedMonths(start, end) + + getElapsedYears(start, end) * 12 + + getFractionalMonth(start, end); + } + + + function getYearsDiff(start, end){ + var elapsedYears = getElapsedYears(start, end); + return elapsedYears + getFractionalYear(start, end, elapsedYears); + } + + + function getElapsedMonths(start, end){ + var monthDiff = end.getMonth() - start.getMonth(); + if (monthDiff < 0) { + monthDiff += 12; + } + // less than a full month + if (start.getDate() > end.getDate()) { + monthDiff -= 1; + } + return monthDiff; + } + + + function getElapsedYears(start, end){ + var yearDiff = end.getFullYear() - start.getFullYear(); + // less than a full year + if (start.getMonth() > end.getMonth()) { + yearDiff -= 1; + } + return yearDiff; + } + + + function getFractionalMonth(start, end){ + var fractionalDiff = 0; + var startDay = start.getDate(); + var endDay = end.getDate(); + + if (startDay !== endDay) { + var startTotalDays = totalDaysInMonth(start); + var endTotalDays = totalDaysInMonth(end); + var totalDays; + var daysElapsed; + + if (startDay > endDay) { + // eg: Jan 29 - Feb 27 (29 days elapsed but not a full month) + var baseDay = startTotalDays - startDay; + daysElapsed = endDay + baseDay; + // total days should be relative to 1st day of next month if + // startDay > endTotalDays + totalDays = (startDay > endTotalDays)? + endTotalDays + baseDay + 1 : startDay + baseDay; + } else { + // fractional is only based on endMonth eg: Jan 12 - Feb 18 + // (6 fractional days, 28 days until next full month) + daysElapsed = endDay - startDay; + totalDays = endTotalDays; + } + + fractionalDiff = daysElapsed / totalDays; + } + + return fractionalDiff; + } + + + function getFractionalYear(start, end, elapsedYears){ + var base = elapsedYears? + new Date(end.getFullYear(), start.getMonth(), start.getDate()) : + start; + var elapsedDays = diff(base, end, 'day'); + return elapsedDays / totalDaysInYear(end); + } + + + module.exports = diff; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js new file mode 100644 index 00000000..f9526ce4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js @@ -0,0 +1,61 @@ + + // en-US (English, United States) + module.exports = { + "am" : "AM", + "pm" : "PM", + + "x": "%m/%d/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %I:%M:%S %p %Z", + + "months" : [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + + "months_abbr" : [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + + "days_abbr" : [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ] + }; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js new file mode 100644 index 00000000..71ebadb5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js @@ -0,0 +1,61 @@ + + // pt-BR (Brazillian Portuguese) + module.exports = { + "am" : "", + "pm" : "", + + "x": "%d/%m/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %H:%M:%S %Z", + + "months" : [ + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + + "months_abbr" : [ + "Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez" + ], + + "days" : [ + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + + "days_abbr" : [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sáb" + ] + }; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js new file mode 100644 index 00000000..723fc103 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js @@ -0,0 +1,14 @@ +var mixIn = require('../object/mixIn'); +var enUS = require('./i18n/en-US'); + + // we also use mixIn to make sure we don't affect the original locale + var activeLocale = mixIn({}, enUS, { + // we expose a "set" method to allow overriding the global locale + set : function(localeData){ + mixIn(activeLocale, localeData); + } + }); + + module.exports = activeLocale; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js new file mode 100644 index 00000000..4212870b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js @@ -0,0 +1,15 @@ +var isDate = require('../lang/isDate'); + + /** + * checks if it's a leap year + */ + function isLeapYear(fullYear){ + if (isDate(fullYear)) { + fullYear = fullYear.getFullYear(); + } + return fullYear % 400 === 0 || (fullYear % 100 !== 0 && fullYear % 4 === 0); + } + + module.exports = isLeapYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isSame.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isSame.js new file mode 100644 index 00000000..4097d29b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/isSame.js @@ -0,0 +1,16 @@ +var startOf = require('./startOf'); + + /** + * Check if date is "same" with optional period + */ + function isSame(date1, date2, period){ + if (period) { + date1 = startOf(date1, period); + date2 = startOf(date2, period); + } + return Number(date1) === Number(date2); + } + + module.exports = isSame; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js new file mode 100644 index 00000000..8ea2b171 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js @@ -0,0 +1,146 @@ +var some = require('../array/some'); + + var datePatterns = [ + /^([0-9]{4})$/, // YYYY + /^([0-9]{4})-([0-9]{2})$/, // YYYY-MM (YYYYMM not allowed) + /^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/ // YYYY-MM-DD or YYYYMMDD + ]; + var ORD_DATE = /^([0-9]{4})-?([0-9]{3})$/; // YYYY-DDD + + var timePatterns = [ + /^([0-9]{2}(?:\.[0-9]*)?)$/, // HH.hh + /^([0-9]{2}):?([0-9]{2}(?:\.[0-9]*)?)$/, // HH:MM.mm + /^([0-9]{2}):?([0-9]{2}):?([0-9]{2}(\.[0-9]*)?)$/ // HH:MM:SS.ss + ]; + + var DATE_TIME = /^(.+)T(.+)$/; + var TIME_ZONE = /^(.+)([+\-])([0-9]{2}):?([0-9]{2})$/; + + function matchAll(str, patterns) { + var match; + var found = some(patterns, function(pattern) { + return !!(match = pattern.exec(str)); + }); + + return found ? match : null; + } + + function getDate(year, month, day) { + var date = new Date(Date.UTC(year, month, day)); + + // Explicitly set year to avoid Date.UTC making dates < 100 relative to + // 1900 + date.setUTCFullYear(year); + + var valid = + date.getUTCFullYear() === year && + date.getUTCMonth() === month && + date.getUTCDate() === day; + return valid ? +date : NaN; + } + + function parseOrdinalDate(str) { + var match = ORD_DATE.exec(str); + if (match ) { + var year = +match[1], + day = +match[2], + date = new Date(Date.UTC(year, 0, day)); + + if (date.getUTCFullYear() === year) { + return +date; + } + } + + return NaN; + } + + function parseDate(str) { + var match, year, month, day; + + var match = matchAll(str, datePatterns); + if (match === null) { + // Ordinal dates are verified differently. + return parseOrdinalDate(str); + } + + year = (match[1] === void 0) ? 0 : +match[1]; + month = (match[2] === void 0) ? 0 : +match[2] - 1; + day = (match[3] === void 0) ? 1 : +match[3]; + + return getDate(year, month, day); + } + + function getTime(hr, min, sec) { + var valid = + (hr < 24 && hr >= 0 && + min < 60 && min >= 0 && + sec < 60 && min >= 0) || + (hr === 24 && min === 0 && sec === 0); + if (!valid) { + return NaN; + } + + return ((hr * 60 + min) * 60 + sec) * 1000; + } + + function parseOffset(str) { + var match; + if (str.charAt(str.length - 1) === 'Z') { + str = str.substring(0, str.length - 1); + } else if ((match = TIME_ZONE.exec(str))) { + var match = TIME_ZONE.exec(str); + if (match) { + var hours = +match[3], + minutes = (match[4] === void 0) ? 0 : +match[4], + offset = getTime(hours, minutes, 0); + + if (match[2] === '-') { + offset *= -1; + } + + return { offset: offset, time: match[1] }; + } + } + + // No time zone specified, assume UTC + return { offset: 0, time: str }; + } + + function parseTime(str) { + var match; + var offset = parseOffset(str); + + str = offset.time; + offset = offset.offset; + if (isNaN(offset)) { + return NaN; + } + + match = matchAll(str, timePatterns); + if (match === null) { + return NaN; + } + + var hours = (match[1] === void 0) ? 0 : +match[1], + minutes = (match[2] === void 0) ? 0 : +match[2], + seconds = (match[3] === void 0) ? 0 : +match[3]; + + return getTime(hours, minutes, seconds) - offset; + } + + /** + * Parse an ISO8601 formatted date string, and return a Date object. + */ + function parseISO8601(str){ + var match = DATE_TIME.exec(str); + if (!match) { + // No time specified + return parseDate(str); + } + + return parseDate(match[1]) + parseTime(match[2]); + } + + module.exports = parseISO8601; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/startOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/startOf.js new file mode 100644 index 00000000..072bc0ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/startOf.js @@ -0,0 +1,54 @@ +var clone = require('../lang/clone'); + + /** + * get a new Date object representing start of period + */ + function startOf(date, period){ + date = clone(date); + + // intentionally removed "break" from switch since start of + // month/year/etc should also reset the following periods + switch (period) { + case 'year': + date.setMonth(0); + /* falls through */ + case 'month': + date.setDate(1); + /* falls through */ + case 'week': + case 'day': + date.setHours(0); + /* falls through */ + case 'hour': + date.setMinutes(0); + /* falls through */ + case 'minute': + date.setSeconds(0); + /* falls through */ + case 'second': + date.setMilliseconds(0); + break; + default: + throw new Error('"'+ period +'" is not a valid period'); + } + + // week is the only case that should reset the weekDay and maybe even + // overflow to previous month + if (period === 'week') { + var weekDay = date.getDay(); + var baseDate = date.getDate(); + if (weekDay) { + if (weekDay >= baseDate) { + //start of the week is on previous month + date.setDate(0); + } + date.setDate(date.getDate() - date.getDay()); + } + } + + return date; + } + + module.exports = startOf; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/strftime.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/strftime.js new file mode 100644 index 00000000..f033d10f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/strftime.js @@ -0,0 +1,118 @@ +var pad = require('../number/pad'); +var i18n = require('./i18n_'); +var dayOfTheYear = require('./dayOfTheYear'); +var timezoneOffset = require('./timezoneOffset'); +var timezoneAbbr = require('./timezoneAbbr'); +var weekOfTheYear = require('./weekOfTheYear'); + + var _combinations = { + 'D': '%m/%d/%y', + 'F': '%Y-%m-%d', + 'r': '%I:%M:%S %p', + 'R': '%H:%M', + 'T': '%H:%M:%S', + 'x': 'locale', + 'X': 'locale', + 'c': 'locale' + }; + + + /** + * format date based on strftime format + */ + function strftime(date, format, localeData){ + localeData = localeData || i18n; + var reToken = /%([a-z%])/gi; + + function makeIterator(fn) { + return function(match, token){ + return fn(date, token, localeData); + }; + } + + return format + .replace(reToken, makeIterator(expandCombinations)) + .replace(reToken, makeIterator(convertToken)); + } + + + function expandCombinations(date, token, l10n){ + if (token in _combinations) { + var expanded = _combinations[token]; + return expanded === 'locale'? l10n[token] : expanded; + } else { + return '%'+ token; + } + } + + + function convertToken(date, token, l10n){ + switch (token){ + case 'a': + return l10n.days_abbr[date.getDay()]; + case 'A': + return l10n.days[date.getDay()]; + case 'h': + case 'b': + return l10n.months_abbr[date.getMonth()]; + case 'B': + return l10n.months[date.getMonth()]; + case 'C': + return pad(Math.floor(date.getFullYear() / 100), 2); + case 'd': + return pad(date.getDate(), 2); + case 'e': + return pad(date.getDate(), 2, ' '); + case 'H': + return pad(date.getHours(), 2); + case 'I': + return pad(date.getHours() % 12, 2); + case 'j': + return pad(dayOfTheYear(date), 3); + case 'L': + return pad(date.getMilliseconds(), 3); + case 'm': + return pad(date.getMonth() + 1, 2); + case 'M': + return pad(date.getMinutes(), 2); + case 'n': + return '\n'; + case 'p': + return date.getHours() >= 12? l10n.pm : l10n.am; + case 'P': + return convertToken(date, 'p', l10n).toLowerCase(); + case 's': + return date.getTime() / 1000; + case 'S': + return pad(date.getSeconds(), 2); + case 't': + return '\t'; + case 'u': + var day = date.getDay(); + return day === 0? 7 : day; + case 'U': + return pad(weekOfTheYear(date), 2); + case 'w': + return date.getDay(); + case 'W': + return pad(weekOfTheYear(date, 1), 2); + case 'y': + return pad(date.getFullYear() % 100, 2); + case 'Y': + return pad(date.getFullYear(), 4); + case 'z': + return timezoneOffset(date); + case 'Z': + return timezoneAbbr(date); + case '%': + return '%'; + default: + // keep unrecognized tokens + return '%'+ token; + } + } + + + module.exports = strftime; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js new file mode 100644 index 00000000..b1006875 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js @@ -0,0 +1,17 @@ +var timezoneOffset = require('./timezoneOffset'); + + /** + * Abbreviated time zone name or similar information. + */ + function timezoneAbbr(date){ + // Date.toString gives different results depending on the + // browser/system so we fallback to timezone offset + // chrome: 'Mon Apr 08 2013 09:02:04 GMT-0300 (BRT)' + // IE: 'Mon Apr 8 09:02:04 UTC-0300 2013' + var tz = /\(([A-Z]{3,4})\)/.exec(date.toString()); + return tz? tz[1] : timezoneOffset(date); + } + + module.exports = timezoneAbbr; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js new file mode 100644 index 00000000..9492dceb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js @@ -0,0 +1,16 @@ +var pad = require('../number/pad'); + + /** + * time zone as hour and minute offset from UTC (e.g. +0900) + */ + function timezoneOffset(date){ + var offset = date.getTimezoneOffset(); + var abs = Math.abs(offset); + var h = pad(Math.floor(abs / 60), 2); + var m = pad(abs % 60, 2); + return (offset > 0? '-' : '+') + h + m; + } + + module.exports = timezoneOffset; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js new file mode 100644 index 00000000..8aafeb84 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js @@ -0,0 +1,25 @@ +var isDate = require('../lang/isDate'); +var isLeapYear = require('./isLeapYear'); + + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + /** + * returns the total amount of days in the month (considering leap years) + */ + function totalDaysInMonth(fullYear, monthIndex){ + if (isDate(fullYear)) { + var date = fullYear; + year = date.getFullYear(); + monthIndex = date.getMonth(); + } + + if (monthIndex === 1 && isLeapYear(fullYear)) { + return 29; + } else { + return DAYS_IN_MONTH[monthIndex]; + } + } + + module.exports = totalDaysInMonth; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js new file mode 100644 index 00000000..b4b7e9b7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js @@ -0,0 +1,13 @@ +var isLeapYear = require('./isLeapYear'); + + /** + * return the amount of days in the year following the gregorian calendar + * and leap years + */ + function totalDaysInYear(fullYear){ + return isLeapYear(fullYear)? 366 : 365; + } + + module.exports = totalDaysInYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js new file mode 100644 index 00000000..dd51b7f1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js @@ -0,0 +1,16 @@ +var dayOfTheYear = require('./dayOfTheYear'); + + /** + * Return the week of the year based on given firstDayOfWeek + */ + function weekOfTheYear(date, firstDayOfWeek){ + firstDayOfWeek = firstDayOfWeek == null? 0 : firstDayOfWeek; + var doy = dayOfTheYear(date); + var dow = (7 + date.getDay() - firstDayOfWeek) % 7; + var relativeWeekDay = 6 - firstDayOfWeek - dow; + return Math.floor((doy + relativeWeekDay) / 7); + } + + module.exports = weekOfTheYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/array.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/array.md new file mode 100644 index 00000000..1f390fbc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/array.md @@ -0,0 +1,773 @@ +# array # + +Array utilities. + + + + +## append(arr1, arr2):Array + +Appends an array to the end of the other. +The first array will be modified and will contain the appended items. + +See: [`union()`](#union), [`combine()`](#combine) + +```js +var foo = ['a', 'b'], + bar = ['b', 'd']; + +append(foo, bar); // ['a', 'b', 'b', 'd'] +``` + + + +## collect(arr, callback, [thisObj]):Array + +Maps the items in `arr` and concatenates the resulting arrays. + +See: [`map()`](#map) + +```js +collect([1, 2, 3], function(val) { + return [val, val % 2]; +}); // [1, 1, 2, 0, 3, 1]; + +collect(['a', 'bb', ''], function(val) { + return val.split(''); +}); // ['a', 'b', 'b'] +``` + +It also supports a shorthand syntax: + +```js +var items = [{ a: [1] }, { b: 'foo' }, { a: [2, 3] }]; +collect(items, 'a'); // [1, 2, 3]; +``` + + + +## combine(arr1, arr2):Array + +Combines an array with all the items of another. +The first array will be modified and will contain the combined items. +Does not allow duplicates and is case and type sensitive. + +See: [`union()`](#union), [`append()`](#append) + +```js +var foo = ['a', 'b'], + bar = ['b', 'd']; + +combine(foo, bar); // ['a', 'b', 'd'] +``` + + + +## compact(arr):Array + +Returns a new Array without any `null` or `undefined` values. Note that it will +keep empty strings and other falsy values (simillar to Ruby Array#compact). + +```js +var arr = [0, 1, null, false, '', 'foo', undefined, 'bar']; +compact(arr); // [0, 1, false, '', 'foo', 'bar']; +``` + + + +## contains(arr, value):Boolean + +Checks if Array contains value. Alias to `indexOf(arr, val) !== -1`. + +```js +var arr = [1, 2, 3]; +contains(arr, 2); // true +contains(arr, 'foo'); // false +``` + + + +## difference(...arrs):Array + +Return a new Array with elements that aren't present in the other Arrays +besides the first one. + +Works like [Python set#difference](http://docs.python.org/library/stdtypes.html#set.difference). + +It will remove duplicates. + +See: [`xor()`](#xor), [`intersection()`](#intersection) + +```js +var a = ['a', 'b', 1]; +var b = ['c', 1]; +difference(a, b); // ['a', 'b'] +``` + + + +## every(arr, callback, [thisObj]):Array + +Crossbrowser `Array.every()`. + +Tests whether all elements in the array pass the test implemented by the provided function. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = [1, 'foo', 'bar']; +every(items, isString); // false +every(items, isFunction); // false +every(items, function(val, key, arr){ + return val != null; +}); // true +``` + +more info at [MDN Array#every](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every) + +It also supports a shorthand syntax: + +```js +var items = [{id:1, active:true}, {id:3, active:true}, {id:8, active:true}]; +// all items with `id === 8` +every(items, {id:8}); // false +// `active` is truthy on all items +every(items, 'active'); // true +``` + + + +## filter(arr, callback, [thisObj]):Array + +Crossbrowser `Array.filter()`. + +Creates a new array with all elements that pass the callback test. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var nums = [1, 2, 3, 4, 5, 6]; +var oddNumbers = filter(nums, function(val, key, arr){ + return (val % 2) !== 0; +}); +// > [1, 3, 5] +``` + +more info at [MDN Array#filter](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter) + +Filter also supports shorthand notation: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true}, + {name:'jane', surname:'doe', beard:false} +]; +// filter item that matches all properties/values pairs +filter(arr, {name:'john', beard:false}); +// > [{name:'john', surnname:'connor', beard:false}] +// items where 'beard' is a truthy value +filter(arr, 'beard'); +// > [{name:'john', surnname:'doe', beard:true}] +``` + +See [`reject()`](#reject) + + + +## find(arr, callback, [thisObj]):void + +Loops through all the items in the Array and returns the first one that passes +a truth test (callback). + +```js +var arr = [123, {a:'b'}, 'foo', 'bar']; +find(arr, isString); // "foo" +find(arr, isNumber); // 123 +find(arr, isObject); // {a:'b'} +``` + +Find also supports shorthand notation: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true} +]; +// first item that matches all properties/values pairs +find(arr, {name:'john'}); // {name:'john', surnname:'connor', beard:false} +// first item where 'beard' is a truthy value +find(arr, 'beard'); // {name:'john', surnname:'doe', beard:true} +``` + +See: [findIndex()](#findIndex) + + + +## findIndex(arr, iterator, [thisObj]):Number + +Loops through the items in the Array and returns the index of the first one +that passes a truth test (callback). + +Returns `-1` if no item was found that passes the truth test. + +```js +var arr = [1, { a: 1 }, 'foo', 'bar']; +findIndex(arr, isString); // 2 +findIndex(arr, isNumber); // 0 +findIndex(arr, isObject); // 1 +findIndex(arr, isRegExp); // -1 +``` + +`findIndex` also supports shorthand notation: + +```js +var pets = [ + { pet: 'dog', name: 'Sam' }, + { pet: 'dog', name: 'Maggie' } +]; + +findIndex(pets, { pet: 'dog' }); // 0 +findIndex(pets, { name: 'Maggie' }); // 1 +``` + +See: [find()](#find) + + + +## flatten(arr, [level]):Array + +Recursively flattens an array. A new array containing all the elements is +returned. If `level` is specified, it will only flatten up to that level. + +### Example + +```js +flatten([1, [2], [3, [4, 5]]]); +// > [1, 2, 3, 4, 5] +flatten([1, [2], [3, [4, 5]]], 1); +// > [1, 2, 3, [4, 5]] +``` + + + +## forEach(arr, callback, [thisObj]):void + +Crossbrowser `Array.forEach()`. + +It allows exiting the iteration early by returning `false` on the callback. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = ['foo', 'bar', 'lorem', 'ipsum']; +forEach(items, function(val, key, arr){ + console.log(key +' : '+ val); + if (val === 'lorem') { + // stop iteration (break) + return false; + } +}); +``` + +more info at [MDN Array#forEach](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach) + + + +## indexOf(arr, item, [fromIndex]):Number + +Crossbrowser `Array.indexOf()`. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#indexOf](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf) + + + + +## insert(arr, ...items):Number + +Push items into array only if they aren't contained by it. Returns the new +`length` of the array. + +See: [`remove()`](#remove), [`removeAll()`](#removeAll), +[`contains()`](#contains) + +```js +var arr = ['a', 'b']; +insert(arr, 'a'); // 2 : ['a', 'b'] +insert(arr, 'c'); // 3 : ['a', 'b', 'c'] +insert(arr, 1, 2, 'b'); // 5 : ['a', 'b', 'c', 1, 2] +``` + + + +## intersection(...arrs):Array + +Return a new Array with elements common to all Arrays. + +Similar to Python set#intersection and underscore.js intersection. + +It will remove duplicates. + +See: [`difference()`](#difference), [`xor()`](#xor) + +```js +var a = ['a', 'b', 1], + b = ['c', 1], + c = [1, 2, 3]; +intersection(a, b, c); // [1] +``` + + + +## invoke(arr, methodName[, ...args]):Array + +Call `methodName` on each item of the array passing custom arguments if needed. + +```js +invoke([[3,2,1], [9,5,2]], 'sort'); // [[1,2,3], [2,5,9]] +``` + + + +## join(arr, [separator]):String + +Joins the strings in `arr`, inserting `separator` between each value. + +This ignores null values and empty strings that are in the array. `separator` +defaults to an empty string. This will convert all non-string objects in the +array to a string. + +### Example + +```js +join(['a', 'b', 'c']); // 'abc' +join(['foo', 'bar'], ', '); // 'foo, bar' +join([null, 'foo', '', 'bar', undefined], ':'); // 'foo:bar' +``` + + + +## lastIndexOf(arr, item, [fromIndex]):Number + +Crossbrowser `Array.lastIndexOf()`. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#lastIndexOf](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf) + + + +## map(arr, callback, [thisObj]]):Array + +Crossbrowser `Array.map()`. + +Creates a new array with the results of calling a provided function on every +element in this array. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +See: [`collect()`](#collect) + +```js +var nums = [1,2,3,4]; +var double = map(nums, function(val, key, arr){ + return val * 2; +}); +// > [2, 4, 6, 8] +``` + +more info at [MDN Array#map](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map) + +It also supports a shorthand notation which can be used to achieve same result +as [`array/pluck`](#pluck): + +```js +var src = ['lorem', 'ipsum', 'foo', 'amet']; +// grab the "length" property of all items +var lengths = map(src, 'length'); // [5, 5, 3, 4] +``` + + + +## max(arr, [iterator], [thisObj]):* + +Returns maximum value inside array or use a custom iterator to define how items +should be compared. + +See: [`min()`](#min) + +```js +max([10, 2, 7]); // 10 +max(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'lorem' +``` + +It also supports a shorthand notation: + +```js +max(['foo', 'lorem', 'amet'], 'length'); // "lorem" +``` + + + +## min(arr, [iterator], [thisObj]):* + +Returns minimum value inside array or use a custom iterator to define how items +should be compared. + +See: [`max()`](#max) + +```js +min([10, 2, 7]); // 2 +min(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'foo' +``` + +It also supports a shorthand notation: + +```js +min(['foo', 'lorem', 'amet'], 'length'); // "foo" +``` + + + +## pick(arr):* + +Gets a random item and remove it from the array. + +### Example: + + var arr = [1, 2, 3, 4, 5, 6]; + var item_1 = pick(arr); // 4 + var item_2 = pick(arr); // 1 + console.log(arr); // [2, 3, 5, 6] + + + +## pluck(arr, propName):Array + +Extract a list of property values. + +See: [`function/prop()`](function.html#prop) + +```js +var users = [{name : 'John', age: 21}, {name: 'Jane', age : 27}]; +var names = pluck(users, 'name'); // ["John", "Jane"] +var ages = pluck(users, 'age'); // [21, 27] +``` + + + +## range([start], stop[, step]):Array + +Creates a new Array with all the values inside the range. Works similarly to +Python#range or PHP#range. + +### Arguments + + 1. `[start]` (Number) : Range start. Default is `0`. + 2. `stop` (Number) : Range limit. + 3. `[step]` (Number) : Step size. Default is `1`. + +### Example + +```js +range(5); // [0, 1, 2, 3, 4, 5] +range(0, 5); // [0, 1, 2, 3, 4, 5] +range(0, 5, 2); // [0, 2, 4] +range(20, 40, 5); // [20, 25, 30, 35, 40] +``` + + + +## reduce(arr, fn):* + +Crossbrowser `Array.reduce()`. + +Apply a function against an accumulator and each value of the array (from +left-to-right) as to reduce it to a single value. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#reduce](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce) + + + +## reduceRight(arr, fn):* + +Crossbrowser `Array.reduceRight()`. + +Apply a function simultaneously against two values of the array (from +right-to-left) as to reduce it to a single value. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#reduceRight](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduceRight) + + + +## reject(arr, fn, thisObj):Array + +Creates a new array with all the elements that do **not** pass the truth test. +Opposite of [`filter()`](#filter). + +See [`filter()`](#filter) + +### Example + +```js +var numbers = [1, 2, 3, 4, 5, 6]; +reject(numbers, function(x) { return (x % 2) !== 0; }); // [2, 4, 6] +``` + +It also supports a shorthand syntax: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true}, + {name:'jane', surname:'doe', beard:false} +]; +// reject items that matches all properties/values pairs +reject(arr, {name:'john'}); +// > [{name:'jane', surnname:'doe', beard:false}] +// reject items where 'beard' is a truthy value +filter(arr, 'beard'); +// > [{name:'john', surnname:'connor', beard:false}, +// {name:'jane', surname:'doe', beard:false}] +``` + + + +## remove(arr, item):void + +Remove a single item from the array. + +IMPORTANT: it won't remove duplicates, just a single item. + +### Example + +```js +var foo = [1, 2, 3, 4]; +remove(foo, 2); +console.log(foo); // [1, 3, 4] +``` + + + +## removeAll(arr, item):void + +Remove all instances of an item from the array. + +### Example + +```js +var foo = [1, 2, 3, 4, 2, 2]; +removeAll(foo, 2); +console.log(foo); // [1, 3, 4]; +``` + + + +## shuffle(arr):Array + +Returns a new Array with items randomly sorted (shuffled). Similar to Ruby Array#shuffle. + +### Example + +```js +var arr = ['a', 'b', 'c', 'd', 'e']; +shuffle(arr); // ['b', 'd', 'e', 'c', 'a'] +``` + + + +## some(arr, callback, [thisObj]):Array + +Crossbrowser `Array.some()`. + +Tests whether some element in the array passes the test implemented by the provided function. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = [1, 'foo', 'bar']; +some(items, isString); // true +some(items, isFunction); // false +``` + +more info at [MDN Array#some](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some) + +It also supports a shorthand syntax: + +```js +var items = [{id:1, active:true}, {id:3, active:false}, {id:8, active:false}]; +// at least one item with `id === 8` +some(items, {id:8}); // true +// `active` is truthy on at least one item +some(items, 'active'); // true +``` + +see also: [`object/matches`](object.html#matches) + + + +## sort(arr, [compareFn]):Array + +Returns a sorted Array using the [Merge Sort](http://en.wikipedia.org/wiki/Merge_sort) algorithm (stable sort). + +The `Array.prototype.sort` browser implementations differ since the sorting algorithm isn't described in the ES spec - [in V8 it isn't stable](http://code.google.com/p/v8/issues/detail?id=90) and [on Firefox it is stable](https://bugzilla.mozilla.org/show_bug.cgi?id=224128) - so this function doesn't use the browser native implementation and is recommended in cases where a stable sort is required (items should preserve same order if already sorted). + +**Important:** It does logical comparisson by default (greater/less than) and +not a string comparisson like the native `Array#sort`. + +### compareFn + +If `compareFn` is supplied elements are sorted based on the value returned by +the `compareFn`. + + - If `compareFn(a, b)` is less than `0`, sort `a` to a lower index than `b`. + - If `compareFn(a, b)` returns `0`, leave `a` and `b` unchanged with respect + to each other, but sorted with respect to all different elements. + - If `compareFn(a, b)` is greater than `0`, sort `b` to a lower index than + `a`. + +### Example + +```js +sort([187, 23, 47, 987, 12, 59, 0]); // [0, 12, 23, 47, 59, 187, 987] +sort(['a', 'z', 'c', 'beta', 'b']); // ['a', 'b', 'beta', 'c', 'z'] + +// ['sit', 'amet', 'lorem', 'ipsum'] +sort(['lorem', 'ipsum', 'sit', 'amet'], function(a, b){ + // sort by length, items with same length + // will keep the relative order (stable) + return a.length - b.length; +}); + +// [4, 3, 2, 1] +sort([2, 3, 1, 4], function(a, b){ + // reverse sort + return b - a; +}); +``` + + + +## split(arr, [segments]):Array + +Splits an array into a fixed number of segments. + +The number of segments is specified by `segments` and defaults to 2. If the +array cannot be evenly split, the first segments will contain the extra items. +If `arr` is empty, an empty array is returned. If `arr.length` is less than +`segments`, then the resulting array will have `arr.length` number of +single-element arrays. + +### Example +```js +split([1, 2, 3, 4, 5], 3) // [ [1, 2], [3, 4], [5] ] +split([1, 2, 3, 4, 5]) // [ [1, 2, 3], [4, 5] ] +split([]) // [] +split([1, 2], 3) // [ [1], [2] ] +``` + + + +## toLookup(arr, key):Object + +Create an object that indexes the items in the array by a key. If `key` is a function, the key for each value in the resulting object will be the result of calling the function with the value as an argument. Otherwise `key` specifies the property on each value to use as the key. + +### Example + +```js +var foo = [{ name: 'a', thing: 1 }, { name: 'b', thing: 2 }]; +// { a: { name: 'a', thing: 1 }, b: { name: 'b', thing: 2 } } +toLookup(foo, 'name'); +// same as above +toLookup(foo, function (value) { return value.name; }); +``` + + + +## union(...arrs):Array + +Concat multiple arrays removing duplicates. + +```js +var a = ['a', 'b'], + b = ['c', 'a'], + c = [1, 'b', 2, 3, 'a']; + +//note that unique remove from begin to end +union(a, b, c); // ['c', 1, 'b', 2, 3, 'a'] +``` + + + +## unique(arr):Array + +Return a new Array of unique items. + +### Example + +```js +var foo = [1, 2, 3, 4, 2, 2, 3, 4]; +var bar = unique(foo); +console.log(foo); // [1, 2, 3, 4]; +``` + + + +## xor(arr1, arr2):Array + +Exclusive OR. Returns items that are present in a single array. + +Works like [Python set#symmetric_difference](http://docs.python.org/library/stdtypes.html#set.symmetric_difference) renamed for brevity. + +It will remove duplicates. + +See: [`difference()`](#difference), [`intersection()`](#intersection) + +```js +var a = ['a', 'b', 1]; +var b = ['c', 1]; +xor(a, b); // ['a', 'b', 'c'] +``` + + + +## zip(...arrs):Array + +Groups the elements of each array at their corresponding indexes. + +Useful for separate data sources that are coordinated through matching array +indexes. For a matrix of nested arrays, `zip.apply(...)` can transpose the +matrix in a similar fashion. + +```js +// [['moe', 30, true], ['larry', 40, false], ['curly', 50, false]] +zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); +``` + + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/collection.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/collection.md new file mode 100644 index 00000000..2ffcab10 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/collection.md @@ -0,0 +1,233 @@ +# collection # + +Methods for dealing with collections (Array or Objects). + + + +## contains(list, value):Boolean + +Checks if collection contains value. + +```js +contains({a: 1, b: 2, c: 'bar'}, 2); // true +contains([1, 2, 3], 'foo'); // false +``` + +See: [array/contains](array.html#contains), [object/contains](object.html#contains) + + + +## every(list, callback, [thisObj]):Boolean + +Tests whether all values in the collection pass the test implemented by the +provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +every(obj, isNumber); // false +``` + +See: [array/every](array.html#every), [object/every](object.html#every) + + + +## filter(list, callback, [thisObj]):Array + +Filter collection properties. + +See: [array/filter](array.html#filter), [object/filter](object.html#filter) + + + +## find(list, callback, [thisObj]):* + +Loops through all the values in the collection and returns the first one that +passes a truth test (callback). + +**Important:** loop order over objects properties isn't guaranteed to be the +same on all environments. + +```js +find({a: 'foo', b: 12}, isString); // 'foo' +find(['foo', 12], isNumber); // 12 +``` + +See: [array/find](array.html#find), [object/find](object.html#find) + + + +## forEach(list, callback, [thisObj]) + +Loop through all values of the collection. + +See: [array/forEach](array.html#forEach), [object/forOwn](object.html#forOwn) + + + +## map(list, callback, [thisObj]):Array + +Returns a new collection where the properties values are the result of calling +the callback for each property in the original collection. + +See: [array/map](array.html#map), [object/map](object.html#map) + + + +## max(list, [iterator]):* + +Returns maximum value inside collection or use a custom iterator to define how +items should be compared. + +See: [`min()`](#min), [array/max](array.html#max), [object/max](object.html#max) + +```js +max({a: 100, b: 2, c: 1, d: 3, e: 200}); // 200 +max(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'lorem' +``` + + + +## min(list, [iterator]):* + +Returns minimum value inside collection or use a custom iterator to define how +items should be compared. + +See: [`max()`](#max), [array/min](array.html#min), [object/min](object.html#min) + +```js +min([10, 2, 7]); // 2 +min({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'foo' +``` + + + +## pluck(list, propName):Array + +Extract a list of property values. + +```js +var users = [ + { + name : 'John', + age : 21 + }, + { + name : 'Jane', + age : 27 + } +]; + +pluck(users, 'name'); // ["John", "Jane"] +pluck(users, 'age'); // [21, 27] + +users = { + first: { + name : 'John', + age : 21 + }, + second: { + name : 'Mary', + age : 25 + } +}; + +pluck(users, 'name'); // ['John', 'Mary'] +``` + +See: [array/pluck](array.html#pluck), [object/pluck](object.html#pluck) + + + +## reduce(list, callback, initial, [thisObj]):* + +Apply a function against an accumulator and each value in the collection as to +reduce it to a single value. + +```js +var obj = {a: 1, b: 2, c: 3, d: 4}; + +function sum(prev, cur, key, list) { + return prev + cur; +} + +reduce(obj, sum); // 10 +``` + +See: [array/reduce](array.html#reduce), [object/reduce](object.html#reduce) + + + +## reject(list, fn, [thisObj]):Array + +Creates a new array with all the elements that do **not** pass the truth test. +Opposite of [`filter()`](#filter). + +### Example + +```js +var numbers = [1, 2, 3, 4, 5]; +reject(numbers, function(x) { return (x % 2) !== 0; }); // [2, 4] + +var obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; +reject(obj, function(x) { return (x % 2) !== 0; }); // [2, 4] +``` + +See: [array/reject](array.html#reject), [object/reject](object.html#reject) + + + +## size(list):Number + +Returns the number of values in the collection. + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +size(obj); // 3 +size([1,2,3]); // 3 +size(null); // 0 +``` + +See: [object/size](object.html#size) + + + +## some(list, callback, [thisObj]):Boolean + +Tests whether any values in the collection pass the test implemented by the +provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +some(obj, isNumber); // true +some(obj, isString); // true +some([1, 2, 3], isNumber) // true +some([1, 2, 3], isString) // false +``` + +See: [array/some](array.html#some), [object/some](object.html#some) + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/date.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/date.md new file mode 100644 index 00000000..b3f7f40e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/date.md @@ -0,0 +1,295 @@ +# date # + +Date utilities. + + +## dayOfTheYear(date):Number + +How many days elapsed since begining of the year (following gregorian +calendar). + +```js +// Jan 1st +dayOfTheYear(new Date(2013, 0, 1)); // 1 +// Dec 31th +dayOfTheYear(new Date(2013, 11, 31)); // 364 +``` + + + +## diff(date1, date2, [unitName]):Number + +Calculate the difference between dates (range). + +The returned value is always positive. The default `unitName` is `"ms"`. + +Available units: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`, +`millisecond`. + +See: [`time/convert()`](time.html#convert) + +```js +var d1 = new Date(2012, 4, 5); +var d2 = new Date(2013, 4, 8); +diff(d1, d2); // 31795200000 +diff(d1, d2, 'hour'); // 8832 +diff(d1, d2, 'week'); // 52.57142857142857 +diff(d1, d2, 'month'); // 12.096774193548388 +diff(d1, d2, 'year'); // 1.0082191780821919 +``` + + + +## isLeapYear(fullYear|date):Boolean + +Checks if it's a [leap year](http://en.wikipedia.org/wiki/Leap_year) according +to the Gregorian calendar. + +see: [`totalDaysInMonth()`](#totalDaysInMonth) + +```js +isLeapYear(2012); // true +isLeapYear(2013); // false +isLeapYear(new Date(2012, 2, 28)); // true +``` + + +## isSame(date1, date2[, period]):Boolean + +Check if both dates are the "same". + +You can pass an optional *period* used to set the comparisson precision. + +Available periods: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`. + +```js +var date1 = new Date(2013, 1, 3); +var date2 = new Date(2013, 2, 9); +isSame(date1, date2); // false +isSame(date1, date2, 'day'); // false +isSame(date1, date2, 'month'); // false +isSame(date1, date2, 'year'); // true +``` + + + +## parseIso(str):Number + +Parses an [ISO8601](http://en.wikipedia.org/wiki/Iso8601) date and returns the +number of milliseconds since January 1, 1970, 00:00:00 UTC, or `NaN` if it is +not a valid ISO8601 date. + +This parses *all* ISO8601 dates, including dates without times, [ordinal +dates](https://en.wikipedia.org/wiki/ISO_8601#Ordinal_dates), and the compact +representation (omitting delimeters). The only exception is [ISO week +dates](https://en.wikipedia.org/wiki/ISO_week_date), which are not parsed. + +If no time zone offset is specified, it assumes UTC time. + +```js +// Jan 01, 1970 00:00 GMT +parseIso('1970-01-01T00:00:00') // 0 +parseIso('1970-001') // 0 +parseIso('1970-01-01') // 0 +parseIso('19700101T000000.00') // 0 +parseIso('1970-01-01T02:00+02:00') // 0 + +// Jan 02, 2000 20:10 GMT+04:00 +parseIso('2000-01-02T20:10+04:00') // 946829400000 +``` + + + +## startOf(date, period):Date + +Get a new Date at the start of the period. + +Available periods: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`. + +```js +// Apr 05 2013 11:27:43 +var date = new Date(2013, 3, 5, 11, 27, 43, 123); +startOf(date, 'year'); // Jan 01 2013 00:00:00 +startOf(date, 'month'); // Apr 01 2013 00:00:00 +startOf(date, 'day'); // Apr 05 2013 00:00:00 +startOf(date, 'hour'); // Apr 05 2013 11:00:00 +``` + + + +## strftime(date, format, [l10n]):String + +Format date based on strftime format. + +Replaced tokens: + +
      +
      %a
      locale's abbreviated weekday name.
      +
      %A
      locale's full weekday name.
      +
      %b
      locale's abbreviated month name.
      +
      %B
      locale's full month name.
      +
      %c
      locale's appropriate date and time representation.
      +
      %C
      century number (the year divided by 100 and truncated +to an integer) as a decimal number [00..99].
      +
      %d
      day of the month as a decimal number [01..31].
      +
      %D
      same as %m/%d/%y.
      +
      %e
      day of the month as a decimal number [1..31]; +a single digit is preceded by a space.
      +
      %F
      The ISO 8601 date format (%Y-%m-%d)
      +
      %h
      same as %b.
      +
      %H
      hour (24-hour clock) as a decimal number [00..23].
      +
      %I
      hour (12-hour clock) as a decimal number [01..12].
      +
      %j
      day of the year as a decimal number [001..366].
      +
      %L
      zero-padded milliseconds [000..999]
      +
      %m
      month as a decimal number [01..12].
      +
      %M
      minute as a decimal number [00..59].
      +
      %n
      newline character.
      +
      %p
      locale's equivalent of either "am" or "pm"
      +
      %P
      locale's equivalent of either "AM" or "PM"
      +
      %r
      time in a.m. and +p.m. notation; in the POSIX locale this is equivalent to %I:%M:%S %p.
      +
      %R
      time in 24 hour notation (%H:%M).
      +
      %s
      seconds since Epoch (1970-01-01 00:00:00 UTC)
      +
      %S
      second as a decimal number [00..60].
      +
      %t
      tab character.
      +
      %T
      time (%H:%M:%S).
      +
      %u
      weekday as a decimal number [1..7], with 1 representing +Monday.
      +
      %U
      week number of the year (Sunday as the first day of +the week) as a decimal number [00..53].
      +
      %V
      week number of the year (Monday as the first day of the +week) as a decimal number [01..53]. If the week containing 1 January has +four or more days in the new year, then it is considered week 1. Otherwise, +it is the last week of the previous year, and the next week is week 1.
      +
      %w
      weekday as a decimal number [0..6], with 0 representing +Sunday.
      +
      %W
      week number of the year (Monday as the first day of +the week) as a decimal number [00..53]. All days in a new year preceding +the first Monday are considered to be in week 0.
      +
      %x
      locale's appropriate date representation.
      +
      %X
      locale's appropriate time representation.
      +
      %y
      year without century as a decimal number [00..99].
      +
      %Y
      year with century as a decimal number.
      +
      %Z
      timezone name or abbreviation, or by no bytes +if no timezone information exists.
      +
      %%
      is replaced by %.
      +
      + +```js +var date = new Date(2013, 3, 8, 9, 2, 4); +strftime(date, '%Y-%m-%d'); // "2013-04-08" +strftime(date, '%R'); // "09:02" +strftime(date, '%Y-%m-%dT%H:%M:%S%z'); // "2013-04-08T09:02:04+0000" +``` + +You can also set a custom locale: + +```js +var ptBr = require('mout/date/i18n/pt-BR'); +strftime(date, '%a, %d %b', ptBr); // 'Seg, 08 Abr' +strftime(date, '%A, %d %B', ptBr); // 'Segunda, 08 Abril' +``` + +To set it globally: + +```js +require('mout/date/i18n_').set( customLocaleData ); +``` + +See [date/i18n](https://github.com/mout/mout/tree/master/src/date/i18n) +for localization examples. + + + +## timezoneAbbr(date):String + +Return timezone abbreviation or similar data. + +The result will vary based on the OS/browser since some environments doesn't +provide enough info about the current locale. + +```js +// IE 7-8 +timezoneAbbr(new Date()); // "-0500" +// Chrome, FF, V8 +timezoneAbbr(new Date()); // "EST" +``` + + + +## timezoneOffset(date):String + +Return time zone as hour and minute offset from UTC (e.g. +0900). + +It's important to note that JavaScript Date object will use the system locale +info to determinate the [timezone +offset](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset) +and that daylight saving time affects the result. + +```js +// if system locale is EST +timezoneOffset(new Date()); // -0500 +``` + + + +## totalDaysInMonth(fullYear, monthIndex):Number + +Returns the amount of days in the month taking into consideration leap years +(following Gregorian calendar). + +see: [`isLeapYear()`](#isLeapYear) + +```js +totalDaysInMonth(2008, 1); // 29 (leap year) +totalDaysInMonth(2009, 1); // 28 + +// you can also pass a Date object as single argument +totalDaysInMonth( new Date(2013, 0, 1) ); // 31 +``` + + +## totalDaysInYear(fullYear):Number + +Returns the amount of days in the year taking into consideration leap years +(following Gregorian calendar). + +see: [`isLeapYear()`](#isLeapYear), [`totalDaysInMonth()`](#totalDaysInMonth) + +```js +totalDaysInYear(2008); // 366 (leap year) +totalDaysInYear(2009); // 365 + +// you can also pass a Date object as single argument +totalDaysInYear( new Date(2013, 0, 1) ); // 365 +``` + + + +## weekOfTheYear(date, [firstDayOfWeek]):Number + +Returns how many weeks elapsed since start of the year (`0..53`). + +`firstDayOfWeek` can be `0` (Sunday) or `1` (Monday). By default weeks start at +Sunday. + +It will return `0` if `date` is before the first `firstDayOfWeek` of the year. + +```js +// Tue Jan 01 2013 +weekOfTheYear( new Date(2013,0,1) ); // 0 +// Wed Jan 09 2013 +weekOfTheYear( new Date(2013,0,9) ); // 1 +// Sun Jan 01 2012 +weekOfTheYear( new Date(2012,0,1) ); // 1 +// Mon Jan 09 2012 +weekOfTheYear( new Date(2012,0,9) ); // 2 +``` + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/function.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/function.md new file mode 100644 index 00000000..2695a025 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/function.md @@ -0,0 +1,174 @@ +# function # + +Function*(al)* utilities. + + + +## bind(fn, context, [...args]):Function + +Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + +### Arguments + + 1. `fn` (Function) : Target Function + 2. `context` (Object) : Execution context (object used as `this`) + 3. `[...args]` (*) : Arguments (0...n arguments) + +See: [`partial()`](#partial), [object/bindAll](./object.html#bindAll) + + + +## compose(...fn):Function + +Returns the composition of a list of functions, where each function consumes +the return value of the function that follows. In math terms, composing the +functions `f()`, `g()`, and `h()` produces `f(g(h()))`. + +```js +function add2(x) { return x + 2 } +function multi2(x) { return x * 2 } +map([1, 2, 3], compose(add2, multi2)); // [4, 6, 8] + +//same as +map([1, 2, 3], function(x){ + return add2( multi2(x) ); +}); +``` + + + +## debounce(fn, delay[, isAsap]):Function + +Creates a function that will delay the execution of `fn` until after `delay` +milliseconds have elapsed since the last time it was invoked. + +Subsequent calls to the debounced function will return the result of the last +`fn` call. + +```js +// sometimes less is more +var lazyRedraw = debounce(redraw, 300); +foo.on.resize.add(lazyRedraw); +``` + +In this visualization, `|` is a debounced-function call and `X` is the actual +callback execution: + + Default + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X + + Debounced with `isAsap == true`: + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X + +See: [`throttle()`](#throttle) + + +## func(name):Function + +Returns a function that calls a method with given `name` on supplied object. +Useful for iteration methods like `array/map` and `array/forEach`. + +See: [`prop()`](#prop) + +```js +// will call the method `getName()` for each `user` +var names = map(users, func('getName')); +``` + + + +## partial(fn, [...args]):Function + +Return a partially applied function supplying default arguments. + +This method is similar to [`bind`](#bind), except it does not alter the this +binding. + +### Arguments + + 1. `fn` (Function) : Target Function + 3. `[...args]` (*) : Arguments (0...n arguments) + +See: [`bind()`](#bind) + +```js +function add(a, b){ return a + b } +var add10 = partial(add, 10); +console.log( add10(2) ); // 12 +``` + + + +## prop(name):Function + +Returns a function that gets a property with given `name` from supplied object. +Useful for using in conjunction with `array/map` and/or for creating getters. + +See: [`array/pluck()`](array.html#pluck) + +```js +var users = [{name:"John", age:21}, {name:"Jane", age:25}]; +// ["John", "Jane"] +var names = map(users, prop('name')); +``` + + + +## series(...fn):Function + +Returns a function that will execute all the supplied functions in order and +passing the same parameters to all of them. Useful for combining multiple +`array/forEach` into a single one and/or for debugging. + + +```js +// call `console.log()` and `doStuff()` for each item item in the array +forEach(arr, series(console.log, doStuff)); +``` + + + +## throttle(fn, interval):Function + +Creates a function that, when executed, will only call the `fn` function at +most once per every `interval` milliseconds. + +If the throttled function is invoked more than once during the wait timeout, +`fn` will also be called on the trailing edge of the timeout. + +Subsequent calls to the throttled function will return the result of the last +`fn` call. + +```js +// sometimes less is more +var lazyRedraw = throttle(redraw, 300); +foo.on.resize.add(lazyRedraw); +``` + +In this visualization, `|` is a throttled-function call and `X` is the actual +`fn` execution: + + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X X X X X X X X X X X + +See: [`debounce()`](#debounce) + + +## timeout(fn, millis, context, [...args]):Number + +Functions as a wrapper for `setTimeout`. Calls a the function `fn` after a given delay `millis` in milliseconds. +The function is called within the specified context. The return value can be used to clear the timeout using `clearTimeout`. + +```js +var id = timeout(doStuff, 300, this); + +clearTimeout(id); +``` + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/lang.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/lang.md new file mode 100644 index 00000000..56d7879b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/lang.md @@ -0,0 +1,385 @@ +# lang # + +Language Utilities. Easier inheritance, scope handling, type checks. + + + +## clone(val):* + +Clone native types like Object, Array, RegExp, Date and primitives. + +This method will not clone values that are referenced within `val`. It will +only copy the value reference to the new value. If the value is not a plain +object but is an object, it will return the value unchanged. + +### Example + +```js +var a = { foo: 'bar' }; +var b = clone(a); +console.log(a === b); // false +console.log(a.foo === b.foo); // true + +var c = [1, 2, 3]; +var d = clone(b); +console.log(c === d); // false +console.log(c); // [1, 2, 3] +``` + +See: [`deepClone()`](#deepClone) + + + +## createObject(parent, [props]):Object + +Create Object using prototypal inheritance and setting custom properties. + +Mix between [Douglas Crockford Prototypal Inheritance](http://javascript.crockford.com/prototypal.html) and the EcmaScript 5 `Object.create()` method. + +### Arguments + + 1. `parent` (Object) : Parent Object + 2. `[props]` (Object) : Object properties + +### Example + +```js +var base = { + trace : function(){ + console.log(this.name); + } +}; + +var myObj = createObject(base, { + name : 'Lorem Ipsum' +}); + +myObject.trace(); // "Lorem Ipsum" +``` + + + +## ctorApply(constructor, args):Object + +Do `Function.prototype.apply()` on a constructor while maintaining prototype +chain. + +```js +function Person(name, surname) { + this.name = name; + this.surname = surname; +} + +Person.prototype.walk = function(){ + console.log(this.name +' is walking'); +}; + +var args = ['John', 'Doe']; + +// "similar" effect as calling `new Person("John", "Doe")` +var john = ctorApply(Person, args); +john.walk(); // "John is walking" +``` + + + +## deepClone(val, [instanceClone]):* + +Deep clone native types like Object, Array, RegExp, Date and primitives. + +The `instanceClone` function will be invoked to clone objects that are not +"plain" objects (as defined by [`isPlainObject`](#isPlainObject)) if it is +provided. If `instanceClone` is not specified, it will not attempt to clone +non-plain objects, and will copy the object reference. + +### Example + +```js +var a = {foo:'bar', obj: {a:1, b:2}}; +var b = deepClone(a); // {foo:'bar', obj: {a:1, b:2}} +console.log( a === b ); // false +console.log( a.obj === b.obj ); // false + +var c = [1, 2, [3, 4]]; +var d = deepClone(c); // [1, 2, [3, 4]] +var e = c.concat(); // [1, 2, [3, 4]] + +console.log( c[2] === d[2] ); // false +// concat doesn't do a deep clone, arrays are passed by reference +console.log( e[2] === d[2] ); // true + +function Custom() { } +function cloneCustom(x) { return new Custom(); } +var f = { test: new Custom() }; +var g = deepClone(f, cloneCustom); +g.test === f.test // false, since new Custom instance will be created +``` + +See: [`clone()`](#clone) + + + +## defaults(val, ...defaults):void + +Return first value that isn't `null` or `undefined`. + + function doSomethingAwesome(foo, bar) { + // default arguments + foo = defaults(foo, 'lorem'); + bar = defaults(bar, 123); + // ... + } + + + +## inheritPrototype(child, parent):void + +Inherit prototype from another Object. + +```js +function Foo(name){ + this.name = name; +} +Foo.prototype = { + getName : function(){ + return this.name; + } +}; + +function Bar(name){ + this.name = name; +} +//should be called before calling constructor +inheritPrototype(Bar, Foo); + +var myObj = new Bar('lorem ipsum'); +myObj.getName(); // "lorem ipsum" +``` + + +## is(x, y):Boolean + +Check if both values are identical/egal. + +```js +// wtfjs +NaN === NaN; // false +-0 === +0; // true + +is(NaN, NaN); // true +is(-0, +0); // false +is('a', 'b'); // false +``` + +See: [`isnt()`](#isnt) + + + +## isnt(x, y):Boolean + +Check if both values are not identical/egal. + +```js +// wtfjs +NaN === NaN; // false +-0 === +0; // true + +isnt(NaN, NaN); // false +isnt(-0, +0); // true +isnt('a', 'b'); // true +``` + +See: [`is()`](#is) + + + + +## isArguments(val):Boolean + +If value is an "Arguments" object. + + + +## isArray(val):Boolean + +If value is an Array. Uses native ES5 `Array.isArray()` if available. + + + +## isBoolean(val):Boolean + +If value is a Boolean. + + + +## isDate(val):Boolean + +If value is a Date. + + + +## isEmpty(val):Boolean + +Checks if Array/Object/String is empty. + + +```js +isEmpty(''); // true +isEmpty('bar'); // false +isEmpty([]); // true +isEmpty([1, 2]); // false +isEmpty({}); // true +isEmpty({a:1, b:2}); // false +``` + + +## isFinite(val):Boolean + +Checks if value is Finite. + +Note: This is not the same as native `isFinite`, which will return `true` for +booleans and empty strings. See http://es5.github.com/#x15.1.2.5. + + + +## isFunction(val):Boolean + +If value is a Function. + + + +## isKind(val, kind):Boolean + +If value is of "kind". (used internally by some of the *isSomething* checks). + +Favor the other methods since strings are commonly mistyped and also because +some "kinds" can only be accurately checked by using other methods (e.g. +`Arguments`), some of the other checks are also faster. + +```js +isKind([1,2], 'Array'); // true +isKind(3, 'Array'); // false +isKind(3, 'Number'); // true +``` + +See: [`kindOf()`](#kindOf) + + + +## isInteger(val):Boolean + +Check if value is an integer. + +```js +isInteger(123); // true +isInteger(123.45); // false +isInteger({}); // false +isInteger('foo'); // false +isInteger('123'); // false +``` + + + +## isNaN(val):Boolean + +Check if value is `NaN`. + +Note: This is not the same as native `isNaN`, which will return `true` for +`undefined` and other values. See [ES5 isNaN](http://es5.github.com/#x15.1.2.4) + + + +## isNull(val):Boolean + +If value is `null`. + + + +## isNumber(val):Boolean + +If value is a Number. + + + +## isObject(val):Boolean + +If value is an Object. + + + +## isPlainObject(val):Boolean + +If the value is an Object created by the Object constructor. + + + +## isRegExp(val):Boolean + +If value is a RegExp. + + + +## isString(val):Boolean + +If value is a String. + + + +## isUndefined(val):Boolean + +If value is `undefined`. + + + +## kindOf(val):String + +Gets kind of value (e.g. "String", "Number", "RegExp", "Null", "Date"). +Used internally by `isKind()` and most of the other *isSomething* checks. + +```js +kindOf([1,2]); // "Array" +kindOf('foo'); // "String" +kindOf(3); // "Number" +``` + +See: [`isKind()`](#isKind) + + +## toArray(val):Array + +Convert array-like object into Array or wrap value into Array. + +```js +toArray({ + "0" : "foo", + "1" : "bar", + "length" : 2 +}); // ["foo", "bar"] + +function foo(){ + return toArray(arguments); +} +foo("lorem", 123); // ["lorem", 123] + +toArray("lorem ipsum"); // ["lorem ipsum"] +toArray(window); // [window] +toArray({foo:"bar", lorem:123}); // [{foo:"bar", lorem:123}] +``` + +See: object/values() + + + +## toString(val):String + +Convert any value to its string representation. + +Will return an empty string for `undefined` or `null`, otherwise will convert +the value to its string representation. + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/math.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/math.md new file mode 100644 index 00000000..f45be3ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/math.md @@ -0,0 +1,298 @@ +# math # + +Math utilities. + + +## ceil(val[, step]):Number + +Round value up to full steps. Similar to `Math.ceil()` but can round value +to an arbitrary *radix*. + + ceil(7.2); // 8 + ceil(7.8); // 8 + ceil(7, 5); // 10 + ceil(11, 5); // 15 + ceil(15, 5); // 15 + +### Common use cases + +Round values by increments of 5/10/1000/etc. + +See: [`round()`](#round), [`floor()`](#floor), [`countSteps()`](#countSteps) + + + +## clamp(val, min, max):Number + +Clamps value inside range. + +`clamp()` is extremely useful in cases where you need to limit a value inside +a certain range. So instead of doing a complex `if/else` to filter/process the +value you can restrict it to always be inside the desired range: + + clamp(-5, 0, 10); // 0 + clamp(7, 1, 10); // 7 + clamp(8, 1, 10); // 8 + clamp(10, 1, 10); // 10 + clamp(11, 1, 10); // 10 + +If the value is smaller than `min` it returns the `min`, if `val` is higher +than `max` it returns `max`. + +### Common use cases + +Any situation where you need to limit a number inside a range like: slider +position, image galleries (so user can't skip to an image that doesn't +exist), drag and drop, scroll boundaries, etc. + +See: [`loop()`](#loop) + + + + +## countSteps(val, step[, overflow]):Number + +Count number of full steps. + +### Arguments: + + 1. `val` (Number) : Value. + 2. `step` (Number) : Step size. + 3. `[overflow]` (Number) : Maximum number of steps, nSteps will loop if +`>=` than overflow. + + +Count steps is very useful for cases where you need to know how many "full +steps" the number *completed*. Think of it as a division that only returns +integers and ignore remainders. + + countSteps(3, 5); // 0 + countSteps(6, 5); // 1 + countSteps(12, 5); // 2 + countSteps(18, 5); // 3 + countSteps(21, 5); // 4 + +You can also set an `overflow` which will reset the *counter* before reaching +this number. + + countSteps(3, 5, 3); // 0 + countSteps(6, 5, 3); // 1 + countSteps(12, 5, 3); // 2 + countSteps(18, 5, 3); // 0 + countSteps(21, 5, 3); // 1 + +### Common use cases + +#### How many items fit inside an area: + + var containerWidth = 100; + var itemWidth = 8; + var howManyFit = countSteps(containerWidth, itemWidth); // 12 + +#### Split value into different scales or convert value from one scale to another + +From [mout/time/parseMs](time.html#parseMs): + + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + // {days:27, hours:4, minutes:26, seconds:5, milliseconds:454} + parseMs(2348765454); + + + +## floor(val[, step]):Number + +Round value down to full steps. Similar to `Math.floor()` but can round value +to an arbitrary *radix*. (formerly `snap`) + + floor(7.2); // 7 + floor(7.8); // 7 + floor(7, 5); // 5 + floor(11, 5); // 10 + floor(15, 5); // 15 + +### Common use cases + +Round values by increments of 5/10/1000/etc. + +See: [`round()`](#round), [`ceil()`](#ceil), [`countSteps()`](#countSteps) + + + +## inRange(val, min, max[, threshold]):Boolean + +Checks if value is inside the range. + + inRange(-6, 1, 10); // false + inRange( 5, 1, 10); // true + inRange(12, 1, 10); // false + +The threshold can be useful when you want granular control of what should match +and/or the precision could change at runtime or by some configuration option, +avoids the clutter of adding/subtracting the `threshold` from `mix` and `max`. + + inRange(12, 1, 10, 2); // true + inRange(13, 1, 10, 2); // false + +### Common use cases + +Anything that needs to check if value is inside a range, be it collision +detection, limiting interaction by mouse position, ignoring parts of the logic +that shouldn't happen if value isn't valid, simplify `if/else` conditions, +making code more readable, etc... + + + + +## isNear(val, target, threshold):Boolean + +Check if value is close to target. + +Similar to `inRange()` but used to check if value is close to a certain value +or match the desired value. Basically to simplify `if/else` conditions and to +make code clearer. + + isNear( 10.2, 10, 0.5); // true + isNear( 10.5, 10, 0.5); // true + isNear(10.51, 10, 0.5); // false + +### Common use cases + +Games where a certain action should happen if an *actor* is close to a target, +gravity fields, any numeric check that has some tolerance. + + + + +## lerp(ratio, start, end):Number + +Linear interpolation. + + lerp(0.5, 0, 10); // 5 + lerp(0.75, 0, 10); // 7.5 + +### Common use cases + +Linear interpolation is commonly used to create animations of elements moving +from one point to another, where you simply update the current ratio (which in +this case represents time) and get back the position of the element at that +"frame". + +The core idea of `lerp` is that you are using a number that goes from `0` to +`1` to specify a ratio inside that scale. This concept can be applied to +convert numbers from different scales easily. + +See: [`map()`](#map), [`norm()`](#norm) + + + + +## loop(val, min, max):Number + +Loops value inside range. Will return `min` if `val > max` and `max` if `val +< min`, otherwise it returns `val`. + + loop(-1, 0, 10); // 10 + loop( 1, 0, 10); // 1 + loop( 5, 0, 10); // 5 + loop( 9, 0, 10); // 9 + loop(10, 0, 10); // 10 + loop(11, 0, 10); // 0 + +Similar to [`clamp()`](#clamp) but *loops* the value inside the range when an +overflow occurs. + +### Common use cases + +Image galleries, infinite scroll, any kind of logic that requires that the +first item should be displayed after the last one or the last one should be +displayed after first if going on the opposite direction. + +See: [`clamp()`](#clamp) + + + + +## map(val, min1, max1, min2, max2):Number + +Maps a number from one scale to another. + + map(3, 0, 4, -1, 1) // 0.5 + map(3, 0, 10, 0, 100) // 30 + +### Common use cases + +Very useful to convert values from/to multiple scales. + +Let's suppose we have a slider that needs to go from `2000` to `5000` and that slider +has `300px` of width, here is how we would translate the knob position into the +current value: + + var knobX = 123; + var sliderWid = 300; + var minVal = 2000; + var maxVal = 5000; + + var curVal = map(knobX, 0, sliderWid, minVal, maxVal); // 3230 + +See: [`lerp()`](#lerp), [`norm()`](#norm) + + + + +## norm(val, min, max):Number + +Gets normalized ratio of value inside range. + + norm(50, 0, 100); // 0.5 + norm(75, 0, 100); // 0.75 + +### Common use cases + +Convert values between scales, used by [`map()`](#map) internally. Direct +opposite of [`lerp()`](#lerp). + +See: [`lerp()`](#lerp), [`map()`](#map) + + + +## round(val[, step]):Number + +Round value to full steps. Similar to `Math.round()` but allow setting an +arbitrary *radix*. + + // default + round(0.22); // 0 + round(0.49); // 0 + round(0.51); // 1 + + // custom radix + round(0.22, 0.5); // 0 + round(0.49, 0.5); // 0.5 + round(0.51, 0.5); // 0.5 + round(0.74, 0.5); // 0.5 + round(0.75, 0.5); // 1 + round(1.24, 0.5); // 1 + round(1.25, 0.5); // 1.5 + round(1.74, 0.5); // 1.5 + +### Common use cases + +Round values by increments of 0.5/5/10/1000/etc. + +See: [`floor()`](#floor), [`ceil()`](#ceil), [`countSteps()`](#countSteps) + + + +------------------------------------------------------------------------------- + +For more usage more info check the specs and source code. + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/number.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/number.md new file mode 100644 index 00000000..8d93865b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/number.md @@ -0,0 +1,225 @@ +# number # + +Number utilities. + + +## abbreviate(val[, nDecimalDigits, dictionary]):String + +Abbreviate number to thousands (K), millions (M) or billions (B). + +The default value for `nDecimalDigits` is `1`. + +### Example + + abbreviate(123456); // "123.5K" + abbreviate(12345678); // "12.3M" + abbreviate(1234567890); // "1.2B" + +You can set the amount of decimal digits (default is `1`): + + abbreviate(543); // "0.5K" + abbreviate(543, 1); // "0.5K" + abbreviate(543, 2); // "0.54K" + abbreviate(543, 3); // "0.543K" + +You can customize the abbreviation by passing a custom "dictionary": + + var _ptbrDict = { + thousands : ' mil', + millions : ' Mi', + billions : ' Bi' + }; + function customAbbr(val) { + return abbreviate(val, 1, _ptbrDict); + } + + customAbbr(123456); // "123.5 mil" + customAbbr(12345678); // "12.3 Mi" + customAbbr(1234567890); // "1.2 Bi" + + + +## currencyFormat(val[, nDecimalDigits, decimalSeparator, thousandsSeparator]):String + +Format a number as currency. + +### Example: + + currencyFormat(1000); // "1,000.00" + currencyFormat(1000, 1); // "1,000.0" + currencyFormat(1000, 2, ',', '.'); // "1.000,00" + + + +## enforcePrecision(val, nDecimalDigits):Number + +Enforce a specific amount of decimal digits and also fix floating point +rounding issues. + +### Example: + +```js +enforcePrecision(0.615, 2); // 0.62 +enforcePrecision(0.625, 2); // 0.63 +//floating point rounding "error" (rounds to odd number) ++(0.615).toFixed(2); // 0.61 ++(0.625).toFixed(2); // 0.63 +``` + + + +## MAX_INT:Number + +Maximum 32-bit signed integer value. `Math.pow(2, 31) - 1` + +### Example: + +```js +console.log( MAX_INT ); // 2147483647 +``` + + +## MAX_UINT:Number + +Maximum 32-bit unsigned integer value. `Math.pow(2, 32) - 1` + +### Example: + +```js +console.log( MAX_UINT ); // 4294967295 +``` + + +## MIN_INT:Number + +Minimum 32-bit signed integer value. `Math.pow(2, 31) * -1`. + +### Example: + +```js +console.log( MIN_INT ); // -2147483648 +``` + + +## pad(n, minLength[, char]):String + +Add padding zeros if `n.length` < `minLength`. + +### Example: + +```js +pad(1, 5); // "00001" +pad(12, 5); // "00012" +pad(123, 5); // "00123" +pad(1234, 5); // "01234" +pad(12345, 5); // "12345" +pad(123456, 5); // "123456" + +// you can also specify the "char" used for padding +pad(12, 5, '_'); // "___12" +``` + +see: [string/lpad](./string.html#lpad) + + + +## rol(val, shift):Number + +Bitwise circular shift left. + +More info at [Wikipedia#Circular_shift](http://en.wikipedia.org/wiki/Circular_shift) + + + +## ror(val, shift):Number + +Bitwise circular shift right. + +More info at [Wikipedia#Circular_shift](http://en.wikipedia.org/wiki/Circular_shift) + + + +## sign(val):Number + +Returns `-1` if value is negative, `0` if the value is `0` and `1` if value is positive. Useful for +multiplications. + +```js +sign(-123); // -1 +sign(123); // 1 +sign(0); // 0 +``` + + + +## toInt(val):Number + +"Convert" value into an 32-bit integer. Works like `Math.floor` if `val > 0` and +`Math.ceil` if `val < 0`. + +**IMPORTANT:** val will wrap at [number/MIN_INT](#MIN_INT) and +[number/MAX_INT](#MAX_INT). + +Created because most people don't know bitwise operations and also because this +feature is commonly needed. + +[Perf tests](http://jsperf.com/vs-vs-parseint-bitwise-operators/7) + +### Example: + +```js +toInt(1.25); // 1 +toInt(0.75); // 0 +toInt(-0.55); // 0 +toInt(-5.0001) // -5 +``` + + + +## toUInt(val):Number + +"Convert" value into an 32-bit unsigned integer. + +Works like AS3#uint(). + +**IMPORTANT:** val will wrap at 2^32. + +### Example: + +```js +toUInt(1.25); // 1 +toUInt(0.75); // 0 +toUInt(-0.55); // 0 +toUInt(-5.0001); // 4294967291 +toUInt(Math.pow(2,32) - 0.5); // 4294967295 +toUInt(Math.pow(2,32) + 0.5); // 0 +``` + + +## toUInt31(val):Number + +"Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + +Useful since all bitwise operators besides `>>>` treat numbers as signed +integers. + +**IMPORTANT:** val will wrap at 2^31 and negative numbers will be treated as +`zero`. + +### Example: + +```js +toUInt31(1.25); // 1 +toUInt31(0.75); // 0 +toUInt31(-0.55); // 0 +toUInt31(-5.0001); // 0 +toUInt31(Math.pow(2,31) - 0.5); // 21474836470 +toUInt31(Math.pow(2,31) + 0.5); // 0 +``` + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/object.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/object.md new file mode 100644 index 00000000..b4d5e483 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/object.md @@ -0,0 +1,780 @@ +# object # + +Object utilities. + + + +## bindAll(obj, [...methodNames]):void + +Bind methods of the target object to always execute on its own context +(ovewritting the original function). + +See: [function/bind](./function.html#bind) + +```js +var view = { + name: 'Lorem Ipsum', + logNameOnClick: function() { + console.log(this.name); + } +}; + +// binds all methods by default +bindAll(view); +jQuery('#docs').on('click', view.logNameOnClick); +``` + +You can also specify the list of methods that you want to bind (in case you +just want to bind a few of them). + +```js +// only the listed methods will be bound to `obj` context +bindAll(obj, 'logNameOnClick', 'doAwesomeStuffOnDrag'); +``` + + + +## contains(obj, value):Boolean + +Similar to [Array/contains](array.html#contains). Checks if Object contains +value. + +```js +var obj = { + a: 1, + b: 2, + c: 'bar' +}; +contains(obj, 2); // true +contains(obj, 'foo'); // false +``` + + + +## deepEquals(a, b, [callback]):Boolean + +Recursively tests whether two objects contain the same keys and equal values. + +`callback` specifies the equality comparison function used to compare +non-object values. It defaults to using the strict equals (`===`) operator. + +If the values are both an object, it will recurse into the objects, checking if +their keys/values are equal. It will only check the keys and values contained +by the objects; it will not check the objects' prototypes. If the either of +the values are not objects, they will be checked using the `callback` function. + +Example: + +```js +deepEquals({ a: 1 }, { a: 1 }); // true +deepEquals({ value: { a: 1 } }, { value: { a: 1 } }); // true +deepEquals({ value: { a: 1 } }, { value: { a: 2 } }); // false +deepEquals({ value: { a: 1 } }, { value: { a: 1, b: 2 } }); // false +deepEquals({}, null); // false +deepEquals(null, null); // true +deepEquals( + { a: { b: 1 } }, + { a: { b: '1' } }, + function(a, b) { return a == b; }); // true +``` + +See: [`equals()`](#equals) + + + +## deepFillIn(target, ...objects):Object + +Fill missing properties recursively. + +It's different from `deepMixIn` since it won't override any existing property. +It's also different from `merge` since it won't clone child objects during the +process. + +It returns the target object and mutates it in place. + +See: [`fillIn()`](#fillIn), [`deepMixIn()`](#deepMixIn), [`merge()`](#merge) + +```js +var base = { + foo : { + bar : 123 + }, + lorem : 'ipsum' +}; +var options = deepFillIn({foo : { baz : 45 }, lorem : 'amet'}, base); +// > {foo: {bar:123, baz : 45}, lorem : 'amet'} +``` + + + +## deepMatches(target, pattern):Boolean + +Recursively checks if object contains all properties/value pairs. When both +the target and pattern values are arrays, it checks that the target value +contain matches for all the items in the pattern array (independent of order). + +```js +var john = { + name: 'John', + age: 22, + pets: [ + { type: 'cat', name: 'Grumpy Cat' }, + { type: 'dog', name: 'Hawk' } + ] +}; + +deepMatches(john, { name: 'John' }); // true +deepMatches(john, { age: 21 }); // false +deepMatches(john, { pets: [ { type: 'cat' } ] }); // true +deepMatches(john, { pets: [ { name: 'Hawk' } ] }); // true +deepMatches(john, { pets: [ { name: 'Hairball' } ] }); // false +``` + +See [`matches()`](#matches) + + + +## deepMixIn(target, ...objects):Object + +Mixes objects into the target object, recursively mixing existing child objects +as well. + +It will only recursively mix objects if both (existing and new) values are +plain objects. + +Returns the target object. Like [`merge()`](#merge), but mutates the target +object, and does not clone child objects. + +```js +var target = { + foo: { + name: "foo", + id: 1 + } +}; + +deepMixIn(target, { foo: { id: 2 } }); +console.log(target); // { foo: { name: "foo", id: 2 } } +``` + +See: [`mixIn()`](#mixIn), [`merge()`](#merge), [`deepFillIn()`](#deepFillIn) + + + +## equals(a, b, [callback]):Boolean + +Tests whether two objects contain the same keys and values. + +`callback` specifies the equality comparison function used to compare the +values. It defaults to using the strict equals (`===`) operator. + +It will only check the keys and values contained by the objects; it will not +check the objects' prototypes. If either of the values are not objects, they +will be compared using the `callback` function. + +```js +equals({}, {}); // true +equals({ a: 1 }, { a: 1 }); // true +equals({ a: 1 }, { a: 2 }); // false +equals({ a: 1, b: 2 }, { a: 1 }); // false +equals({ a: 1 }, { a: 1, b: 2 }); // false +equals(null, null); // true +equals(null, {}); // false +equals({ a: 1 }, { a: '1' }, function(a, b) { return a == b; }); // true +``` + + + +## every(obj, callback, [thisObj]):Boolean + +Similar to [Array/every](array.html#every). Tests whether all properties in the +object pass the test implemented by the provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +every(obj, isNumber); // false +``` + + + +## fillIn(obj, ...default):Object + +Fill in missing properties in object with values from the *defaults* objects. + + var base = { + foo : 'bar', + num : 123 + }; + + fillIn({foo:'ipsum'}, base); // {foo:'ipsum', num:123} + +PS: it allows merging multiple objects at once, the first ones will take +precedence. + +See: [`mixIn()`](#mixIn), [`merge()`](#merge), [`deepFillIn()`](#deepFillIn) + + + +## filter(obj, callback, [thisObj]) + +Returns a new object containing all properties where `callback` returns true, +similar to Array/filter. It does not use properties from the object's +prototype. + +Callback receives the same arguments as `forOwn()`. + +See: [`forOwn()`](#forOwn), [`forIn()`](#forIn), [`pick()`](#pick) + +```js +var obj = { + foo: 'value', + bar: 'bar value' +}; + +// returns { bar: 'bar value' } +filter(obj, function(v) { return value.length > 5; }); + +// returns { foo: 'value' } +filter(obj, function(v, k) { return k === 'foo'; }); +``` + + + +## find(obj, callback, [thisObj]) + +Loops through all the properties in the Object and returns the first one that +passes a truth test (callback), similar to [Array/find](array.html#find). +Unlike Array/find, order of iteration is not guaranteed. + +```js +var obj = { + a: 'foo', + b: 12 +}; + +find(obj, isString); // 'foo' +find(obj, isNumber); // 12 +``` + + + +## forIn(obj, callback[, thisObj]) + +Iterate over all properties of an Object, similar to +[Array/forEach](array.html#forEach). + +It [avoids don't enum bug on IE](https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). +It **will** iterate over inherited (enumerable) properties from the prototype. + +It allows exiting the iteration early by returning `false` on the callback. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys), [`values()`](#values) + +### Callback arguments + +Callback will receive the following arguments: + + 1. Property Value (*) + 2. Key name (String) + 3. Target object (Object) + +### Example + +```js +function Foo(){ + this.foo = 1; + this.bar = 2; +} + +Foo.prototype.lorem = 4; + +var obj = new Foo(); + +var result = 0; +var keys = []; + +forIn(obj, function(val, key, o){ + result += val; + keys.push(key); +}); + +console.log(result); // 7 +console.log(keys); // ['foo', 'bar', 'lorem'] +``` + + + +## forOwn(obj, callback[, thisObj]) + +Iterate over all own properties from an Object, similar to +[Array/forEach](array.html#forEach). + +It [avoids don't enum bug on IE](https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). +Notice that it **won't** iterate over properties from the prototype. + +It allows exiting the iteration early by returning `false` on the callback. + +See: [`forIn()`](#forIn), [`keys()`](#keys), [`values()`](#values) + +### Callback arguments + +Callback will receive the following arguments: + + 1. Property Value (*) + 2. Key name (String) + 3. Target object (Object) + +### Example + +```js +function Foo(){ + this.foo = 1; + this.bar = 2; +} + +// will be ignored +Foo.prototype.lorem = 4; + +var obj = new Foo(); + +var result = 0; +var keys = []; + +forOwn(obj, function(val, key, o){ + result += val; + keys.push(key); +}); + +console.log(result); // 3 +console.log(keys); // ['foo', 'bar'] +``` + + + +## functions(obj):Array + +Returns a sorted list of all enumerable properties that have function values +(including inherited properties). + +```js +var obj = { + foo : function(){}, + bar : 'baz' +}; +functions(obj); // ['foo'] +``` + + + +## get(obj, propName):* + +Returns nested property value. Will return `undefined` if property doesn't +exist. + +See: [`set()`](#set), [`namespace()`](#namespace), [`has()`](#has) + +```js +var lorem = { + ipsum : { + dolor : { + sit : 'amet' + } + } + }; + +get(lorem, 'ipsum.dolor.sit'); // "amet" +get(lorem, 'foo.bar'); // undefined +``` + + + +## has(obj, propName):Boolean + +Checks if object contains a child property. Useful for cases where you need to +check if an object contain a *nested* property. It will get properties +inherited by the prototype. + +see: [`hasOwn()`](#hasOwn), [`get()`](#get) + +```js +var a = { + b : { + c : 123 + } + }; + +has(a, 'b.c'); // true +has(a, 'foo.c'); // false +``` + +### Common use case + +```js +if( has(a, 'foo.c') ){ // false + // ... +} + +if( a.foo.c ){ // ReferenceError: `foo` is not defined + // ... +} +``` + + + +## hasOwn(obj, propName):Boolean + +Safer `Object.hasOwnProperty`. Returns a boolean indicating whether the object +has the specified property. + +see: [`has()`](#has) + +```js +var obj = { + foo: 1, + hasOwnProperty : 'bar' +}; + +obj.hasOwnProperty('foo'); // ERROR! hasOwnProperty is not a function + +hasOwn(obj, 'foo'); // true +hasOwn(obj, 'hasOwnProperty'); // true +hasOwn(obj, 'toString'); // false +``` + + + +## keys(obj):Array + +Returns an array of all own enumerable properties found upon a given object. +It will use the native `Object.keys` if present. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`values()`](#values) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +keys(obj); // ['foo', 'bar', 'lorem'] +``` + + + +## map(obj, callback, [thisObj]):Object + +Returns a new object where the property values are the result of calling the +callback for each property in the original object, similar to Array/map. + +The callback function receives the same arguments as in `forOwn()`. + +See: [`forOwn()`](#forOwn) + +```js +var obj = { foo: 1, bar: 2 }, + data = { foo: 0, bar: 1 }; + +map(obj, function(v) { return v + 1; }); // { foo: 2, bar: 3 } +map(obj, function(v, k) { return k; }); // { foo: "foo", bar: "bar" } +map(obj, function(v, k) { return this[k]; }, data); // { foo: 0, bar: 1 } +``` + + + +## matches(obj, props):Boolean + +Checks if object contains all properties/values pairs. Useful for validation +and filtering. + +```js +var john = {age:25, hair:'long', beard:true}; +var mark = {age:27, hair:'short', beard:false}; +var hippie = {hair:'long', beard:true}; +matches(john, hippie); // true +matches(mark, hippie); // false +``` + +See [`deepMatches()`](#deepMatches) + + + +## merge(...objects):Object + +Deep merges objects. Note that objects and properties will be cloned during the +process to avoid undesired side effects. It return a new object and won't +affect source objects. + +```js +var obj1 = {a: {b: 1, c: 1, d: {e: 1, f: 1}}}; +var obj2 = {a: {b: 2, d : {f : 'yeah'} }}; + +merge(obj1, obj2); // {a: {b : 2, c : 1, d : {e : 1, f : 'yeah'}}} +``` + +See: [`deepMixIn()`](#deppMixIn), [`deepFillIn()`](#deepFillIn) + + + +## max(obj[, iterator]):* + +Returns maximum value inside object or use a custom iterator to define how +items should be compared. Similar to [Array/max](array.html#max). + +See: [`min()`](#min) + +```js +max({a: 100, b: 2, c: 1, d: 3, e: 200}); // 200 +max({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'lorem' +``` + + + +## min(obj[, iterator]):* + +Returns minimum value inside object or use a custom iterator to define how +items should be compared. Similar to [Array/min](array.html#min). + +See: [`max()`](#max) + +```js +min({a: 100, b: 2, c: 1, d: 3, e: 200}); // 1 +min({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'foo' +``` + + + +## mixIn(target, ...objects):Object + +Combine properties from all the objects into first one. + +This method affects target object in place, if you want to create a new Object +pass an empty object as first parameter. + +### Arguments + + 1. `target` (Object) : Target Object. + 2. `...objects` (...Object) : Objects to be combined (0...n objects). + +### Example + +```js +var a = {foo: "bar"}; +var b = {lorem: 123}; + +mixIn({}, a, b); // {foo: "bar", lorem: 123} +console.log(a); // {foo: "bar"} + +mixIn(a, b); // {foo: "bar", lorem: 123} +console.log(a); // {foo: "bar", lorem: 123} +``` + +See: [`fillIn()`](#fillIn), [`merge()`](#merge) + + + + +## namespace(obj, propName):Object + +Creates an empty object inside namespace if not existent. Will return created +object or existing object. + +See: [`get()`](#get), [`set()`](#set) + +```js +var obj = {}; +namespace(obj, 'foo.bar'); // {} +console.log(obj); // {foo:{bar:{}}} +``` + + + +## pick(obj, ...keys):Object + +Return a copy of the object that contains only the whitelisted keys. + +See: [`filter()`](#filter) + +```js +var user = { + firstName : 'John', + lastName : 'Doe', + dob : '1985/07/23', + gender : 'male' +}; + +// can pass an array of keys as second argument +var keys = ['firstName', 'dob'] +pick(user, keys); // {firstName:"John", dob: "1985/07/23"} + +// or multiple arguments +pick(user, 'firstName', 'lastName'); // {firstName:"John", lastName: "Doe"} +``` + + + +## pluck(obj, propName):Object + +Extract an object containing property values with keys as they appear in the +passed object. + +```js +var users = { + first: { + name : 'John', + age : 21 + }, + second: { + name : 'Mary', + age : 25 + } +}; + +pluck(users, 'name'); // {first: 'John', second: 'Mary'} ); +pluck(users, 'age'); // {first: 21, second: 25} ); +``` + + + +## reduce(obj, callback, initial, [thisObj]):* + +Similar to [Array/reduce](array.html#reduce). + +Apply a function against an accumulator and each property of the object (order +is undefined) as to reduce it to a single value. + +```js +var obj = {a: 1, b: 2, c: 3, d: 4}; + +function sum(prev, cur, key, list) { + compare1.push(prev); + return prev + cur; +} + +reduce(obj, sum); // 10 +``` + + + +## reject(obj, callback, thisObj):Object + +Returns a new object containing all properties where `callback` returns true, +similar to [Array/reject](array.html#reject). It does not use properties from +the object's prototype. Opposite of [`filter()`](#filter). + +See [`filter()`](#filter) + +### Example + +```js +var obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; +reject(obj, function(x) { return (x % 2) !== 0; }); // {b: 2, d: 4} +``` + + + +## values(obj):Array + +Returns an array of all own enumerable properties values found upon a given object. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +values(obj); // [1, 2, 3] +``` + + + +## set(obj, propName, value) + +Sets a nested property value. + +See: [`get()`](#get), [`namespace()`](#namespace) + +```js +var obj = {}; +set(obj, 'foo.bar', 123); +console.log(obj.foo.bar); // 123 +console.log(obj); // {foo:{bar:123}} +``` + + + +## size(obj):Number + +Returns the count of own enumerable properties found upon a given object. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +size(obj); // 3 +``` + + + +## some(obj, callback, [thisObj]):Boolean + +Similar to [Array/some](array.html#some). Tests whether any properties in the +object pass the test implemented by the provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +some(obj, isNumber); // true +``` + + + +## unset(obj, propName):Boolean + +Delete object property if existent and returns a boolean indicating succes. It +will also return `true` if property doesn't exist. + +Some properties can't be deleted, to understand why [check this +article](http://perfectionkills.com/understanding-delete/). + +See: [`set()`](#set) + +```js +var lorem = { + ipsum : { + dolor : { + sit : 'amet' + } + } + }; + +unset(lorem, 'ipsum.dolor.sit'); // true +console.log(lorem.ipsum.dolor); // {} +unset(lorem, 'foo.bar'); // true +``` diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md new file mode 100644 index 00000000..1be3c102 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md @@ -0,0 +1,115 @@ +# queryString # + +Utilities for query string manipulation. + + + +## contains(url, paramName):Boolen + +Checks if query string contains parameter. + +### Arguments: + + 1. `url` (String) : URL or query string. + 2. `paramName` (String) : Parameter name. + +### Example: + +```js +var url = 'example.com/?lorem=ipsum'; +contains(url, 'lorem'); // true +contains(url, 'foo'); //false +``` + + + +## decode(queryStr[, shouldTypecast]):Object + +Parses query string and creates an object of keys => vals. + +Will typecast value with [`string/typecast`](string.html#typecast) by default +and decode string parameters using `decodeURIComponent()`. + +```js +var query = '?foo=bar&lorem=123'; +decode(query); // {foo: "bar", lorem: 123} +decode(query, false); // {foo: "bar", lorem: "123"} +``` + + +## encode(obj):String + +Encode object into a query string. + +Will encode parameters with `encodeURIComponent()`. + +```js +encode({foo: "bar", lorem: 123}); // "?foo=bar&lorem=123" +``` + + +## getParam(url, param[, shouldTypecast]):* + +Get query parameter value. + +Will typecast value with [`string/typecast`](string.html#typecast) by default. + +See: [`setParam()`](#setParam) + +### Arguments: + + 1. `url` (String) : Url. + 2. `param` (String) : Parameter name. + 3. `[shouldTypecast]` (Boolean) : If it should typecast value. + +### Example: + +```js +var url = 'example.com/?foo=bar&lorem=123&ipsum=false'; +getParam(url, 'dolor'); // "amet" +getParam(url, 'lorem'); // 123 +getParam(url, 'lorem', false); // "123" +``` + + +## parse(url[, shouldTypecast]):Object + +Parses URL, extracts query string and decodes it. + +It will typecast all properties of the query object unless second argument is +`false`. + +Alias to: `decode(getQuery(url))`. + +```js +var url = 'example.com/?lorem=ipsum&a=123'; +parse(url); // {lorem: "ipsum", a: 123} +parse(url, false); // {lorem: "ipsum", a: "123"} +``` + + +## getQuery(url):String + +Gets full query as string with all special chars decoded. + +```js +getQuery('example.com/?lorem=ipsum'); // "?lorem=ipsum" +``` + + +## setParam(url, paramName, value):String + +Add new query string parameter to URL or update existing value. + +See: [`getParam()`](#getParam) + +```js +setParam('?foo=bar&lorem=0', 'lorem', 'ipsum'); // '?foo=bar&lorem=ipsum' +setParam('?lorem=1', 'foo', 123); // '?lorem=1&foo=123' +``` + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/random.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/random.md new file mode 100644 index 00000000..b058b4e0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/random.md @@ -0,0 +1,218 @@ +# random # + +Pseudo-random generators. + +mout uses `Math.random` by default on all the pseudo-random generators, if +you need a seeded random or a better algorithm see the [`random()`](#random) +documentation for instructions. + + + +## choice(...items):* + +Returns a random element from the supplied arguments or from an array if single +argument is an array. + +### Example: + +```js +choice(1, 2, 3, 4, 5); // 3 + +var arr = ['lorem', 'ipsum', 'dolor']; +choice(arr); // 'dolor' +``` + + + +## guid():String + +Generates a pseudo-random [Globally Unique Identifier](http://en.wikipedia.org/wiki/Globally_unique_identifier) (v4). + +Since the total number of GUIDs is 2122 the chance of generating the +same value twice is negligible. + +**Important:** this method uses `Math.random` by default so the UUID isn't +*safe* (sequence of outputs can be predicted in some cases), check the +[`random()`](#random) documentation for more info on how to replace the default +PRNG if you need extra safety or need *seeded* results. + +See: [`randHex()`](#randHex), [`random()`](#random) + +### Example: + +```js +guid(); // 830e9f50-ac7f-4369-a14f-ed0e62b2fa0b +guid(); // 5de3d09b-e79c-4727-932b-48c49228d508 +``` + + + +## rand([min], [max]):Number + +Gets a random number inside range or snap to min/max values. + +### Arguments: + + 1. `[min]` (Number) : Minimum value. Defaults to `number/MIN_INT`. + 2. `[max]` (Number) : Maximum value. Defaults to `number/MAX_INT`. + + +### Example: + +```js +rand(); // 448740433.55274725 +rand(); // -31797596.097682 +rand(0, 10); // 7.369723 +rand(0, 10); // 5.987042 +``` + +See: [`random()`](#random) + + + +## randBit():Number + +Returns a random "bit" (0 or 1). Useful for addition/subtraction. + +It's slightly faster than `choice(0, 1)` since implementation is simpler (not +that it will make a huge difference in most cases). + +See: [`choice()`](#choice) + +### Example: + +```js +randBit(); // 1 +randBit(); // 0 + +//same effect as +choice(0, 1); +``` + + + +## randHex([size]):String + +Returns a random hexadecimal string. + +The default `size` is `6`. + +### Example: + +```js +randHex(); // "dd8575" +randHex(); // "e6baeb" +randHex(2); // "a2" +randHex(30); // "effd7e2ad9a4a3067e30525fab983a" +``` + + + +## randInt([min], [max]):Number + +Gets a random integer inside range or snap to min/max values. + +### Arguments: + + 1. `[min]` (Number) : Minimum value. Defaults to `number/MIN_INT`. + 2. `[max]` (Number) : Maximum value. Defaults to `number/MAX_INT`. + + +### Example: + +```js +randInt(); // 448740433 +randInt(); // -31797596 +randInt(0, 10); // 7 +randInt(0, 10); // 5 +``` + + + +## randSign():Number + +Returns a random "sign" (-1 or 1). Useful for multiplications. + +It's slightly faster than `choice(-1, 1)` since implementation is simpler (not +that it will make a huge difference in most cases). + +See: [`choice()`](#choice) + +### Example: + +```js +randSign(); // -1 +randSign(); // 1 + +//same effect as +choice(-1, 1); +``` + + + +## random():Number + +Returns a random number between `0` and `1`. Same as `Math.random()`. + +```js +random(); // 0.35435103671625257 +random(); // 0.8768321881070733 +``` + +**Important:** No methods inside mout should call `Math.random()` +directly, they all use `random/random` as a proxy, that way we can +inject/replace the pseudo-random number generator if needed (ie. in case we +need a seeded random or a better algorithm than the native one). + +### Replacing the PRNG + +In some cases we might need better/different algorithms than the one provided +by `Math.random` (ie. safer, seeded). + +Because of licensing issues, file size limitations and different needs we +decided to **not** implement a custom PRNG and instead provide a easy way to +override the default behavior. - [issue #99](https://github.com/millermedeiros/amd-utils/issues/99) + +If you are using mout with a loader that supports the [AMD map +config](https://github.com/amdjs/amdjs-api/wiki/Common-Config), such as +[RequireJS](http://requirejs.org/), you can use it to replace the PRNG +(recommended approach): + +```js +requirejs.config({ + map : { + // all modules will load "my_custom_prng" instead of + // "mout/random/random" + '*' : { + 'mout/random/random' : 'my_custom_prng' + } + } +}); +``` + +You also have the option to override `random.get` in case you are using +mout on node.js or with a loader which doesn't support the map config: + +```js +// replace the PRNG +var n = 0; +random.get = function(){ + return ++n % 2? 0 : 1; // not so random :P +}; +random(); // 0 +random(); // 1 +random(); // 0 +random(); // 1 +``` + +See this [detailed explanation about PRNG in +JavaScript](http://baagoe.org/en/w/index.php/Better_random_numbers_for_javascript) +to understand the issues with the native `Math.random` and also for a list of +algorithms that could be used instead. + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/string.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/string.md new file mode 100644 index 00000000..2b282315 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/string.md @@ -0,0 +1,594 @@ +# string # + +String utilities. + + +## camelCase(str):String + +Convert string to "camelCase" text. + +See: [`pascalCase()`](#pascalCase), [`unCamelCase()`](#unCamelCase) + +### Example + +```js +camelCase('lorem-ipsum-dolor'); // "loremIpsumDolor" +camelCase('lorem ipsum dolor'); // "loremIpsumDolor" +``` + + + +## contains(str, substring, [fromIndex]):Boolean + +Checks if string contains the given substring. + +See: [`startsWith()`](#startsWith), [`endsWith()`](#endsWith) + +### Example + +```js +contains('lorem', 'or'); // true +contains('lorem', 'bar'); // false +``` + + + +## crop(str, maxChars, [append]):String + +Truncate string at full words. Alias to `truncate(str, maxChars, append, true);`. + +See: [`truncate()`](#truncate) + +### Example + +```js +crop('lorem ipsum dolor', 10); // "lorem..." +crop('lorem ipsum dolor', 10, '+'); // "lorem+" +``` + + + +## endsWith(str, suffix):Boolean + +Checks if string ends with specified suffix. + +See: [`startsWith()`](#startsWith), [`contains()`](#contains) + +### Example + +```js +endsWith('lorem ipsum', 'lorem'); // false +endsWith('lorem ipsum', 'ipsum'); // true +``` + + + +## escapeHtml(str):String + +Escapes HTML special chars (`>`, `<`, `&`, `"`, `'`). + +See: [`unescapeHtml()`](#unescapeHtml) + +### Example + +```js +escapeHtml('lorem & "ipsum"'); // "lorem &amp; &quot;ipsum&quot;" +``` + + + +## escapeRegExp(str):String + +Escape special chars to be used as literals in RegExp constructors. + +### Example + +```js +str = escapeRegExp('[lorem.ipsum]'); // "\\[lorem\\.ipsum\\]" +reg = new RegExp(str); // /\[lorem\.ipsum\]/ +``` + + + +## escapeUnicode(str[, shouldEscapePrintable]):String + +Unicode escape chars. + +It will only escape non-printable ASCII chars unless `shouldEscapePrintable` is +set to `true`. + +See: [`unescapeUnicode()`](#unescapeUnicode) + +```js +escapeUnicode('føo bår'); +// > "f\u00f8o b\u00e5r" +escapeUnicode('føo bår', true); +// > "\u0066\u00f8\u006f\u0020\u0062\u00e5\u0072" +``` + + + +## hyphenate(str):String + +Replaces spaces with hyphens, split camelCase text, remove non-word chars, +remove accents and convert to lower case. + +See: [`slugify()`](#slugify), [`underscore()`](#underscore), +[`unhyphenate`](#unhyphenate) + +```js +hyphenate(' %# lorem ipsum ? $ dolor'); // "lorem-ipsum-dolor" +hyphenate('spéçïãl çhârs'); // "special-chars" +hyphenate('loremIpsum'); // "lorem-ipsum" +``` + + + +## interpolate(str, replacements[, syntax]):String + +String interpolation. Format/replace tokens with object properties. + +```js +var tmpl = 'Hello {{name}}!'; +interpolate(tmpl, {name: 'World'}); // "Hello World!" +interpolate(tmpl, {name: 'Lorem Ipsum'}); // "Hello Lorem Ipsum!" +``` + +It uses a mustache-like syntax by default but you can set your own format if +needed. You can also use Arrays for the replacements (since Arrays are +objects as well): + +```js +// matches everything inside "${}" +var syntax = /\$\{([^}]+)\}/g; +var tmpl = "Hello ${0}!"; +interpolate(tmpl, ['Foo Bar'], syntax); // "Hello Foo Bar!" +``` + + + +## lowerCase(str):String + +"Safer" `String.toLowerCase()`. (Used internally) + +### Example + +```js +(null).toLowerCase(); // Error! +(undefined).toLowerCase(); // Error! +lowerCase(null); // "" +lowerCase(undefined); // "" +``` + + + +## lpad(str, minLength[, char]):String + +Pad string from left with `char` if its' length is smaller than `minLen`. + +See: [`rpad()`](#rpad) + +### Example + +```js +lpad('a', 5); // " a" +lpad('a', 5, '-'); // "----a" +lpad('abc', 3, '-'); // "abc" +lpad('abc', 4, '-'); // "-abc" +``` + + + +## ltrim(str, [chars]):String + +Remove chars or white-spaces from beginning of string. + +`chars` is an array of chars to remove from the beginning of the string. If +`chars` is not specified, Unicode whitespace chars will be used instead. + +See: [`rtrim()`](#rtrim), [`trim()`](#trim) + +### Example + +```js +ltrim(' lorem ipsum '); // "lorem ipsum " +ltrim('--lorem ipsum--', ['-']); // "lorem ipsum--" +``` + + + +## makePath(...args):String + +Group arguments as path segments, if any of the args is `null` or `undefined` +it will be ignored from resulting path. It will also remove duplicate "/". + +See: [`array/join()`](array.html#join) + +### Example + +```js +makePath('lorem', 'ipsum', null, 'dolor'); // "lorem/ipsum/dolor" +makePath('foo///bar/'); // "foo/bar/" +``` + + + +## normalizeLineBreaks(str, [lineBreak]):String + +Normalize line breaks to a single format. Defaults to Unix `\n`. + +It handles DOS (`\r\n`), Mac (`\r`) and Unix (`\n`) formats. + +### Example + +```js +// "foo\nbar\nlorem\nipsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum'); + +// "foo\rbar\rlorem\ripsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum', '\r'); + +// "foo bar lorem ipsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum', ' '); +``` + + + +## pascalCase(str):String + +Convert string to "PascalCase" text. + +See: [`camelCase()`](#camelCase) + +### Example + +```js +pascalCase('lorem-ipsum-dolor'); // "LoremIpsumDolor" +pascalCase('lorem ipsum dolor'); // "LoremIpsumDolor" +``` + + + +## properCase(str):String + +UPPERCASE first char of each word, lowercase other chars. + +### Example + +```js +properCase('loRem iPSum'); // "Lorem Ipsum" +``` + + + +## removeNonASCII(str):String + +Remove [non-printable ASCII +chars](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). + +### Example + +```js +removeNonASCII('äÄçÇéÉêlorem-ipsumöÖÐþúÚ'); // "lorem-ipsum" +``` + + + +## removeNonWord(str):String + +Remove non-word chars. + +### Example + +```js +var str = 'lorem ~!@#$%^&*()_+`-={}[]|\\:";\'/?><., ipsum'; +removeNonWord(str); // "lorem - ipsum" +``` + + + +## repeat(str, n):String + +Repeat string n-times. + +### Example + +```js +repeat('a', 3); // "aaa" +repeat('bc', 2); // "bcbc" +repeat('a', 0); // "" +``` + + + +## replace(str, search, replacements):String + +Replace string(s) with the replacement(s) in the source. + +`search` and `replacements` can be an array, or a single item. For every item +in `search`, it will call `str.replace` with the search item and the matching +replacement in `replacements`. If `replacements` only contains one replacement, +it will be used for all the searches, otherwise it will use the replacement at +the same index as the search. + +### Example + +```js +replace('foo bar', 'foo', 'test'); // "test bar" +replace('test 1 2', ['1', '2'], 'n'); // "test n n" +replace('test 1 2', ['1', '2'], ['one', 'two']); // "test one two" +replace('123abc', [/\d/g, /[a-z]/g], ['0', '.']); // "000..." +``` + + + +## replaceAccents(str):String + +Replaces all accented chars with regular ones. + +**Important:** Only covers **Basic Latin** and **Latin-1** unicode chars. + +### Example + +```js +replaceAccents('spéçïãl çhârs'); // "special chars" +``` + + + +## rpad(str, minLength[, char]):String + +Pad string from right with `char` if its' length is smaller than `minLen`. + +See: [`lpad()`](#lpad) + +### Example + +```js +rpad('a', 5); // "a " +rpad('a', 5, '-'); // "a----" +rpad('abc', 3, '-'); // "abc" +rpad('abc', 4, '-'); // "abc-" +``` + + + +## rtrim(str, [chars]):String + +Remove chars or white-spaces from end of string. + +`chars` is an array of chars to remove from the end of the string. If +`chars` is not specified, Unicode whitespace chars will be used instead. + +See: [`trim()`](#trim), [`ltrim()`](#ltrim) + +### Example + +```js +rtrim(' lorem ipsum '); // " lorem ipsum" +rtrim('--lorem ipsum--', ['-']); // "--lorem ipsum" +``` + + + +## sentenceCase(str):String + +UPPERCASE first char of each sentence and lowercase other chars. + +### Example + +```js +var str = 'Lorem IpSum DoLOr. maeCeNnas Ullamcor.'; +sentenceCase(str); // "Lorem ipsum dolor. Maecennas ullamcor." +``` + + + +## stripHtmlTags(str):String + +Remove HTML/XML tags from string. + +### Example + +```js +var str = '

      lorem ipsum

      '; +stripHtmlTags(str); // "lorem ipsum" +``` + + + +## startsWith(str, prefix):Boolean + +Checks if string starts with specified prefix. + +See: [`endsWith()`](#endsWith), [`contains()`](#contains) + +### Example + +```js +startsWith('lorem ipsum', 'lorem'); // true +startsWith('lorem ipsum', 'ipsum'); // false +``` + + + +## slugify(str[, delimeter]):String + +Convert to lower case, remove accents, remove non-word chars and replace spaces +with the delimeter. The default delimeter is a hyphen. + +Note that this does not split camelCase text. + +See: [`hyphenate()`](#hyphenate) and [`underscore()`](#underscore) + +### Example + +```js +var str = 'loremIpsum dolor spéçïãl chârs'; +slugify(str); // "loremipsum-dolor-special-chars" +slugify(str, '_'); // "loremipsum_dolor_special_chars" +``` + + + +## trim(str, [chars]):String + +Remove chars or white-spaces from beginning and end of string. + +`chars` is an array of chars to remove from the beginning and end of the +string. If `chars` is not specified, Unicode whitespace chars will be used +instead. + +See: [`rtrim()`](#rtrim), [`ltrim()`](#ltrim) + +### Example + +```js +trim(' lorem ipsum '); // "lorem ipsum" +trim('-+-lorem ipsum-+-', ['-', '+']); // "lorem ipsum" +``` + + + +## truncate(str, maxChars, [append], [onlyFullWords]):String + +Limit number of chars. Returned string `length` will be `<= maxChars`. + +See: [`crop()`](#crop) + +### Arguments + + 1. `str` (String) : String + 2. `maxChars` (Number) : Maximum number of characters including `append.length`. + 3. `[append]` (String) : Value that should be added to the end of string. + Defaults to "...". + 4. `[onlyFullWords]` (Boolean) : If it shouldn't break words. Default is + `false`. (favor [`crop()`](#crop) since code will be clearer). + +### Example + +```js +truncate('lorem ipsum dolor', 11); // "lorem ip..." +truncate('lorem ipsum dolor', 11, '+'); // "lorem ipsu+" +truncate('lorem ipsum dolor', 11, null, true); // "lorem..." +``` + + + +## typecast(str):* + +Parses string and convert it into a native value. + +### Example + +```js +typecast('lorem ipsum'); // "lorem ipsum" +typecast('123'); // 123 +typecast('123.45'); // 123.45 +typecast('false'); // false +typecast('true'); // true +typecast('null'); // null +typecast('undefined'); // undefined +``` + + + +## unCamelCase(str, [delimiter]):String + +Add the delimiter between camelCase text and convert first char of each word to +lower case. + +The delimiter defaults to a space character. + +See: [`camelCase()`][#camelCase] + +### Example + +```js +unCamelCase('loremIpsumDolor'); // "lorem ipsum dolor" +unCamelCase('loremIpsumDolor', '-'); // "lorem-ipsum-color" +``` + + +## underscore(str):String + +Replaces spaces with underscores, split camelCase text, remove non-word chars, +remove accents and convert to lower case. + +See: [`slugify()`](#slugify), [`hyphenate()`](#hyphenate) + +```js +underscore(' %# lorem ipsum ? $ dolor'); // "lorem_ipsum_dolor" +underscore('spéçïãl çhârs'); // "special_chars" +underscore('loremIpsum'); // "lorem_ipsum" +``` + + + +## unescapeHtml(str):String + +Unescapes HTML special chars (`>`, `<`, `&`, `"`, `'`). + +See: [`escapeHtml()`](#escapeHtml) + +### Example + +```js +unescapeHtml('lorem &amp; &quot;ipsum&quot;'); // 'lorem & "ipsum"' +``` + + + +## unescapeUnicode(str):String + +Unescapes unicode char sequences. + +See: [`escapeUnicode()`](#escapeUnicode) + +```js +unescapeUnicode('\\u0066\\u00f8\\u006f\\u0020\\u0062\\u00e5\\u0072'); +// > 'føo bår' +``` + + + +## unhyphenate(str):String + +Replaces hyphens with spaces. (only hyphens between word chars) + +See : [`hyphenate()`](#hyphenate) + +### Example + +```js +unhyphenate('lorem-ipsum-dolor'); // "lorem ipsum dolor" +``` + + +## upperCase(str):String + +"Safer" `String.toUpperCase()`. (Used internally) + +### Example + +```js +(null).toUpperCase(); // Error! +(undefined).toUpperCase(); // Error! +upperCase(null); // "" +upperCase(undefined); // "" +``` + + + +## WHITE_SPACES:Array + +Constant array of all [Unicode white-space +characters](http://en.wikipedia.org/wiki/Whitespace_character). + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/time.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/time.md new file mode 100644 index 00000000..628c2a9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/doc/time.md @@ -0,0 +1,64 @@ +# time # + +Utilities for time manipulation. + + +## convert(value, sourceUnit, [destinationUnit]):Number + +Converts time between units. + +Available units: `millisecond`, `second`, `minute`, `hour`, `day`, `week`. +Abbreviations: `ms`, `s`, `m`, `h`, `d`, `w`. + +We do **not** support year and month as a time unit since their values are not +fixed. + +The default `destinationUnit` is `ms`. + +```js +convert(1, 'minute'); // 60000 +convert(2.5, 's', 'ms'); // 2500 +convert(2, 'm', 's'); // 120 +convert(500, 'ms', 's'); // 0.5 +``` + + + +## now():Number + +Returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. +Uses `Date.now()` if available. + +### Example + +```js +now(); // 1335449614650 +``` + + + +## parseMs(ms):Object + +Parse timestamp (milliseconds) into an object `{milliseconds:number, +seconds:number, minutes:number, hours:number, days:number}`. + +### Example + +```js +// {days:27, hours:4, minutes:26, seconds:5, milliseconds:454} +parseMs(2348765454); +``` + + + +## toTimeString(ms):String + +Convert timestamp (milliseconds) into a time string in the format "[H:]MM:SS". + +### Example + +```js +toTimeString(12513); // "00:12" +toTimeString(951233); // "15:51" +toTimeString(8765235); // "2:26:05" +``` diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function.js new file mode 100644 index 00000000..43a16ef4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function.js @@ -0,0 +1,18 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'bind' : require('./function/bind'), + 'compose' : require('./function/compose'), + 'debounce' : require('./function/debounce'), + 'func' : require('./function/func'), + 'makeIterator_' : require('./function/makeIterator_'), + 'partial' : require('./function/partial'), + 'prop' : require('./function/prop'), + 'series' : require('./function/series'), + 'throttle' : require('./function/throttle'), + 'timeout' : require('./function/timeout') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/bind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/bind.js new file mode 100644 index 00000000..71bc1257 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/bind.js @@ -0,0 +1,23 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + * @param {Function} fn Function. + * @param {object} context Execution context. + * @param {rest} args Arguments (0...n arguments). + * @return {Function} Wrapped Function. + */ + function bind(fn, context, args){ + var argsArr = slice(arguments, 2); //curried args + return function(){ + return fn.apply(context, argsArr.concat(slice(arguments))); + }; + } + + module.exports = bind; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/compose.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/compose.js new file mode 100644 index 00000000..8cd5c5f3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/compose.js @@ -0,0 +1,23 @@ + + + /** + * Returns a function that composes multiple functions, passing results to + * each other. + */ + function compose() { + var fns = arguments; + return function(arg){ + // only cares about the first argument since the chain can only + // deal with a single return value anyway. It should start from + // the last fn. + var n = fns.length; + while (n--) { + arg = fns[n].call(this, arg); + } + return arg; + }; + } + + module.exports = compose; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/debounce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/debounce.js new file mode 100644 index 00000000..a0ed07f5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/debounce.js @@ -0,0 +1,29 @@ + + + /** + * Debounce callback execution + */ + function debounce(fn, threshold, isAsap){ + var timeout, result; + function debounced(){ + var args = arguments, context = this; + function delayed(){ + if (! isAsap) { + result = fn.apply(context, args); + } + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (isAsap) { + result = fn.apply(context, args); + } + timeout = setTimeout(delayed, threshold); + return result; + } + return debounced; + } + + module.exports = debounce; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/func.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/func.js new file mode 100644 index 00000000..b81bf0a8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/func.js @@ -0,0 +1,14 @@ + + + /** + * Returns a function that call a method on the passed object + */ + function func(name){ + return function(obj){ + return obj[name](); + }; + } + + module.exports = func; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js new file mode 100644 index 00000000..767610a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js @@ -0,0 +1,34 @@ +var prop = require('./prop'); +var deepMatches = require('../object/deepMatches'); + + /** + * Converts argument into a valid iterator. + * Used internally on most array/object/collection methods that receives a + * callback/iterator providing a shortcut syntax. + */ + function makeIterator(src, thisObj){ + switch(typeof src) { + case 'object': + // typeof null == "object" + return (src != null)? function(val, key, target){ + return deepMatches(val, src); + } : src; + case 'string': + case 'number': + return prop(src); + case 'function': + if (typeof thisObj === 'undefined') { + return src; + } else { + return function(val, i, arr){ + return src.call(thisObj, val, i, arr); + }; + } + default: + return src; + } + } + + module.exports = makeIterator; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/partial.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/partial.js new file mode 100644 index 00000000..d63ff1be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/partial.js @@ -0,0 +1,19 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Creates a partially applied function. + */ + function partial(fn, var_args){ + var argsArr = slice(arguments, 1); //curried args + return function(){ + return fn.apply(this, argsArr.concat(slice(arguments))); + }; + } + + module.exports = partial; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/prop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/prop.js new file mode 100644 index 00000000..734acb7a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/prop.js @@ -0,0 +1,14 @@ + + + /** + * Returns a function that gets a property of the passed object + */ + function prop(name){ + return function(obj){ + return obj[name]; + }; + } + + module.exports = prop; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/series.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/series.js new file mode 100644 index 00000000..25159c2c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/series.js @@ -0,0 +1,22 @@ + + + /** + * Returns a function that will execute a list of functions in sequence + * passing the same arguments to each one. (useful for batch processing + * items during a forEach loop) + */ + function series(){ + var fns = arguments; + return function(){ + var i = 0, + n = fns.length; + while (i < n) { + fns[i].apply(this, arguments); + i += 1; + } + }; + } + + module.exports = series; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/throttle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/throttle.js new file mode 100644 index 00000000..619dc540 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/throttle.js @@ -0,0 +1,32 @@ +var now = require('../time/now'); + + /** + */ + function throttle(fn, delay){ + var context, timeout, result, args, + cur, diff, prev = 0; + function delayed(){ + prev = now(); + timeout = null; + result = fn.apply(context, args); + } + function throttled(){ + context = this; + args = arguments; + cur = now(); + diff = delay - (cur - prev); + if (diff <= 0) { + clearTimeout(timeout); + prev = cur; + result = fn.apply(context, args); + } else if (! timeout) { + timeout = setTimeout(delayed, diff); + } + return result; + } + return throttled; + } + + module.exports = throttle; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/timeout.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/timeout.js new file mode 100644 index 00000000..e0d21a66 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/function/timeout.js @@ -0,0 +1,21 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Delays the call of a function within a given context. + */ + function timeout(fn, millis, context){ + + var args = slice(arguments, 3); + + return setTimeout(function() { + fn.apply(context, args); + }, millis); + } + + module.exports = timeout; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/index.js new file mode 100644 index 00000000..32a1c639 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/index.js @@ -0,0 +1,24 @@ +/**@license + * mout v0.6.0 | http://moutjs.com | MIT license + */ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'VERSION' : '0.6.0', + 'array' : require('./array'), + 'collection' : require('./collection'), + 'date' : require('./date'), + 'function' : require('./function'), + 'lang' : require('./lang'), + 'math' : require('./math'), + 'number' : require('./number'), + 'object' : require('./object'), + 'queryString' : require('./queryString'), + 'random' : require('./random'), + 'string' : require('./string'), + 'time' : require('./time') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang.js new file mode 100644 index 00000000..b9816218 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang.js @@ -0,0 +1,36 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'clone' : require('./lang/clone'), + 'createObject' : require('./lang/createObject'), + 'ctorApply' : require('./lang/ctorApply'), + 'deepClone' : require('./lang/deepClone'), + 'defaults' : require('./lang/defaults'), + 'inheritPrototype' : require('./lang/inheritPrototype'), + 'is' : require('./lang/is'), + 'isArguments' : require('./lang/isArguments'), + 'isArray' : require('./lang/isArray'), + 'isBoolean' : require('./lang/isBoolean'), + 'isDate' : require('./lang/isDate'), + 'isEmpty' : require('./lang/isEmpty'), + 'isFinite' : require('./lang/isFinite'), + 'isFunction' : require('./lang/isFunction'), + 'isInteger' : require('./lang/isInteger'), + 'isKind' : require('./lang/isKind'), + 'isNaN' : require('./lang/isNaN'), + 'isNull' : require('./lang/isNull'), + 'isNumber' : require('./lang/isNumber'), + 'isObject' : require('./lang/isObject'), + 'isPlainObject' : require('./lang/isPlainObject'), + 'isRegExp' : require('./lang/isRegExp'), + 'isString' : require('./lang/isString'), + 'isUndefined' : require('./lang/isUndefined'), + 'isnt' : require('./lang/isnt'), + 'kindOf' : require('./lang/kindOf'), + 'toArray' : require('./lang/toArray'), + 'toString' : require('./lang/toString') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/clone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/clone.js new file mode 100644 index 00000000..33c4e949 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/clone.js @@ -0,0 +1,49 @@ +var kindOf = require('./kindOf'); +var isPlainObject = require('./isPlainObject'); +var mixIn = require('../object/mixIn'); + + /** + * Clone native types. + */ + function clone(val){ + switch (kindOf(val)) { + case 'Object': + return cloneObject(val); + case 'Array': + return cloneArray(val); + case 'RegExp': + return cloneRegExp(val); + case 'Date': + return cloneDate(val); + default: + return val; + } + } + + function cloneObject(source) { + if (isPlainObject(source)) { + return mixIn({}, source); + } else { + return source; + } + } + + function cloneRegExp(r) { + var flags = ''; + flags += r.multiline ? 'm' : ''; + flags += r.global ? 'g' : ''; + flags += r.ignorecase ? 'i' : ''; + return new RegExp(r.source, flags); + } + + function cloneDate(date) { + return new Date(+date); + } + + function cloneArray(arr) { + return arr.slice(); + } + + module.exports = clone; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js new file mode 100644 index 00000000..bbc14c1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js @@ -0,0 +1,18 @@ +var mixIn = require('../object/mixIn'); + + /** + * Create Object using prototypal inheritance and setting custom properties. + * - Mix between Douglas Crockford Prototypal Inheritance and the EcmaScript 5 `Object.create()` method. + * @param {object} parent Parent Object. + * @param {object} [props] Object properties. + * @return {object} Created object. + */ + function createObject(parent, props){ + function F(){} + F.prototype = parent; + return mixIn(new F(), props); + + } + module.exports = createObject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js new file mode 100644 index 00000000..d68dc506 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js @@ -0,0 +1,17 @@ + + + function F(){} + + /** + * Do fn.apply on a constructor. + */ + function ctorApply(ctor, args) { + F.prototype = ctor.prototype; + var instance = new F(); + ctor.apply(instance, args); + return instance; + } + + module.exports = ctorApply; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js new file mode 100644 index 00000000..25fd95f1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js @@ -0,0 +1,48 @@ +var clone = require('./clone'); +var forOwn = require('../object/forOwn'); +var kindOf = require('./kindOf'); +var isPlainObject = require('./isPlainObject'); + + /** + * Recursively clone native types. + */ + function deepClone(val, instanceClone) { + switch ( kindOf(val) ) { + case 'Object': + return cloneObject(val, instanceClone); + case 'Array': + return cloneArray(val, instanceClone); + default: + return clone(val); + } + } + + function cloneObject(source, instanceClone) { + if (isPlainObject(source)) { + var out = {}; + forOwn(source, function(val, key) { + this[key] = deepClone(val, instanceClone); + }, out); + return out; + } else if (instanceClone) { + return instanceClone(source); + } else { + return source; + } + } + + function cloneArray(arr, instanceClone) { + var out = [], + i = -1, + n = arr.length, + val; + while (++i < n) { + out[i] = deepClone(arr[i], instanceClone); + } + return out; + } + + module.exports = deepClone; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js new file mode 100644 index 00000000..1111b2ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js @@ -0,0 +1,17 @@ +var toArray = require('./toArray'); +var find = require('../array/find'); + + /** + * Return first non void argument + */ + function defaults(var_args){ + return find(toArray(arguments), nonVoid); + } + + function nonVoid(val){ + return val != null; + } + + module.exports = defaults; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js new file mode 100644 index 00000000..cd8a379e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js @@ -0,0 +1,16 @@ +var createObject = require('./createObject'); + + /** + * Inherit prototype from another Object. + * - inspired by Nicholas Zackas Solution + * @param {object} child Child object + * @param {object} parent Parent Object + */ + function inheritPrototype(child, parent){ + var p = createObject(parent.prototype); + p.constructor = child; + child.prototype = p; + } + + module.exports = inheritPrototype; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/is.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/is.js new file mode 100644 index 00000000..4a835739 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/is.js @@ -0,0 +1,23 @@ + + + /** + * Check if both arguments are egal. + */ + function is(x, y){ + // implementation borrowed from harmony:egal spec + if (x === y) { + // 0 === -0, but they are not identical + return x !== 0 || 1 / x === 1 / y; + } + + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is a NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN("foo") => true + return x !== x && y !== y; + } + + module.exports = is; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js new file mode 100644 index 00000000..f7b08ba4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js @@ -0,0 +1,15 @@ +var isKind = require('./isKind'); + + /** + */ + var isArgs = isKind(arguments, 'Arguments')? + function(val){ + return isKind(val, 'Arguments'); + } : + function(val){ + // Arguments is an Object on IE7 + return !!(val && Object.prototype.hasOwnProperty.call(val, 'callee')); + }; + + module.exports = isArgs; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js new file mode 100644 index 00000000..262ee400 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + var isArray = Array.isArray || function (val) { + return isKind(val, 'Array'); + }; + module.exports = isArray; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js new file mode 100644 index 00000000..86557cb9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isBoolean(val) { + return isKind(val, 'Boolean'); + } + module.exports = isBoolean; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js new file mode 100644 index 00000000..4a5130f2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isDate(val) { + return isKind(val, 'Date'); + } + module.exports = isDate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js new file mode 100644 index 00000000..0e9f77da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js @@ -0,0 +1,24 @@ +var forOwn = require('../object/forOwn'); +var isArray = require('./isArray'); + + function isEmpty(val){ + if (val == null) { + // typeof null == 'object' so we check it first + return false; + } else if ( typeof val === 'string' || isArray(val) ) { + return !val.length; + } else if ( typeof val === 'object' || typeof val === 'function' ) { + var result = true; + forOwn(val, function(){ + result = false; + return false; // break loop + }); + return result; + } else { + return false; + } + } + + module.exports = isEmpty; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js new file mode 100644 index 00000000..6d4006f9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js @@ -0,0 +1,21 @@ +var isNumber = require('./isNumber'); + + var global = this; + + /** + * Check if value is finite + */ + function isFinite(val){ + var is = false; + if (typeof val === 'string' && val !== '') { + is = global.isFinite( parseFloat(val) ); + } else if (isNumber(val)){ + // need to use isNumber because of Number constructor + is = global.isFinite( val ); + } + return is; + } + + module.exports = isFinite; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js new file mode 100644 index 00000000..216879f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isFunction(val) { + return isKind(val, 'Function'); + } + module.exports = isFunction; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js new file mode 100644 index 00000000..29f95d96 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js @@ -0,0 +1,12 @@ +var isNumber = require('./isNumber'); + + /** + * Check if value is an integer + */ + function isInteger(val){ + return isNumber(val) && (val % 1 === 0); + } + + module.exports = isInteger; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js new file mode 100644 index 00000000..02301e04 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js @@ -0,0 +1,9 @@ +var kindOf = require('./kindOf'); + /** + * Check if value is from a specific "kind". + */ + function isKind(val, kind){ + return kindOf(val) === kind; + } + module.exports = isKind; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js new file mode 100644 index 00000000..f6efeb1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js @@ -0,0 +1,15 @@ +var isNumber = require('./isNumber'); + + /** + * Check if value is NaN for realz + */ + function isNaN(val){ + // based on the fact that NaN !== NaN + // need to check if it's a number to avoid conflicts with host objects + // also need to coerce ToNumber to avoid edge case `new Number(NaN)` + return !isNumber(val) || val != +val; + } + + module.exports = isNaN; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js new file mode 100644 index 00000000..6252f9ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js @@ -0,0 +1,9 @@ + + /** + */ + function isNull(val){ + return val === null; + } + module.exports = isNull; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js new file mode 100644 index 00000000..126c1cce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isNumber(val) { + return isKind(val, 'Number'); + } + module.exports = isNumber; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js new file mode 100644 index 00000000..7350c891 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isObject(val) { + return isKind(val, 'Object'); + } + module.exports = isObject; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js new file mode 100644 index 00000000..0d2d7b65 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js @@ -0,0 +1,14 @@ + + + /** + * Checks if the value is created by the `Object` constructor. + */ + function isPlainObject(value) { + return (!!value + && typeof value === 'object' + && value.constructor === Object); + } + + module.exports = isPlainObject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js new file mode 100644 index 00000000..fc5459a9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isRegExp(val) { + return isKind(val, 'RegExp'); + } + module.exports = isRegExp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isString.js new file mode 100644 index 00000000..f8906584 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isString.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isString(val) { + return isKind(val, 'String'); + } + module.exports = isString; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js new file mode 100644 index 00000000..fb2261df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js @@ -0,0 +1,10 @@ + + var UNDEF; + + /** + */ + function isUndef(val){ + return val === UNDEF; + } + module.exports = isUndef; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js new file mode 100644 index 00000000..9dad58ce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js @@ -0,0 +1,12 @@ +var is = require('./is'); + + /** + * Check if both values are not identical/egal + */ + function isnt(x, y){ + return !is(x, y); + } + + module.exports = isnt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js new file mode 100644 index 00000000..663464d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js @@ -0,0 +1,20 @@ + + + var _rKind = /^\[object (.*)\]$/, + _toString = Object.prototype.toString, + UNDEF; + + /** + * Gets the "kind" of value. (e.g. "String", "Number", etc) + */ + function kindOf(val) { + if (val === null) { + return 'Null'; + } else if (val === UNDEF) { + return 'Undefined'; + } else { + return _rKind.exec( _toString.call(val) )[1]; + } + } + module.exports = kindOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js new file mode 100644 index 00000000..e39b8734 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js @@ -0,0 +1,31 @@ +var kindOf = require('./kindOf'); + + var _win = this; + + /** + * Convert array-like object into array + */ + function toArray(val){ + var ret = [], + kind = kindOf(val), + n; + + if (val != null) { + if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) { + //string, regexp, function have .length but user probably just want + //to wrap value into an array.. + ret[ret.length] = val; + } else { + //window returns true on isObject in IE7 and may have length + //property. `typeof NodeList` returns `function` on Safari so + //we can't use it (#58) + n = val.length; + while (n--) { + ret[n] = val[n]; + } + } + } + return ret; + } + module.exports = toArray; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toString.js new file mode 100644 index 00000000..ae5c2b0f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/lang/toString.js @@ -0,0 +1,13 @@ + + + /** + * Typecast a value to a String, using an empty string value for null or + * undefined. + */ + function toString(val){ + return val == null ? '' : val.toString(); + } + + module.exports = toString; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math.js new file mode 100644 index 00000000..c6ee889b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math.js @@ -0,0 +1,19 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'ceil' : require('./math/ceil'), + 'clamp' : require('./math/clamp'), + 'countSteps' : require('./math/countSteps'), + 'floor' : require('./math/floor'), + 'inRange' : require('./math/inRange'), + 'isNear' : require('./math/isNear'), + 'lerp' : require('./math/lerp'), + 'loop' : require('./math/loop'), + 'map' : require('./math/map'), + 'norm' : require('./math/norm'), + 'round' : require('./math/round') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/ceil.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/ceil.js new file mode 100644 index 00000000..a279e158 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/ceil.js @@ -0,0 +1,11 @@ + + /** + * Round value up with a custom radix. + */ + function ceil(val, step){ + step = Math.abs(step || 1); + return Math.ceil(val / step) * step; + } + + module.exports = ceil; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/clamp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/clamp.js new file mode 100644 index 00000000..e929a9a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/clamp.js @@ -0,0 +1,9 @@ + + /** + * Clamps value inside range. + */ + function clamp(val, min, max){ + return val < min? min : (val > max? max : val); + } + module.exports = clamp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js new file mode 100644 index 00000000..60ac90c3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js @@ -0,0 +1,16 @@ + + /** + * Count number of full steps. + */ + function countSteps(val, step, overflow){ + val = Math.floor(val / step); + + if (overflow) { + return val % overflow; + } + + return val; + } + + module.exports = countSteps; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/floor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/floor.js new file mode 100644 index 00000000..9de50531 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/floor.js @@ -0,0 +1,10 @@ + + /** + * Floor value to full steps. + */ + function floor(val, step){ + step = Math.abs(step || 1); + return Math.floor(val / step) * step; + } + module.exports = floor; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/inRange.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/inRange.js new file mode 100644 index 00000000..763218f8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/inRange.js @@ -0,0 +1,11 @@ + + /** + * Checks if value is inside the range. + */ + function inRange(val, min, max, threshold){ + threshold = threshold || 0; + return (val + threshold >= min && val - threshold <= max); + } + + module.exports = inRange; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/isNear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/isNear.js new file mode 100644 index 00000000..45486b6d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/isNear.js @@ -0,0 +1,9 @@ + + /** + * Check if value is close to target. + */ + function isNear(val, target, threshold){ + return (Math.abs(val - target) <= threshold); + } + module.exports = isNear; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/lerp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/lerp.js new file mode 100644 index 00000000..111e2717 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/lerp.js @@ -0,0 +1,11 @@ + + /** + * Linear interpolation. + * IMPORTANT:will return `Infinity` if numbers overflow Number.MAX_VALUE + */ + function lerp(ratio, start, end){ + return start + (end - start) * ratio; + } + + module.exports = lerp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/loop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/loop.js new file mode 100644 index 00000000..35207c1a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/loop.js @@ -0,0 +1,10 @@ + + /** + * Loops value inside range. + */ + function loop(val, min, max){ + return val < min? max : (val > max? min : val); + } + + module.exports = loop; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/map.js new file mode 100644 index 00000000..96c4b787 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/map.js @@ -0,0 +1,11 @@ +var lerp = require('./lerp'); +var norm = require('./norm'); + /** + * Maps a number from one scale to another. + * @example map(3, 0, 4, -1, 1) -> 0.5 + */ + function map(val, min1, max1, min2, max2){ + return lerp( norm(val, min1, max1), min2, max2 ); + } + module.exports = map; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/norm.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/norm.js new file mode 100644 index 00000000..54caf78a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/norm.js @@ -0,0 +1,9 @@ + + /** + * Gets normalized ratio of value inside range. + */ + function norm(val, min, max){ + return (val - min) / (max - min); + } + module.exports = norm; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/round.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/round.js new file mode 100644 index 00000000..d108e6cd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/math/round.js @@ -0,0 +1,12 @@ + + /** + * Round number to a specific radix + */ + function round(value, radix){ + radix = radix || 1; // default round 1 + return Math.round(value / radix) * radix; + } + + module.exports = round; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number.js new file mode 100644 index 00000000..0b6186cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number.js @@ -0,0 +1,21 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'MAX_INT' : require('./number/MAX_INT'), + 'MAX_UINT' : require('./number/MAX_UINT'), + 'MIN_INT' : require('./number/MIN_INT'), + 'abbreviate' : require('./number/abbreviate'), + 'currencyFormat' : require('./number/currencyFormat'), + 'enforcePrecision' : require('./number/enforcePrecision'), + 'pad' : require('./number/pad'), + 'rol' : require('./number/rol'), + 'ror' : require('./number/ror'), + 'sign' : require('./number/sign'), + 'toInt' : require('./number/toInt'), + 'toUInt' : require('./number/toUInt'), + 'toUInt31' : require('./number/toUInt31') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js new file mode 100644 index 00000000..1d6f0e48 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit signed integer value. (2^31 - 1) + */ + + module.exports = 2147483647; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js new file mode 100644 index 00000000..700da0f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit unsigned integet value (2^32 - 1) + */ + + module.exports = 4294967295; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js new file mode 100644 index 00000000..b34ab2ce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Minimum 32-bit signed integer value (-2^31). + */ + + module.exports = -2147483648; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js new file mode 100644 index 00000000..dd6716b9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js @@ -0,0 +1,35 @@ +var enforcePrecision = require('./enforcePrecision'); + + var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' + }; + + /** + * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) + */ + function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals != null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; + } + + module.exports = abbreviateNumber; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js new file mode 100644 index 00000000..1cf02497 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js @@ -0,0 +1,26 @@ + + + /** + * Converts number into currency format + */ + function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) { + nDecimalDigits = nDecimalDigits == null? 2 : nDecimalDigits; + decimalSeparator = decimalSeparator == null? '.' : decimalSeparator; + thousandsSeparator = thousandsSeparator == null? ',' : thousandsSeparator; + + //can't use enforce precision since it returns a number and we are + //doing a RegExp over the string + var fixed = val.toFixed(nDecimalDigits), + //separate begin [$1], middle [$2] and decimal digits [$4] + parts = new RegExp('^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{'+ nDecimalDigits +'}))?$').exec( fixed ); + + if(parts){ //val >= 1000 || val <= -1000 + return parts[1] + parts[2].replace(/\d{3}/g, thousandsSeparator + '$&') + (parts[4] ? decimalSeparator + parts[4] : ''); + }else{ + return fixed.replace('.', decimalSeparator); + } + } + + module.exports = currencyFormat; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js new file mode 100644 index 00000000..f73a92d7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js @@ -0,0 +1,13 @@ + + /** + * Enforce a specific amount of decimal digits and also fix floating + * point rounding issues. + * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> + * 0.61` + */ + function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); + } + module.exports = enforcePrecision; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/pad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/pad.js new file mode 100644 index 00000000..da752706 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/pad.js @@ -0,0 +1,12 @@ +var lpad = require('../string/lpad'); + + /** + * Add padding zeros if n.length < minLength. + */ + function pad(n, minLength, char){ + return lpad(''+ n, minLength, char || '0'); + } + + module.exports = pad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/rol.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/rol.js new file mode 100644 index 00000000..ecd58da4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/rol.js @@ -0,0 +1,10 @@ + + /** + * Bitwise circular shift left + * http://en.wikipedia.org/wiki/Circular_shift + */ + function rol(val, shift){ + return (val << shift) | (val >> (32 - shift)); + } + module.exports = rol; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/ror.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/ror.js new file mode 100644 index 00000000..2eda81da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/ror.js @@ -0,0 +1,10 @@ + + /** + * Bitwise circular shift right + * http://en.wikipedia.org/wiki/Circular_shift + */ + function ror(val, shift){ + return (val >> shift) | (val << (32 - shift)); + } + module.exports = ror; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/sign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/sign.js new file mode 100644 index 00000000..b854a4ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/sign.js @@ -0,0 +1,15 @@ + + + /** + * Get sign of the value. + */ + function sign(val) { + var num = Number(val); + if (num === 0) return num; // +0 and +0 === 0 + if (isNaN(num)) return num; // NaN + return num < 0? -1 : 1; + } + + module.exports = sign; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toInt.js new file mode 100644 index 00000000..bcefae0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toInt.js @@ -0,0 +1,15 @@ + + + /** + * "Convert" value into an 32-bit integer. + * Works like `Math.floor` if val > 0 and `Math.ceil` if val < 0. + * IMPORTANT: val will wrap at 2^31 and -2^31. + * Perf tests: http://jsperf.com/vs-vs-parseint-bitwise-operators/7 + */ + function toInt(val){ + return ~~val; + } + + module.exports = toInt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js new file mode 100644 index 00000000..5290b627 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js @@ -0,0 +1,13 @@ + + + /** + * "Convert" value into a 32-bit unsigned integer. + * IMPORTANT: Value will wrap at 2^32. + */ + function toUInt(val){ + return val >>> 0; + } + + module.exports = toUInt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js new file mode 100644 index 00000000..fcc5a97c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js @@ -0,0 +1,13 @@ +var MAX_INT = require('./MAX_INT'); + + /** + * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + * IMPORTANT: value wil wrap at 2^31, if negative will return 0. + */ + function toUInt31(val){ + return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val); + } + + module.exports = toUInt31; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object.js new file mode 100644 index 00000000..76c06424 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object.js @@ -0,0 +1,42 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'bindAll' : require('./object/bindAll'), + 'contains' : require('./object/contains'), + 'deepEquals' : require('./object/deepEquals'), + 'deepFillIn' : require('./object/deepFillIn'), + 'deepMatches' : require('./object/deepMatches'), + 'deepMixIn' : require('./object/deepMixIn'), + 'equals' : require('./object/equals'), + 'every' : require('./object/every'), + 'fillIn' : require('./object/fillIn'), + 'filter' : require('./object/filter'), + 'find' : require('./object/find'), + 'forIn' : require('./object/forIn'), + 'forOwn' : require('./object/forOwn'), + 'functions' : require('./object/functions'), + 'get' : require('./object/get'), + 'has' : require('./object/has'), + 'hasOwn' : require('./object/hasOwn'), + 'keys' : require('./object/keys'), + 'map' : require('./object/map'), + 'matches' : require('./object/matches'), + 'max' : require('./object/max'), + 'merge' : require('./object/merge'), + 'min' : require('./object/min'), + 'mixIn' : require('./object/mixIn'), + 'namespace' : require('./object/namespace'), + 'pick' : require('./object/pick'), + 'pluck' : require('./object/pluck'), + 'reduce' : require('./object/reduce'), + 'reject' : require('./object/reject'), + 'set' : require('./object/set'), + 'size' : require('./object/size'), + 'some' : require('./object/some'), + 'unset' : require('./object/unset'), + 'values' : require('./object/values') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js new file mode 100644 index 00000000..b2f27d08 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js @@ -0,0 +1,18 @@ +var functions = require('./functions'); +var bind = require('../function/bind'); +var forEach = require('../array/forEach'); + + /** + * Binds methods of the object to be run in it's own context. + */ + function bindAll(obj, rest_methodNames){ + var keys = arguments.length > 1? + Array.prototype.slice.call(arguments, 1) : functions(obj); + forEach(keys, function(key){ + obj[key] = bind(obj[key], obj); + }); + } + + module.exports = bindAll; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/contains.js new file mode 100644 index 00000000..8076e2c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/contains.js @@ -0,0 +1,13 @@ +var some = require('./some'); + + /** + * Check if object contains value + */ + function contains(obj, needle) { + return some(obj, function(val) { + return (val === needle); + }); + } + module.exports = contains; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js new file mode 100644 index 00000000..fcde9449 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js @@ -0,0 +1,27 @@ +var isObject = require('../lang/isObject'); +var equals = require('./equals'); + + function defaultCompare(a, b) { + return a === b; + } + + /** + * Recursively checks for same properties and values. + */ + function deepEquals(a, b, callback){ + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + function compare(a, b){ + return deepEquals(a, b, callback); + } + + return equals(a, b, compare); + } + + module.exports = deepEquals; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js new file mode 100644 index 00000000..d27db44d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js @@ -0,0 +1,32 @@ +var forOwn = require('./forOwn'); +var isPlainObject = require('../lang/isPlainObject'); + + /** + * Deeply copy missing properties in the target from the defaults. + */ + function deepFillIn(target, defaults){ + var i = 0, + n = arguments.length, + obj; + + while(++i < n) { + obj = arguments[i]; + if (obj) { + forOwn(obj, function(newValue, key) { + var curValue = target[key]; + if (curValue == null) { + target[key] = newValue; + } else if (isPlainObject(curValue) + && isPlainObject(newValue)) { + deepFillIn(curValue, newValue); + } + }); + } + } + + return target; + } + + module.exports = deepFillIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js new file mode 100644 index 00000000..3366c52d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js @@ -0,0 +1,55 @@ +var forOwn = require('./forOwn'); +var isArray = require('../lang/isArray'); + + function containsMatch(array, pattern) { + var i = -1, length = array.length; + while (++i < length) { + if (deepMatches(array[i], pattern)) { + return true; + } + } + + return false; + } + + function matchArray(target, pattern) { + var i = -1, patternLength = pattern.length; + while (++i < patternLength) { + if (!containsMatch(target, pattern[i])) { + return false; + } + } + + return true; + } + + function matchObject(target, pattern) { + var result = true; + forOwn(pattern, function(val, key) { + if (!deepMatches(target[key], val)) { + // Return false to break out of forOwn early + return (result = false); + } + }); + + return result; + } + + /** + * Recursively check if the objects match. + */ + function deepMatches(target, pattern){ + if (target && typeof target === 'object') { + if (isArray(target) && isArray(pattern)) { + return matchArray(target, pattern); + } else { + return matchObject(target, pattern); + } + } else { + return target === pattern; + } + } + + module.exports = deepMatches; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js new file mode 100644 index 00000000..a97e98d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js @@ -0,0 +1,34 @@ +var forOwn = require('./forOwn'); +var isPlainObject = require('../lang/isPlainObject'); + + /** + * Mixes objects into the target object, recursively mixing existing child + * objects. + */ + function deepMixIn(target, objects) { + var i = 0, + n = arguments.length, + obj; + + while(++i < n){ + obj = arguments[i]; + if (obj) { + forOwn(obj, copyProp, target); + } + } + + return target; + } + + function copyProp(val, key) { + var existing = this[key]; + if (isPlainObject(val) && isPlainObject(existing)) { + deepMixIn(existing, val); + } else { + this[key] = val; + } + } + + module.exports = deepMixIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/equals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/equals.js new file mode 100644 index 00000000..f50cbe4e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/equals.js @@ -0,0 +1,36 @@ +var hasOwn = require('./hasOwn'); +var every = require('./every'); +var isObject = require('../lang/isObject'); + + function defaultCompare(a, b) { + return a === b; + } + + // Makes a function to compare the object values from the specified compare + // operation callback. + function makeCompare(callback) { + return function(value, key) { + return hasOwn(this, key) && callback(value, this[key]); + }; + } + + function checkProperties(value, key) { + return hasOwn(this, key); + } + + /** + * Checks if two objects have the same keys and values. + */ + function equals(a, b, callback) { + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + return (every(a, makeCompare(callback), b) && + every(b, checkProperties, a)); + } + + module.exports = equals; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/every.js new file mode 100644 index 00000000..01106e5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/every.js @@ -0,0 +1,23 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object every + */ + function every(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + forOwn(obj, function(val, key) { + // we consider any falsy values as "false" on purpose so shorthand + // syntax can be used to check property existence + if (!callback(val, key, obj)) { + result = false; + return false; // break + } + }); + return result; + } + + module.exports = every; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js new file mode 100644 index 00000000..80dcdf07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js @@ -0,0 +1,20 @@ +var forEach = require('../array/forEach'); +var forOwn = require('./forOwn'); + + /** + * Copy missing properties in the obj from the defaults. + */ + function fillIn(obj, var_defaults){ + forEach(Array.prototype.slice.call(arguments, 1), function(base){ + forOwn(base, function(val, key){ + if (obj[key] == null) { + obj[key] = val; + } + }); + }); + return obj; + } + + module.exports = fillIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/filter.js new file mode 100644 index 00000000..3a83a92f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/filter.js @@ -0,0 +1,20 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Creates a new object with all the properties where the callback returns + * true. + */ + function filterValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + output[key] = value; + } + }); + + return output; + } + module.exports = filterValues; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/find.js new file mode 100644 index 00000000..d39c0706 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/find.js @@ -0,0 +1,21 @@ +var some = require('./some'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Returns first item that matches criteria + */ + function find(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result; + some(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + result = value; + return true; //break + } + }); + return result; + } + + module.exports = find; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forIn.js new file mode 100644 index 00000000..367f08ca --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forIn.js @@ -0,0 +1,62 @@ + + + var _hasDontEnumBug, + _dontEnums; + + function checkDontEnum(){ + _dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ]; + + _hasDontEnumBug = true; + + for (var key in {'toString': null}) { + _hasDontEnumBug = false; + } + } + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forIn(obj, fn, thisObj){ + var key, i = 0; + // no need to check if argument is a real object that way we can use + // it for arrays, functions, date, etc. + + //post-pone check till needed + if (_hasDontEnumBug == null) checkDontEnum(); + + for (key in obj) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + + if (_hasDontEnumBug) { + while (key = _dontEnums[i++]) { + // since we aren't using hasOwn check we need to make sure the + // property was overwritten + if (obj[key] !== Object.prototype[key]) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + } + } + } + + function exec(fn, obj, key, thisObj){ + return fn.call(thisObj, obj[key], key, obj); + } + + module.exports = forIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js new file mode 100644 index 00000000..5f2dfbfc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js @@ -0,0 +1,19 @@ +var hasOwn = require('./hasOwn'); +var forIn = require('./forIn'); + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forOwn(obj, fn, thisObj){ + forIn(obj, function(val, key){ + if (hasOwn(obj, key)) { + return fn.call(thisObj, obj[key], key, obj); + } + }); + } + + module.exports = forOwn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/functions.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/functions.js new file mode 100644 index 00000000..f5717979 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/functions.js @@ -0,0 +1,18 @@ +var forIn = require('./forIn'); + + /** + * return a list of all enumerable properties that have function values + */ + function functions(obj){ + var keys = []; + forIn(obj, function(val, key){ + if (typeof val === 'function'){ + keys.push(key); + } + }); + return keys.sort(); + } + + module.exports = functions; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/get.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/get.js new file mode 100644 index 00000000..6673561e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/get.js @@ -0,0 +1,20 @@ + + + /** + * get "nested" object property + */ + function get(obj, prop){ + var parts = prop.split('.'), + last = parts.pop(); + + while (prop = parts.shift()) { + obj = obj[prop]; + if (typeof obj !== 'object') return; + } + + return obj[last]; + } + + module.exports = get; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/has.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/has.js new file mode 100644 index 00000000..ca9f2289 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/has.js @@ -0,0 +1,15 @@ +var get = require('./get'); + + var UNDEF; + + /** + * Check if object has nested property. + */ + function has(obj, prop){ + return get(obj, prop) !== UNDEF; + } + + module.exports = has; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js new file mode 100644 index 00000000..7e3c82ae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js @@ -0,0 +1,12 @@ + + + /** + * Safer Object.hasOwnProperty + */ + function hasOwn(obj, prop){ + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + module.exports = hasOwn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/keys.js new file mode 100644 index 00000000..dd2f4f55 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/keys.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object keys + */ + var keys = Object.keys || function (obj) { + var keys = []; + forOwn(obj, function(val, key){ + keys.push(key); + }); + return keys; + }; + + module.exports = keys; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/map.js new file mode 100644 index 00000000..dd449a78 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/map.js @@ -0,0 +1,18 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Creates a new object where all the values are the result of calling + * `callback`. + */ + function mapValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(val, key, obj) { + output[key] = callback(val, key, obj); + }); + + return output; + } + module.exports = mapValues; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/matches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/matches.js new file mode 100644 index 00000000..6074faa2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/matches.js @@ -0,0 +1,20 @@ +var forOwn = require('./forOwn'); + + /** + * checks if a object contains all given properties/values + */ + function matches(target, props){ + // can't use "object/every" because of circular dependency + var result = true; + forOwn(props, function(val, key){ + if (target[key] !== val) { + // break loop at first difference + return (result = false); + } + }); + return result; + } + + module.exports = matches; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/max.js new file mode 100644 index 00000000..3e8e92c7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/max.js @@ -0,0 +1,12 @@ +var arrMax = require('../array/max'); +var values = require('./values'); + + /** + * Returns maximum value inside object. + */ + function max(obj, compareFn) { + return arrMax(values(obj), compareFn); + } + + module.exports = max; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/merge.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/merge.js new file mode 100644 index 00000000..6961f608 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/merge.js @@ -0,0 +1,40 @@ +var hasOwn = require('./hasOwn'); +var deepClone = require('../lang/deepClone'); +var isObject = require('../lang/isObject'); + + /** + * Deep merge objects. + */ + function merge() { + var i = 1, + key, val, obj, target; + + // make sure we don't modify source element and it's properties + // objects are passed by reference + target = deepClone( arguments[0] ); + + while (obj = arguments[i++]) { + for (key in obj) { + if ( ! hasOwn(obj, key) ) { + continue; + } + + val = obj[key]; + + if ( isObject(val) && isObject(target[key]) ){ + // inception, deep merge objects + target[key] = merge(target[key], val); + } else { + // make sure arrays, regexp, date, objects are cloned + target[key] = deepClone(val); + } + + } + } + + return target; + } + + module.exports = merge; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/min.js new file mode 100644 index 00000000..e1e66976 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/min.js @@ -0,0 +1,12 @@ +var arrMin = require('../array/min'); +var values = require('./values'); + + /** + * Returns minimum value inside object. + */ + function min(obj, iterator) { + return arrMin(values(obj), iterator); + } + + module.exports = min; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js new file mode 100644 index 00000000..55ec8fd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js @@ -0,0 +1,28 @@ +var forOwn = require('./forOwn'); + + /** + * Combine properties from all the objects into first one. + * - This method affects target object in place, if you want to create a new Object pass an empty object as first param. + * @param {object} target Target Object + * @param {...object} objects Objects to be combined (0...n objects). + * @return {object} Target Object. + */ + function mixIn(target, objects){ + var i = 0, + n = arguments.length, + obj; + while(++i < n){ + obj = arguments[i]; + if (obj != null) { + forOwn(obj, copyProp, target); + } + } + return target; + } + + function copyProp(val, key){ + this[key] = val; + } + + module.exports = mixIn; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/namespace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/namespace.js new file mode 100644 index 00000000..c6e79f63 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/namespace.js @@ -0,0 +1,19 @@ +var forEach = require('../array/forEach'); + + /** + * Create nested object if non-existent + */ + function namespace(obj, path){ + if (!path) return obj; + forEach(path.split('.'), function(key){ + if (!obj[key]) { + obj[key] = {}; + } + obj = obj[key]; + }); + return obj; + } + + module.exports = namespace; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pick.js new file mode 100644 index 00000000..74e56f98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pick.js @@ -0,0 +1,18 @@ + + + /** + * Return a copy of the object, filtered to only have values for the whitelisted keys. + */ + function pick(obj, var_keys){ + var keys = typeof arguments[1] !== 'string'? arguments[1] : Array.prototype.slice.call(arguments, 1), + out = {}, + i = 0, key; + while (key = keys[i++]) { + out[key] = obj[key]; + } + return out; + } + + module.exports = pick; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pluck.js new file mode 100644 index 00000000..e844df47 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/pluck.js @@ -0,0 +1,13 @@ +var map = require('./map'); +var prop = require('../function/prop'); + + /** + * Extract a list of property values. + */ + function pluck(obj, propName){ + return map(obj, prop(propName)); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reduce.js new file mode 100644 index 00000000..6f19a3a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reduce.js @@ -0,0 +1,29 @@ +var forOwn = require('./forOwn'); +var size = require('./size'); + + /** + * Object reduce + */ + function reduce(obj, callback, memo, thisObj) { + var initial = arguments.length > 2; + + if (!size(obj) && !initial) { + throw new Error('reduce of empty object with no initial value'); + } + + forOwn(obj, function(value, key, list) { + if (!initial) { + memo = value; + initial = true; + } + else { + memo = callback.call(thisObj, memo, value, key, list); + } + }); + + return memo; + } + + module.exports = reduce; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reject.js new file mode 100644 index 00000000..74643795 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/reject.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object reject + */ + function reject(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + return filter(obj, function(value, index, obj) { + return !callback(value, index, obj); + }, thisObj); + } + + module.exports = reject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/set.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/set.js new file mode 100644 index 00000000..9b3cdc48 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/set.js @@ -0,0 +1,17 @@ +var namespace = require('./namespace'); + + /** + * set "nested" object property + */ + function set(obj, prop, val){ + var parts = (/^(.+)\.(.+)$/).exec(prop); + if (parts){ + namespace(obj, parts[1])[parts[2]] = val; + } else { + obj[prop] = val; + } + } + + module.exports = set; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/size.js new file mode 100644 index 00000000..97885953 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/size.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object size + */ + function size(obj) { + var count = 0; + forOwn(obj, function(){ + count++; + }); + return count; + } + + module.exports = size; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/some.js new file mode 100644 index 00000000..384c6f3c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/some.js @@ -0,0 +1,21 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object some + */ + function some(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + forOwn(obj, function(val, key) { + if (callback(val, key, obj)) { + result = true; + return false; // break + } + }); + return result; + } + + module.exports = some; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/unset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/unset.js new file mode 100644 index 00000000..343bca0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/unset.js @@ -0,0 +1,23 @@ +var has = require('./has'); + + /** + * Unset object property. + */ + function unset(obj, prop){ + if (has(obj, prop)) { + var parts = prop.split('.'), + last = parts.pop(); + while (prop = parts.shift()) { + obj = obj[prop]; + } + return (delete obj[last]); + + } else { + // if property doesn't exist treat as deleted + return true; + } + } + + module.exports = unset; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/values.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/values.js new file mode 100644 index 00000000..265a6938 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/object/values.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object values + */ + function values(obj) { + var vals = []; + forOwn(obj, function(val, key){ + vals.push(val); + }); + return vals; + } + + module.exports = values; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/package.json new file mode 100644 index 00000000..76eadf21 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/package.json @@ -0,0 +1,123 @@ +{ + "name": "mout", + "description": "Modular Utilities", + "version": "0.6.0", + "homepage": "http://moutjs.com/", + "contributors": [ + { + "name": "Adam Nowotny" + }, + { + "name": "André Cruz", + "email": "amdfcruz@gmail.com" + }, + { + "name": "Conrad Zimmerman", + "url": "http://www.conradz.com" + }, + { + "name": "Friedemann Altrock", + "email": "frodenius@gmail.com" + }, + { + "name": "Jarrod Overson", + "url": "http://jarrodoverson.com" + }, + { + "name": "Miller Medeiros", + "email": "contact@millermedeiros.com", + "url": "http://blog.millermedeiros.com" + }, + { + "name": "Zach Shipley" + } + ], + "keywords": [ + "utilities", + "functional", + "amd-utils", + "stdlib" + ], + "repository": { + "type": "git", + "url": "git://github.com/mout/mout.git" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], + "bugs": { + "url": "https://github.com/mout/mout/issues/" + }, + "main": "./index.js", + "scripts": { + "prepublish": "node build cjs .", + "pretest": "node build pkg", + "test": "node node_modules/istanbul/lib/cli test tests/runner.js --hook-run-in-context" + }, + "directories": { + "doc": "./doc" + }, + "devDependencies": { + "istanbul": "~0.1.27", + "jasmine-node": "~1.2.2", + "requirejs": "2.x", + "nodefy": "*", + "mdoc": "~0.3.2", + "handlebars": "~1.0.6", + "commander": "~1.0.5", + "rocambole": "~0.2.3" + }, + "testling": { + "preprocess": "node build testling", + "browsers": { + "ie": [ + 7, + 8, + 9, + 10 + ], + "firefox": [ + 17, + "nightly" + ], + "chrome": [ + 23, + "canary" + ], + "opera": [ + 12, + "next" + ], + "safari": [ + 5.1, + 6 + ], + "iphone": [ + 6 + ], + "ipad": [ + 6 + ] + }, + "scripts": [ + "tests/lib/jasmine/jasmine.js", + "tests/lib/jasmine/jasmine.async.js", + "tests/lib/jasmine/jasmine-tap.js", + "tests/lib/requirejs/require.js", + "tests/testling/src.js", + "tests/testling/specs.js", + "tests/runner.js" + ] + }, + "readme": "![mout](http://moutjs.com/logo.png \"Modular JavaScript Utilties\")\n\nhttp://moutjs.com/\n\n[![Build Status](https://travis-ci.org/mout/mout.png?branch=master)](https://travis-ci.org/mout/mout)\n\nAll code is library agnostic and consist mostly of helper methods that aren't\ndirectly related with the DOM, the purpose of this library isn't to replace\nDojo, jQuery, YUI, Mootools, etc, but to provide modular solutions for common\nproblems that aren't solved by most of them. Consider it as a crossbrowser\nJavaScript standard library.\n\n\n\n## Main goals ##\n\n - increase code reuse;\n - be clear (code should be clean/readable);\n - be easy to debug;\n - be easy to maintain;\n - follow best practices;\n - follow standards when possible;\n - **don't convert JavaScript into another language!**\n - be compatible with other frameworks;\n - be modular;\n - have unit tests for all modules;\n - work on multiple environments (IE7+, modern browsers, node.js);\n\n\n\n## What shouldn't be here ##\n\n - UI components;\n - CSS selector engine;\n - Event system - pub/sub;\n - Template engine;\n - Anything that isn't generic enough to be on a standard library;\n - Anything that could be a separate library and/or isn't a modular utility...\n\n\n\n## API Documentation ##\n\nOnline documentation can be found at http://moutjs.com/ or inside the\n`doc` folder.\n\n\n\n## FAQ / Wiki / IRC ##\n\nFor more info about project structure, design decisions, tips, how to\ncontribute, build system, etc, please check the [project\nwiki](https://github.com/mout/mout/wiki).\n\nWe also have an IRC channel [#moutjs on\nirc.freenode.net](http://webchat.freenode.net/?channels=moutjs)\n\n\n\n## License ##\n\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n\n", + "readmeFilename": "README.md", + "_id": "mout@0.6.0", + "dist": { + "shasum": "d2f7a6e5a796040bf7b6259a41b46705f49d271d" + }, + "_from": "mout@~0.6.0", + "_resolved": "https://registry.npmjs.org/mout/-/mout-0.6.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString.js new file mode 100644 index 00000000..22685a7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString.js @@ -0,0 +1,15 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'contains' : require('./queryString/contains'), + 'decode' : require('./queryString/decode'), + 'encode' : require('./queryString/encode'), + 'getParam' : require('./queryString/getParam'), + 'getQuery' : require('./queryString/getQuery'), + 'parse' : require('./queryString/parse'), + 'setParam' : require('./queryString/setParam') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js new file mode 100644 index 00000000..da678cf4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js @@ -0,0 +1,12 @@ +var getQuery = require('./getQuery'); + + /** + * Checks if query string contains parameter. + */ + function contains(url, paramName) { + var regex = new RegExp('(\\?|&)'+ paramName +'=', 'g'); //matches `?param=` or `¶m=` + return regex.test(getQuery(url)); + } + + module.exports = contains; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js new file mode 100644 index 00000000..7e689990 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js @@ -0,0 +1,21 @@ +var typecast = require('../string/typecast'); +var isString = require('../lang/isString'); + + /** + * Decode query string into an object of keys => vals. + */ + function decode(queryStr, shouldTypecast) { + var queryArr = (queryStr || '').replace('?', '').split('&'), + n = queryArr.length, + obj = {}, + item, val; + while (n--) { + item = queryArr[n].split('='); + val = shouldTypecast === false? item[1] : typecast(item[1]); + obj[item[0]] = isString(val)? decodeURIComponent(val) : val; + } + return obj; + } + + module.exports = decode; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js new file mode 100644 index 00000000..6d2b12f8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js @@ -0,0 +1,15 @@ +var forOwn = require('../object/forOwn'); + + /** + * Encode object into a query string. + */ + function encode(obj){ + var query = []; + forOwn(obj, function(val, key){ + query.push( key +'='+ encodeURIComponent(val) ); + }); + return (query.length)? '?'+ query.join('&') : ''; + } + + module.exports = encode; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js new file mode 100644 index 00000000..f149c3ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js @@ -0,0 +1,15 @@ +var typecast = require('../string/typecast'); +var getQuery = require('./getQuery'); + + /** + * Get query parameter value. + */ + function getParam(url, param, shouldTypecast){ + var regexp = new RegExp('(\\?|&)'+ param + '=([^&]*)'), //matches `?param=value` or `¶m=value`, value = $2 + result = regexp.exec( getQuery(url) ), + val = (result && result[2])? result[2] : null; + return shouldTypecast === false? val : typecast(val); + } + + module.exports = getParam; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js new file mode 100644 index 00000000..5194af2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js @@ -0,0 +1,13 @@ + + + /** + * Gets full query as string with all special chars decoded. + */ + function getQuery(url) { + url = url.replace(/#.*/, ''); //removes hash (to avoid getting hash query) + var queryString = /\?[a-zA-Z0-9\=\&\%\$\-\_\.\+\!\*\'\(\)\,]+/.exec(url); //valid chars according to: http://www.ietf.org/rfc/rfc1738.txt + return (queryString)? decodeURIComponent(queryString[0]) : ''; + } + + module.exports = getQuery; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js new file mode 100644 index 00000000..532906c0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js @@ -0,0 +1,13 @@ +var decode = require('./decode'); +var getQuery = require('./getQuery'); + + /** + * Get query string, parses and decodes it. + */ + function parse(url, shouldTypecast) { + return decode(getQuery(url), shouldTypecast); + } + + module.exports = parse; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js new file mode 100644 index 00000000..052a9ba6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js @@ -0,0 +1,28 @@ + + + /** + * Set query string parameter value + */ + function setParam(url, paramName, value){ + url = url || ''; + + var re = new RegExp('(\\?|&)'+ paramName +'=[^&]*' ); + var param = paramName +'='+ encodeURIComponent( value ); + + if ( re.test(url) ) { + return url.replace(re, '$1'+ param); + } else { + if (url.indexOf('?') === -1) { + url += '?'; + } + if (url.indexOf('=') !== -1) { + url += '&'; + } + return url + param; + } + + } + + module.exports = setParam; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random.js new file mode 100644 index 00000000..d9267f01 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random.js @@ -0,0 +1,16 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'choice' : require('./random/choice'), + 'guid' : require('./random/guid'), + 'rand' : require('./random/rand'), + 'randBit' : require('./random/randBit'), + 'randHex' : require('./random/randHex'), + 'randInt' : require('./random/randInt'), + 'randSign' : require('./random/randSign'), + 'random' : require('./random/random') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/choice.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/choice.js new file mode 100644 index 00000000..51aa82a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/choice.js @@ -0,0 +1,15 @@ +var randInt = require('./randInt'); +var isArray = require('../lang/isArray'); + + /** + * Returns a random element from the supplied arguments + * or from the array (if single argument is an array). + */ + function choice(items) { + var target = (arguments.length === 1 && isArray(items))? items : arguments; + return target[ randInt(0, target.length - 1) ]; + } + + module.exports = choice; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/guid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/guid.js new file mode 100644 index 00000000..41f6eddc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/guid.js @@ -0,0 +1,24 @@ +var randHex = require('./randHex'); +var choice = require('./choice'); + + /** + * Returns pseudo-random guid (UUID v4) + * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random + * by default and sequences can be predicted in some cases. See the + * "random/random" documentation for more info about it and how to replace + * the default PRNG. + */ + function guid() { + return ( + randHex(8)+'-'+ + randHex(4)+'-'+ + // v4 UUID always contain "4" at this position to specify it was + // randomly generated + '4' + randHex(3) +'-'+ + // v4 UUID always contain chars [a,b,8,9] at this position + choice(8, 9, 'a', 'b') + randHex(3)+'-'+ + randHex(12) + ); + } + module.exports = guid; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/rand.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/rand.js new file mode 100644 index 00000000..782dec88 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/rand.js @@ -0,0 +1,15 @@ +var random = require('./random'); +var MIN_INT = require('../number/MIN_INT'); +var MAX_INT = require('../number/MAX_INT'); + + /** + * Returns random number inside range + */ + function rand(min, max){ + min = min == null? MIN_INT : min; + max = max == null? MAX_INT : max; + return min + (max - min) * random(); + } + + module.exports = rand; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randBit.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randBit.js new file mode 100644 index 00000000..bd20b4a0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randBit.js @@ -0,0 +1,11 @@ +var random = require('./random'); + + /** + * Returns random bit (0 or 1) + */ + function randomBit() { + return random() > 0.5? 1 : 0; + } + + module.exports = randomBit; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randHex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randHex.js new file mode 100644 index 00000000..d8d711c3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randHex.js @@ -0,0 +1,19 @@ +var choice = require('./choice'); + + var _chars = '0123456789abcdef'.split(''); + + /** + * Returns a random hexadecimal string + */ + function randHex(size){ + size = size && size > 0? size : 6; + var str = ''; + while (size--) { + str += choice(_chars); + } + return str; + } + + module.exports = randHex; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randInt.js new file mode 100644 index 00000000..e237d964 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randInt.js @@ -0,0 +1,18 @@ +var MIN_INT = require('../number/MIN_INT'); +var MAX_INT = require('../number/MAX_INT'); +var rand = require('./rand'); + + /** + * Gets random integer inside range or snap to min/max values. + */ + function randInt(min, max){ + min = min == null? MIN_INT : ~~min; + max = max == null? MAX_INT : ~~max; + // can't be max + 0.5 otherwise it will round up if `rand` + // returns `max` causing it to overflow range. + // -0.5 and + 0.49 are required to avoid bias caused by rounding + return Math.round( rand(min - 0.5, max + 0.499999999999) ); + } + + module.exports = randInt; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randSign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randSign.js new file mode 100644 index 00000000..5a9fed76 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/randSign.js @@ -0,0 +1,11 @@ +var random = require('./random'); + + /** + * Returns random sign (-1 or 1) + */ + function randomSign() { + return random() > 0.5? 1 : -1; + } + + module.exports = randomSign; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/random.js new file mode 100644 index 00000000..670a3cc4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/random/random.js @@ -0,0 +1,18 @@ + + + /** + * Just a wrapper to Math.random. No methods inside mout/random should call + * Math.random() directly so we can inject the pseudo-random number + * generator if needed (ie. in case we need a seeded random or a better + * algorithm than the native one) + */ + function random(){ + return random.get(); + } + + // we expose the method so it can be swapped if needed + random.get = Math.random; + + module.exports = random; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array.js new file mode 100644 index 00000000..7bcc961b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array.js @@ -0,0 +1,46 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'append' : require('./array/append'), + 'collect' : require('./array/collect'), + 'combine' : require('./array/combine'), + 'compact' : require('./array/compact'), + 'contains' : require('./array/contains'), + 'difference' : require('./array/difference'), + 'every' : require('./array/every'), + 'filter' : require('./array/filter'), + 'find' : require('./array/find'), + 'findIndex' : require('./array/findIndex'), + 'flatten' : require('./array/flatten'), + 'forEach' : require('./array/forEach'), + 'indexOf' : require('./array/indexOf'), + 'insert' : require('./array/insert'), + 'intersection' : require('./array/intersection'), + 'invoke' : require('./array/invoke'), + 'join' : require('./array/join'), + 'lastIndexOf' : require('./array/lastIndexOf'), + 'map' : require('./array/map'), + 'max' : require('./array/max'), + 'min' : require('./array/min'), + 'pick' : require('./array/pick'), + 'pluck' : require('./array/pluck'), + 'range' : require('./array/range'), + 'reduce' : require('./array/reduce'), + 'reduceRight' : require('./array/reduceRight'), + 'reject' : require('./array/reject'), + 'remove' : require('./array/remove'), + 'removeAll' : require('./array/removeAll'), + 'shuffle' : require('./array/shuffle'), + 'some' : require('./array/some'), + 'sort' : require('./array/sort'), + 'split' : require('./array/split'), + 'toLookup' : require('./array/toLookup'), + 'union' : require('./array/union'), + 'unique' : require('./array/unique'), + 'xor' : require('./array/xor'), + 'zip' : require('./array/zip') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/append.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/append.js new file mode 100644 index 00000000..549d8754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/append.js @@ -0,0 +1,21 @@ +define(function () { + + /** + * Appends an array to the end of another. + * The first array will be modified. + */ + function append(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var pad = arr1.length, + i = -1, + len = arr2.length; + while (++i < len) { + arr1[pad + i] = arr2[i]; + } + return arr1; + } + return append; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js new file mode 100644 index 00000000..8f60cda2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js @@ -0,0 +1,26 @@ +define(['./append', '../function/makeIterator_'], function (append, makeIterator) { + + /** + * Maps the items in the array and concatenates the result arrays. + */ + function collect(arr, callback, thisObj){ + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + var value = callback(arr[i], i, arr); + if (value != null) { + append(results, value); + } + } + + return results; + } + + return collect; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js new file mode 100644 index 00000000..22efb860 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js @@ -0,0 +1,22 @@ +define(['./indexOf'], function (indexOf) { + + /** + * Combines an array with all the items of another. + * Does not allow duplicates and is case and type sensitive. + */ + function combine(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var i = -1, len = arr2.length; + while (++i < len) { + if (indexOf(arr1, arr2[i]) === -1) { + arr1.push(arr2[i]); + } + } + + return arr1; + } + return combine; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js new file mode 100644 index 00000000..02a81098 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js @@ -0,0 +1,13 @@ +define(['./filter'], function (filter) { + + /** + * Remove all null/undefined items from array. + */ + function compact(arr) { + return filter(arr, function(val){ + return (val != null); + }); + } + + return compact; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js new file mode 100644 index 00000000..fca4f7cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js @@ -0,0 +1,10 @@ +define(['./indexOf'], function (indexOf) { + + /** + * If array contains values. + */ + function contains(arr, val) { + return indexOf(arr, val) !== -1; + } + return contains; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js new file mode 100644 index 00000000..819bda3e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js @@ -0,0 +1,19 @@ +define(['./unique', './filter', './some', './contains'], function (unique, filter, some, contains) { + + + /** + * Return a new Array with elements that aren't present in the other Arrays. + */ + function difference(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return !some(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + return difference; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/every.js new file mode 100644 index 00000000..78ba46d3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/every.js @@ -0,0 +1,27 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Array every + */ + function every(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (!callback(arr[i], i, arr) ) { + result = false; + break; + } + } + + return result; + } + + return every; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js new file mode 100644 index 00000000..52cf685a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js @@ -0,0 +1,26 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Array filter + */ + function filter(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + return filter; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/find.js new file mode 100644 index 00000000..3957dcd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/find.js @@ -0,0 +1,13 @@ +define(['./findIndex'], function (findIndex) { + + /** + * Returns first item that matches criteria + */ + function find(arr, iterator, thisObj){ + var idx = findIndex(arr, iterator, thisObj); + return idx >= 0? arr[idx] : void(0); + } + + return find; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js new file mode 100644 index 00000000..59dfeeb9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js @@ -0,0 +1,23 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Returns the index of the first item that matches criteria + */ + function findIndex(arr, iterator, thisObj){ + iterator = makeIterator(iterator, thisObj); + if (arr == null) { + return -1; + } + + var i = -1, len = arr.length; + while (++i < len) { + if (iterator(arr[i], i, arr)) { + return i; + } + } + + return -1; + } + + return findIndex; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js new file mode 100644 index 00000000..42e87f43 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js @@ -0,0 +1,42 @@ +define(['../lang/isArray', './append'], function (isArray, append) { + + /* + * Helper function to flatten to a destination array. + * Used to remove the need to create intermediate arrays while flattening. + */ + function flattenTo(arr, result, level) { + if (arr == null) { + return result; + } else if (level === 0) { + append(result, arr); + return result; + } + + var value, + i = -1, + len = arr.length; + while (++i < len) { + value = arr[i]; + if (isArray(value)) { + flattenTo(value, result, level - 1); + } else { + result.push(value); + } + } + return result; + } + + /** + * Recursively flattens an array. + * A new array containing all the elements is returned. + * If `shallow` is true, it will only flatten one level. + */ + function flatten(arr, level) { + level = level == null? -1 : level; + return flattenTo(arr, [], level); + } + + return flatten; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js new file mode 100644 index 00000000..0e045868 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Array forEach + */ + function forEach(arr, callback, thisObj) { + if (arr == null) { + return; + } + var i = -1, + len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback.call(thisObj, arr[i], i, arr) === false ) { + break; + } + } + } + + return forEach; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js new file mode 100644 index 00000000..0e75f99b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Array.indexOf + */ + function indexOf(arr, item, fromIndex) { + fromIndex = fromIndex || 0; + if (arr == null) { + return -1; + } + + var len = arr.length, + i = fromIndex < 0 ? len + fromIndex : fromIndex; + while (i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[i] === item) { + return i; + } + + i++; + } + + return -1; + } + + return indexOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js new file mode 100644 index 00000000..d8d831f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js @@ -0,0 +1,14 @@ +define(['./difference', '../lang/toArray'], function (difference, toArray) { + + /** + * Insert item into array if not already present. + */ + function insert(arr, rest_items) { + var diff = difference(toArray(arguments).slice(1), arr); + if (diff.length) { + Array.prototype.push.apply(arr, diff); + } + return arr.length; + } + return insert; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js new file mode 100644 index 00000000..64e6ee97 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js @@ -0,0 +1,20 @@ +define(['./unique', './filter', './every', './contains'], function (unique, filter, every, contains) { + + + /** + * Return a new Array with elements common to all Arrays. + * - based on underscore.js implementation + */ + function intersection(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return every(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + return intersection; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js new file mode 100644 index 00000000..a2e78b39 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js @@ -0,0 +1,23 @@ +define(['./forEach'], function (forEach) { + + /** + * Call `methodName` on each item of the array passing custom arguments if + * needed. + */ + function invoke(arr, methodName, var_args){ + if (arr == null) { + return arr; + } + + var args = Array.prototype.slice.call(arguments, 2); + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + value[methodName].apply(value, args); + } + + return arr; + } + + return invoke; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/join.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/join.js new file mode 100644 index 00000000..2c618d29 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/join.js @@ -0,0 +1,17 @@ +define(['./filter'], function(filter) { + + function isValidString(val) { + return (val != null && val !== ''); + } + + /** + * Joins strings with the specified separator inserted between each value. + * Null values and empty strings will be excluded. + */ + function join(items, separator) { + separator = separator || ''; + return filter(items, isValidString).join(separator); + } + + return join; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js new file mode 100644 index 00000000..931235f4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Array lastIndexOf + */ + function lastIndexOf(arr, item, fromIndex) { + if (arr == null) { + return -1; + } + + var len = arr.length; + fromIndex = (fromIndex == null || fromIndex >= len)? len - 1 : fromIndex; + fromIndex = (fromIndex < 0)? len + fromIndex : fromIndex; + + while (fromIndex >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[fromIndex] === item) { + return fromIndex; + } + fromIndex--; + } + + return -1; + } + + return lastIndexOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/map.js new file mode 100644 index 00000000..1580b481 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/map.js @@ -0,0 +1,22 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Array map + */ + function map(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null){ + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + results[i] = callback(arr[i], i, arr); + } + + return results; + } + + return map; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/max.js new file mode 100644 index 00000000..a7326c89 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/max.js @@ -0,0 +1,34 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Return maximum value inside array + */ + function max(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return Infinity; + } else if (arr.length && !iterator) { + return Math.max.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = -Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp > compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + return max; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/min.js new file mode 100644 index 00000000..41644480 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/min.js @@ -0,0 +1,34 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Return minimum value inside array + */ + function min(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return -Infinity; + } else if (arr.length && !iterator) { + return Math.min.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp < compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + return min; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js new file mode 100644 index 00000000..97d7f595 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js @@ -0,0 +1,14 @@ +define(['../random/randInt'], function (randInt) { + + /** + * Remove a random item from the Array and return it + */ + function pick(arr){ + if (arr == null || !arr.length) return; + var idx = randInt(0, arr.length - 1); + return arr.splice(idx, 1)[0]; + } + + return pick; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js new file mode 100644 index 00000000..c908856e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js @@ -0,0 +1,12 @@ +define(['./map'], function (map) { + + /** + * Extract a list of property values. + */ + function pluck(arr, propName){ + return map(arr, propName); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/range.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/range.js new file mode 100644 index 00000000..148ebf96 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/range.js @@ -0,0 +1,27 @@ +define(['../math/countSteps'], function (countSteps) { + + /** + * Returns an Array of numbers inside range. + */ + function range(start, stop, step) { + if (stop == null) { + stop = start; + start = 0; + } + step = step || 1; + + var result = [], + nSteps = countSteps(stop - start, step), + i = start; + + while (i <= stop) { + result.push(i); + i += step; + } + + return result; + } + + return range; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js new file mode 100644 index 00000000..88aacfd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js @@ -0,0 +1,33 @@ +define(['./forEach'], function (forEach) { + + /** + * Array reduce + */ + function reduce(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2, + result = initVal; + + if (arr == null || !arr.length) { + if (!hasInit) { + throw new Error('reduce of empty array with no initial value'); + } else { + return initVal; + } + } + + var i = -1, len = arr.length; + while (++i < len) { + if (!hasInit) { + result = arr[i]; + hasInit = true; + } else { + result = fn(result, arr[i], i, arr); + } + } + + return result; + } + + return reduce; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js new file mode 100644 index 00000000..ddae0e7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js @@ -0,0 +1,34 @@ +define(function () { + + /** + * Array reduceRight + */ + function reduceRight(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2; + + if (arr == null || !arr.length) { + if (hasInit) { + return initVal; + } else { + throw new Error('reduce of empty array with no initial value'); + } + } + + var i = arr.length, result = initVal, value; + while (--i >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + value = arr[i]; + if (!hasInit) { + result = value; + hasInit = true; + } else { + result = fn(result, value, i, arr); + } + } + return result; + } + + return reduceRight; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js new file mode 100644 index 00000000..db105dde --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js @@ -0,0 +1,25 @@ +define(['./forEach', '../function/makeIterator_'], function(forEach, makeIterator) { + + /** + * Array reject + */ + function reject(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (!callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + return reject; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js new file mode 100644 index 00000000..dec9134d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js @@ -0,0 +1,13 @@ +define(['./indexOf'], function(indexOf){ + + /** + * Remove a single item from the array. + * (it won't remove duplicates, just a single item) + */ + function remove(arr, item){ + var idx = indexOf(arr, item); + if (idx !== -1) arr.splice(idx, 1); + } + + return remove; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js new file mode 100644 index 00000000..e81022b8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js @@ -0,0 +1,15 @@ +define(['./indexOf'], function(indexOf){ + + /** + * Remove all instances of an item from array. + */ + function removeAll(arr, item){ + var idx = indexOf(arr, item); + while (idx !== -1) { + arr.splice(idx, 1); + idx = indexOf(arr, item, idx); + } + } + + return removeAll; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js new file mode 100644 index 00000000..f5a60972 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js @@ -0,0 +1,28 @@ +define(['../random/randInt', './forEach'], function (randInt, forEach) { + + /** + * Shuffle array items. + */ + function shuffle(arr) { + var results = [], + rnd; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + if (!i) { + results[0] = arr[0]; + } else { + rnd = randInt(0, i); + results[i] = results[rnd]; + results[rnd] = arr[i]; + } + } + + return results; + } + + return shuffle; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/some.js new file mode 100644 index 00000000..e46a9781 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/some.js @@ -0,0 +1,27 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Array some + */ + function some(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback(arr[i], i, arr) ) { + result = true; + break; + } + } + + return result; + } + + return some; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js new file mode 100644 index 00000000..4c194042 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js @@ -0,0 +1,55 @@ +define(function () { + + /** + * Merge sort (http://en.wikipedia.org/wiki/Merge_sort) + */ + function mergeSort(arr, compareFn) { + if (arr == null) { + return []; + } else if (arr.length < 2) { + return arr; + } + + if (compareFn == null) { + compareFn = defaultCompare; + } + + var mid, left, right; + + mid = ~~(arr.length / 2); + left = mergeSort( arr.slice(0, mid), compareFn ); + right = mergeSort( arr.slice(mid, arr.length), compareFn ); + + return merge(left, right, compareFn); + } + + function defaultCompare(a, b) { + return a < b ? -1 : (a > b? 1 : 0); + } + + function merge(left, right, compareFn) { + var result = []; + + while (left.length && right.length) { + if (compareFn(left[0], right[0]) <= 0) { + // if 0 it should preserve same order (stable) + result.push(left.shift()); + } else { + result.push(right.shift()); + } + } + + if (left.length) { + result.push.apply(result, left); + } + + if (right.length) { + result.push.apply(result, right); + } + + return result; + } + + return mergeSort; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/split.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/split.js new file mode 100644 index 00000000..a17275eb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/split.js @@ -0,0 +1,35 @@ +define(function() { + + /** + * Split array into a fixed number of segments. + */ + function split(array, segments) { + segments = segments || 2; + var results = []; + if (array == null) { + return results; + } + + var minLength = Math.floor(array.length / segments), + remainder = array.length % segments, + i = 0, + len = array.length, + segmentIndex = 0, + segmentLength; + + while (i < len) { + segmentLength = minLength; + if (segmentIndex < remainder) { + segmentLength++; + } + + results.push(array.slice(i, i + segmentLength)); + + segmentIndex++; + i += segmentLength; + } + + return results; + } + return split; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js new file mode 100644 index 00000000..aac8fd1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js @@ -0,0 +1,28 @@ +define(['../lang/isFunction'], function (isFunction) { + + /** + * Creates an object that holds a lookup for the objects in the array. + */ + function toLookup(arr, key) { + var result = {}; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length, value; + if (isFunction(key)) { + while (++i < len) { + value = arr[i]; + result[key(value)] = value; + } + } else { + while (++i < len) { + value = arr[i]; + result[value[key]] = value; + } + } + + return result; + } + return toLookup; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/union.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/union.js new file mode 100644 index 00000000..5f9922e5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/union.js @@ -0,0 +1,18 @@ +define(['./unique', './append'], function (unique, append) { + + /** + * Concat multiple arrays and remove duplicates + */ + function union(arrs) { + var results = []; + var i = -1, len = arguments.length; + while (++i < len) { + append(results, arguments[i]); + } + + return unique(results); + } + + return union; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js new file mode 100644 index 00000000..c4bd23b4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js @@ -0,0 +1,16 @@ +define(['./indexOf', './filter'], function(indexOf, filter){ + + /** + * @return {array} Array of unique items + */ + function unique(arr){ + return filter(arr, isUnique); + } + + function isUnique(item, i, arr){ + return indexOf(arr, item, i+1) === -1; + } + + return unique; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js new file mode 100644 index 00000000..7df89d9c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js @@ -0,0 +1,24 @@ +define(['./unique', './filter', './contains'], function (unique, filter, contains) { + + + /** + * Exclusive OR. Returns items that are present in a single array. + * - like ptyhon's `symmetric_difference` + */ + function xor(arr1, arr2) { + arr1 = unique(arr1); + arr2 = unique(arr2); + + var a1 = filter(arr1, function(item){ + return !contains(arr2, item); + }), + a2 = filter(arr2, function(item){ + return !contains(arr1, item); + }); + + return a1.concat(a2); + } + + return xor; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js new file mode 100644 index 00000000..374cd282 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js @@ -0,0 +1,27 @@ +define(['./max', './pluck', './map'], function (max, pluck, map) { + + function getLength(arr) { + return arr == null ? 0 : arr.length; + } + + /** + * Merges together the values of each of the arrays with the values at the + * corresponding position. + */ + function zip(arr){ + var len = arr ? max(map(arguments, getLength)) : 0, + results = [], + i = -1, + item; + while (++i < len) { + results.push(map(arguments, function(item) { + return item == null ? undefined : item[i]; + })); + } + + return results; + } + + return zip; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection.js new file mode 100644 index 00000000..386e6da9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection.js @@ -0,0 +1,22 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'contains' : require('./collection/contains'), + 'every' : require('./collection/every'), + 'filter' : require('./collection/filter'), + 'find' : require('./collection/find'), + 'forEach' : require('./collection/forEach'), + 'make_' : require('./collection/make_'), + 'map' : require('./collection/map'), + 'max' : require('./collection/max'), + 'min' : require('./collection/min'), + 'pluck' : require('./collection/pluck'), + 'reduce' : require('./collection/reduce'), + 'reject' : require('./collection/reject'), + 'size' : require('./collection/size'), + 'some' : require('./collection/some') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js new file mode 100644 index 00000000..192167e8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/contains', '../object/contains'], function (make, arrContains, objContains) { + + /** + */ + return make(arrContains, objContains); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js new file mode 100644 index 00000000..6317f503 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/every', '../object/every'], function (make, arrEvery, objEvery) { + + /** + */ + return make(arrEvery, objEvery); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js new file mode 100644 index 00000000..4e7fadc8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js @@ -0,0 +1,22 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * filter collection values, returns array. + */ + function filter(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + var results = []; + if (!list) { + return results; + } + forEach(list, function(value, index, list) { + if (iterator(value, index, list)) { + results[results.length] = value; + } + }); + return results; + } + + return filter; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js new file mode 100644 index 00000000..681f9414 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/find', '../object/find'], function(make, arrFind, objFind) { + + /** + * Find value that returns true on iterator check. + */ + return make(arrFind, objFind); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js new file mode 100644 index 00000000..3b39d3ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/forEach', '../object/forOwn'], function (make, arrForEach, objForEach) { + + /** + */ + return make(arrForEach, objForEach); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js new file mode 100644 index 00000000..312e0564 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js @@ -0,0 +1,19 @@ +define(function(){ + + /** + * internal method used to create other collection modules. + */ + function makeCollectionMethod(arrMethod, objMethod, defaultReturn) { + return function(){ + var args = Array.prototype.slice.call(arguments); + if (args[0] == null) { + return defaultReturn; + } + // array-like is treated as array + return (typeof args[0].length === 'number')? arrMethod.apply(null, args) : objMethod.apply(null, args); + }; + } + + return makeCollectionMethod; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js new file mode 100644 index 00000000..96e24987 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js @@ -0,0 +1,20 @@ +define(['../lang/isObject', '../object/values', '../array/map', '../function/makeIterator_'], function (isObject, values, arrMap, makeIterator) { + + /** + * Map collection values, returns Array. + */ + function map(list, callback, thisObj) { + callback = makeIterator(callback, thisObj); + // list.length to check array-like object, if not array-like + // we simply map all the object values + if( isObject(list) && list.length == null ){ + list = values(list); + } + return arrMap(list, function (val, key, list) { + return callback(val, key, list); + }); + } + + return map; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js new file mode 100644 index 00000000..de9a6da5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/max', '../object/max'], function (make, arrMax, objMax) { + + /** + * Get maximum value inside collection + */ + return make(arrMax, objMax); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js new file mode 100644 index 00000000..f0c239a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/min', '../object/min'], function (make, arrMin, objMin) { + + /** + * Get minimum value inside collection. + */ + return make(arrMin, objMin); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js new file mode 100644 index 00000000..ef784a7a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js @@ -0,0 +1,14 @@ +define(['./map'], function (map) { + + /** + * Extract a list of property values. + */ + function pluck(list, key) { + return map(list, function(value) { + return value[key]; + }); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js new file mode 100644 index 00000000..bd05d43d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/reduce', '../object/reduce'], function (make, arrReduce, objReduce) { + + /** + */ + return make(arrReduce, objReduce); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js new file mode 100644 index 00000000..581adfdc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js @@ -0,0 +1,15 @@ +define(['./filter', '../function/makeIterator_'], function (filter, makeIterator) { + + /** + * Inverse or collection/filter + */ + function reject(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + return filter(list, function(value, index, list) { + return !iterator(value, index, list); + }, thisObj); + } + + return reject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js new file mode 100644 index 00000000..4e5ab419 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js @@ -0,0 +1,18 @@ +define(['../lang/isArray', '../object/size'], function (isArray, objSize) { + + /** + * Get collection size + */ + function size(list) { + if (!list) { + return 0; + } + if (isArray(list)) { + return list.length; + } + return objSize(list); + } + + return size; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js new file mode 100644 index 00000000..c0aebee2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/some', '../object/some'], function (make, arrSome, objSome) { + + /** + */ + return make(arrSome, objSome); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date.js new file mode 100644 index 00000000..4d449150 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date.js @@ -0,0 +1,21 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'dayOfTheYear' : require('./date/dayOfTheYear'), + 'diff' : require('./date/diff'), + 'i18n_' : require('./date/i18n_'), + 'isLeapYear' : require('./date/isLeapYear'), + 'isSame' : require('./date/isSame'), + 'parseIso' : require('./date/parseIso'), + 'startOf' : require('./date/startOf'), + 'strftime' : require('./date/strftime'), + 'timezoneAbbr' : require('./date/timezoneAbbr'), + 'timezoneOffset' : require('./date/timezoneOffset'), + 'totalDaysInMonth' : require('./date/totalDaysInMonth'), + 'totalDaysInYear' : require('./date/totalDaysInYear'), + 'weekOfTheYear' : require('./date/weekOfTheYear') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js new file mode 100644 index 00000000..dc77ae1b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js @@ -0,0 +1,13 @@ +define(['../lang/isDate'], function (isDate) { + + /** + * return the day of the year (1..366) + */ + function dayOfTheYear(date){ + return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - + Date.UTC(date.getFullYear(), 0, 1)) / 86400000 + 1; + } + + return dayOfTheYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js new file mode 100644 index 00000000..667165fe --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js @@ -0,0 +1,128 @@ +define(['./totalDaysInMonth', './totalDaysInYear', '../time/convert'], function(totalDaysInMonth, totalDaysInYear, convert){ + + /** + * calculate the difference between dates (range) + */ + function diff(start, end, unitName){ + // sort the dates to make it easier to process (specially year/month) + if (start > end) { + var swap = start; + start = end; + end = swap; + } + + var output; + + if (unitName === 'month') { + output = getMonthsDiff(start, end); + } else if (unitName === 'year'){ + output = getYearsDiff(start, end); + } else if (unitName != null) { + if (unitName === 'day') { + // ignore timezone difference because of daylight savings time + start = toUtc(start); + end = toUtc(end); + } + output = convert(end - start, 'ms', unitName); + } else { + output = end - start; + } + + return output; + } + + + function toUtc(d){ + // we ignore timezone differences on purpose because of daylight + // savings time, otherwise it would return fractional days/weeks even + // if a full day elapsed. eg: + // Wed Feb 12 2014 00:00:00 GMT-0200 (BRST) + // Sun Feb 16 2014 00:00:00 GMT-0300 (BRT) + // diff should be 4 days and not 4.041666666666667 + return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), + d.getHours(), d.getMinutes(), d.getSeconds(), + d.getMilliseconds()); + } + + + function getMonthsDiff(start, end){ + return getElapsedMonths(start, end) + + getElapsedYears(start, end) * 12 + + getFractionalMonth(start, end); + } + + + function getYearsDiff(start, end){ + var elapsedYears = getElapsedYears(start, end); + return elapsedYears + getFractionalYear(start, end, elapsedYears); + } + + + function getElapsedMonths(start, end){ + var monthDiff = end.getMonth() - start.getMonth(); + if (monthDiff < 0) { + monthDiff += 12; + } + // less than a full month + if (start.getDate() > end.getDate()) { + monthDiff -= 1; + } + return monthDiff; + } + + + function getElapsedYears(start, end){ + var yearDiff = end.getFullYear() - start.getFullYear(); + // less than a full year + if (start.getMonth() > end.getMonth()) { + yearDiff -= 1; + } + return yearDiff; + } + + + function getFractionalMonth(start, end){ + var fractionalDiff = 0; + var startDay = start.getDate(); + var endDay = end.getDate(); + + if (startDay !== endDay) { + var startTotalDays = totalDaysInMonth(start); + var endTotalDays = totalDaysInMonth(end); + var totalDays; + var daysElapsed; + + if (startDay > endDay) { + // eg: Jan 29 - Feb 27 (29 days elapsed but not a full month) + var baseDay = startTotalDays - startDay; + daysElapsed = endDay + baseDay; + // total days should be relative to 1st day of next month if + // startDay > endTotalDays + totalDays = (startDay > endTotalDays)? + endTotalDays + baseDay + 1 : startDay + baseDay; + } else { + // fractional is only based on endMonth eg: Jan 12 - Feb 18 + // (6 fractional days, 28 days until next full month) + daysElapsed = endDay - startDay; + totalDays = endTotalDays; + } + + fractionalDiff = daysElapsed / totalDays; + } + + return fractionalDiff; + } + + + function getFractionalYear(start, end, elapsedYears){ + var base = elapsedYears? + new Date(end.getFullYear(), start.getMonth(), start.getDate()) : + start; + var elapsedDays = diff(base, end, 'day'); + return elapsedDays / totalDaysInYear(end); + } + + + return diff; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js new file mode 100644 index 00000000..5e640c22 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js @@ -0,0 +1,61 @@ +define(function(){ + // en-US (English, United States) + return { + "am" : "AM", + "pm" : "PM", + + "x": "%m/%d/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %I:%M:%S %p %Z", + + "months" : [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + + "months_abbr" : [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + + "days_abbr" : [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ] + }; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js new file mode 100644 index 00000000..47256dd2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js @@ -0,0 +1,61 @@ +define(function(){ + // pt-BR (Brazillian Portuguese) + return { + "am" : "", + "pm" : "", + + "x": "%d/%m/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %H:%M:%S %Z", + + "months" : [ + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + + "months_abbr" : [ + "Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez" + ], + + "days" : [ + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + + "days_abbr" : [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sáb" + ] + }; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js new file mode 100644 index 00000000..c04ce885 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js @@ -0,0 +1,13 @@ +define(['../object/mixIn', './i18n/en-US'], function(mixIn, enUS){ + + // we also use mixIn to make sure we don't affect the original locale + var activeLocale = mixIn({}, enUS, { + // we expose a "set" method to allow overriding the global locale + set : function(localeData){ + mixIn(activeLocale, localeData); + } + }); + + return activeLocale; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js new file mode 100644 index 00000000..e400b43d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js @@ -0,0 +1,15 @@ +define(['../lang/isDate'], function (isDate) { + + /** + * checks if it's a leap year + */ + function isLeapYear(fullYear){ + if (isDate(fullYear)) { + fullYear = fullYear.getFullYear(); + } + return fullYear % 400 === 0 || (fullYear % 100 !== 0 && fullYear % 4 === 0); + } + + return isLeapYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js new file mode 100644 index 00000000..f30531fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js @@ -0,0 +1,16 @@ +define(['./startOf'], function (startOf) { + + /** + * Check if date is "same" with optional period + */ + function isSame(date1, date2, period){ + if (period) { + date1 = startOf(date1, period); + date2 = startOf(date2, period); + } + return Number(date1) === Number(date2); + } + + return isSame; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js new file mode 100644 index 00000000..9a2aacb0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js @@ -0,0 +1,146 @@ +define(['../array/some'], function (some) { + + var datePatterns = [ + /^([0-9]{4})$/, // YYYY + /^([0-9]{4})-([0-9]{2})$/, // YYYY-MM (YYYYMM not allowed) + /^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/ // YYYY-MM-DD or YYYYMMDD + ]; + var ORD_DATE = /^([0-9]{4})-?([0-9]{3})$/; // YYYY-DDD + + var timePatterns = [ + /^([0-9]{2}(?:\.[0-9]*)?)$/, // HH.hh + /^([0-9]{2}):?([0-9]{2}(?:\.[0-9]*)?)$/, // HH:MM.mm + /^([0-9]{2}):?([0-9]{2}):?([0-9]{2}(\.[0-9]*)?)$/ // HH:MM:SS.ss + ]; + + var DATE_TIME = /^(.+)T(.+)$/; + var TIME_ZONE = /^(.+)([+\-])([0-9]{2}):?([0-9]{2})$/; + + function matchAll(str, patterns) { + var match; + var found = some(patterns, function(pattern) { + return !!(match = pattern.exec(str)); + }); + + return found ? match : null; + } + + function getDate(year, month, day) { + var date = new Date(Date.UTC(year, month, day)); + + // Explicitly set year to avoid Date.UTC making dates < 100 relative to + // 1900 + date.setUTCFullYear(year); + + var valid = + date.getUTCFullYear() === year && + date.getUTCMonth() === month && + date.getUTCDate() === day; + return valid ? +date : NaN; + } + + function parseOrdinalDate(str) { + var match = ORD_DATE.exec(str); + if (match ) { + var year = +match[1], + day = +match[2], + date = new Date(Date.UTC(year, 0, day)); + + if (date.getUTCFullYear() === year) { + return +date; + } + } + + return NaN; + } + + function parseDate(str) { + var match, year, month, day; + + var match = matchAll(str, datePatterns); + if (match === null) { + // Ordinal dates are verified differently. + return parseOrdinalDate(str); + } + + year = (match[1] === void 0) ? 0 : +match[1]; + month = (match[2] === void 0) ? 0 : +match[2] - 1; + day = (match[3] === void 0) ? 1 : +match[3]; + + return getDate(year, month, day); + } + + function getTime(hr, min, sec) { + var valid = + (hr < 24 && hr >= 0 && + min < 60 && min >= 0 && + sec < 60 && min >= 0) || + (hr === 24 && min === 0 && sec === 0); + if (!valid) { + return NaN; + } + + return ((hr * 60 + min) * 60 + sec) * 1000; + } + + function parseOffset(str) { + var match; + if (str.charAt(str.length - 1) === 'Z') { + str = str.substring(0, str.length - 1); + } else if ((match = TIME_ZONE.exec(str))) { + var match = TIME_ZONE.exec(str); + if (match) { + var hours = +match[3], + minutes = (match[4] === void 0) ? 0 : +match[4], + offset = getTime(hours, minutes, 0); + + if (match[2] === '-') { + offset *= -1; + } + + return { offset: offset, time: match[1] }; + } + } + + // No time zone specified, assume UTC + return { offset: 0, time: str }; + } + + function parseTime(str) { + var match; + var offset = parseOffset(str); + + str = offset.time; + offset = offset.offset; + if (isNaN(offset)) { + return NaN; + } + + match = matchAll(str, timePatterns); + if (match === null) { + return NaN; + } + + var hours = (match[1] === void 0) ? 0 : +match[1], + minutes = (match[2] === void 0) ? 0 : +match[2], + seconds = (match[3] === void 0) ? 0 : +match[3]; + + return getTime(hours, minutes, seconds) - offset; + } + + /** + * Parse an ISO8601 formatted date string, and return a Date object. + */ + function parseISO8601(str){ + var match = DATE_TIME.exec(str); + if (!match) { + // No time specified + return parseDate(str); + } + + return parseDate(match[1]) + parseTime(match[2]); + } + + return parseISO8601; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js new file mode 100644 index 00000000..747f114d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js @@ -0,0 +1,54 @@ +define(['../lang/clone'], function (clone) { + + /** + * get a new Date object representing start of period + */ + function startOf(date, period){ + date = clone(date); + + // intentionally removed "break" from switch since start of + // month/year/etc should also reset the following periods + switch (period) { + case 'year': + date.setMonth(0); + /* falls through */ + case 'month': + date.setDate(1); + /* falls through */ + case 'week': + case 'day': + date.setHours(0); + /* falls through */ + case 'hour': + date.setMinutes(0); + /* falls through */ + case 'minute': + date.setSeconds(0); + /* falls through */ + case 'second': + date.setMilliseconds(0); + break; + default: + throw new Error('"'+ period +'" is not a valid period'); + } + + // week is the only case that should reset the weekDay and maybe even + // overflow to previous month + if (period === 'week') { + var weekDay = date.getDay(); + var baseDate = date.getDate(); + if (weekDay) { + if (weekDay >= baseDate) { + //start of the week is on previous month + date.setDate(0); + } + date.setDate(date.getDate() - date.getDay()); + } + } + + return date; + } + + return startOf; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js new file mode 100644 index 00000000..dd782505 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js @@ -0,0 +1,113 @@ +define(['../number/pad', './i18n_', './dayOfTheYear', './timezoneOffset', './timezoneAbbr', './weekOfTheYear'], function (pad, i18n, dayOfTheYear, timezoneOffset, timezoneAbbr, weekOfTheYear) { + + var _combinations = { + 'D': '%m/%d/%y', + 'F': '%Y-%m-%d', + 'r': '%I:%M:%S %p', + 'R': '%H:%M', + 'T': '%H:%M:%S', + 'x': 'locale', + 'X': 'locale', + 'c': 'locale' + }; + + + /** + * format date based on strftime format + */ + function strftime(date, format, localeData){ + localeData = localeData || i18n; + var reToken = /%([a-z%])/gi; + + function makeIterator(fn) { + return function(match, token){ + return fn(date, token, localeData); + }; + } + + return format + .replace(reToken, makeIterator(expandCombinations)) + .replace(reToken, makeIterator(convertToken)); + } + + + function expandCombinations(date, token, l10n){ + if (token in _combinations) { + var expanded = _combinations[token]; + return expanded === 'locale'? l10n[token] : expanded; + } else { + return '%'+ token; + } + } + + + function convertToken(date, token, l10n){ + switch (token){ + case 'a': + return l10n.days_abbr[date.getDay()]; + case 'A': + return l10n.days[date.getDay()]; + case 'h': + case 'b': + return l10n.months_abbr[date.getMonth()]; + case 'B': + return l10n.months[date.getMonth()]; + case 'C': + return pad(Math.floor(date.getFullYear() / 100), 2); + case 'd': + return pad(date.getDate(), 2); + case 'e': + return pad(date.getDate(), 2, ' '); + case 'H': + return pad(date.getHours(), 2); + case 'I': + return pad(date.getHours() % 12, 2); + case 'j': + return pad(dayOfTheYear(date), 3); + case 'L': + return pad(date.getMilliseconds(), 3); + case 'm': + return pad(date.getMonth() + 1, 2); + case 'M': + return pad(date.getMinutes(), 2); + case 'n': + return '\n'; + case 'p': + return date.getHours() >= 12? l10n.pm : l10n.am; + case 'P': + return convertToken(date, 'p', l10n).toLowerCase(); + case 's': + return date.getTime() / 1000; + case 'S': + return pad(date.getSeconds(), 2); + case 't': + return '\t'; + case 'u': + var day = date.getDay(); + return day === 0? 7 : day; + case 'U': + return pad(weekOfTheYear(date), 2); + case 'w': + return date.getDay(); + case 'W': + return pad(weekOfTheYear(date, 1), 2); + case 'y': + return pad(date.getFullYear() % 100, 2); + case 'Y': + return pad(date.getFullYear(), 4); + case 'z': + return timezoneOffset(date); + case 'Z': + return timezoneAbbr(date); + case '%': + return '%'; + default: + // keep unrecognized tokens + return '%'+ token; + } + } + + + return strftime; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js new file mode 100644 index 00000000..225a6856 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js @@ -0,0 +1,17 @@ +define(['./timezoneOffset'], function(timezoneOffset) { + + /** + * Abbreviated time zone name or similar information. + */ + function timezoneAbbr(date){ + // Date.toString gives different results depending on the + // browser/system so we fallback to timezone offset + // chrome: 'Mon Apr 08 2013 09:02:04 GMT-0300 (BRT)' + // IE: 'Mon Apr 8 09:02:04 UTC-0300 2013' + var tz = /\(([A-Z]{3,4})\)/.exec(date.toString()); + return tz? tz[1] : timezoneOffset(date); + } + + return timezoneAbbr; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js new file mode 100644 index 00000000..ca06705d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js @@ -0,0 +1,16 @@ +define(['../number/pad'], function (pad) { + + /** + * time zone as hour and minute offset from UTC (e.g. +0900) + */ + function timezoneOffset(date){ + var offset = date.getTimezoneOffset(); + var abs = Math.abs(offset); + var h = pad(Math.floor(abs / 60), 2); + var m = pad(abs % 60, 2); + return (offset > 0? '-' : '+') + h + m; + } + + return timezoneOffset; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js new file mode 100644 index 00000000..98f7e9d1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js @@ -0,0 +1,24 @@ +define(['../lang/isDate', './isLeapYear'], function (isDate, isLeapYear) { + + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + /** + * returns the total amount of days in the month (considering leap years) + */ + function totalDaysInMonth(fullYear, monthIndex){ + if (isDate(fullYear)) { + var date = fullYear; + year = date.getFullYear(); + monthIndex = date.getMonth(); + } + + if (monthIndex === 1 && isLeapYear(fullYear)) { + return 29; + } else { + return DAYS_IN_MONTH[monthIndex]; + } + } + + return totalDaysInMonth; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js new file mode 100644 index 00000000..e9036b42 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js @@ -0,0 +1,13 @@ +define(['./isLeapYear'], function (isLeapYear) { + + /** + * return the amount of days in the year following the gregorian calendar + * and leap years + */ + function totalDaysInYear(fullYear){ + return isLeapYear(fullYear)? 366 : 365; + } + + return totalDaysInYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js new file mode 100644 index 00000000..8dabc458 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js @@ -0,0 +1,16 @@ +define(['./dayOfTheYear'], function (dayOfTheYear) { + + /** + * Return the week of the year based on given firstDayOfWeek + */ + function weekOfTheYear(date, firstDayOfWeek){ + firstDayOfWeek = firstDayOfWeek == null? 0 : firstDayOfWeek; + var doy = dayOfTheYear(date); + var dow = (7 + date.getDay() - firstDayOfWeek) % 7; + var relativeWeekDay = 6 - firstDayOfWeek - dow; + return Math.floor((doy + relativeWeekDay) / 7); + } + + return weekOfTheYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function.js new file mode 100644 index 00000000..23f4fd74 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function.js @@ -0,0 +1,18 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'bind' : require('./function/bind'), + 'compose' : require('./function/compose'), + 'debounce' : require('./function/debounce'), + 'func' : require('./function/func'), + 'makeIterator_' : require('./function/makeIterator_'), + 'partial' : require('./function/partial'), + 'prop' : require('./function/prop'), + 'series' : require('./function/series'), + 'throttle' : require('./function/throttle'), + 'timeout' : require('./function/timeout') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js new file mode 100644 index 00000000..09e5e20a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js @@ -0,0 +1,23 @@ +define(function(){ + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + * @param {Function} fn Function. + * @param {object} context Execution context. + * @param {rest} args Arguments (0...n arguments). + * @return {Function} Wrapped Function. + */ + function bind(fn, context, args){ + var argsArr = slice(arguments, 2); //curried args + return function(){ + return fn.apply(context, argsArr.concat(slice(arguments))); + }; + } + + return bind; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js new file mode 100644 index 00000000..d8b228fa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Returns a function that composes multiple functions, passing results to + * each other. + */ + function compose() { + var fns = arguments; + return function(arg){ + // only cares about the first argument since the chain can only + // deal with a single return value anyway. It should start from + // the last fn. + var n = fns.length; + while (n--) { + arg = fns[n].call(this, arg); + } + return arg; + }; + } + + return compose; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js new file mode 100644 index 00000000..21644ecc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js @@ -0,0 +1,29 @@ +define(function () { + + /** + * Debounce callback execution + */ + function debounce(fn, threshold, isAsap){ + var timeout, result; + function debounced(){ + var args = arguments, context = this; + function delayed(){ + if (! isAsap) { + result = fn.apply(context, args); + } + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (isAsap) { + result = fn.apply(context, args); + } + timeout = setTimeout(delayed, threshold); + return result; + } + return debounced; + } + + return debounce; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/func.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/func.js new file mode 100644 index 00000000..b920e00e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/func.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Returns a function that call a method on the passed object + */ + function func(name){ + return function(obj){ + return obj[name](); + }; + } + + return func; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js new file mode 100644 index 00000000..deb6e137 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js @@ -0,0 +1,33 @@ +define(['./prop', '../object/deepMatches'], function(prop, deepMatches) { + + /** + * Converts argument into a valid iterator. + * Used internally on most array/object/collection methods that receives a + * callback/iterator providing a shortcut syntax. + */ + function makeIterator(src, thisObj){ + switch(typeof src) { + case 'object': + // typeof null == "object" + return (src != null)? function(val, key, target){ + return deepMatches(val, src); + } : src; + case 'string': + case 'number': + return prop(src); + case 'function': + if (typeof thisObj === 'undefined') { + return src; + } else { + return function(val, i, arr){ + return src.call(thisObj, val, i, arr); + }; + } + default: + return src; + } + } + + return makeIterator; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js new file mode 100644 index 00000000..ad730746 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js @@ -0,0 +1,19 @@ +define(function () { + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Creates a partially applied function. + */ + function partial(fn, var_args){ + var argsArr = slice(arguments, 1); //curried args + return function(){ + return fn.apply(this, argsArr.concat(slice(arguments))); + }; + } + + return partial; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js new file mode 100644 index 00000000..c9df78ca --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Returns a function that gets a property of the passed object + */ + function prop(name){ + return function(obj){ + return obj[name]; + }; + } + + return prop; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/series.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/series.js new file mode 100644 index 00000000..c8856a27 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/series.js @@ -0,0 +1,22 @@ +define(function () { + + /** + * Returns a function that will execute a list of functions in sequence + * passing the same arguments to each one. (useful for batch processing + * items during a forEach loop) + */ + function series(){ + var fns = arguments; + return function(){ + var i = 0, + n = fns.length; + while (i < n) { + fns[i].apply(this, arguments); + i += 1; + } + }; + } + + return series; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js new file mode 100644 index 00000000..8ce3929a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js @@ -0,0 +1,32 @@ +define(['../time/now'], function (now) { + + /** + */ + function throttle(fn, delay){ + var context, timeout, result, args, + cur, diff, prev = 0; + function delayed(){ + prev = now(); + timeout = null; + result = fn.apply(context, args); + } + function throttled(){ + context = this; + args = arguments; + cur = now(); + diff = delay - (cur - prev); + if (diff <= 0) { + clearTimeout(timeout); + prev = cur; + result = fn.apply(context, args); + } else if (! timeout) { + timeout = setTimeout(delayed, diff); + } + return result; + } + return throttled; + } + + return throttle; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js new file mode 100644 index 00000000..15388bdd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js @@ -0,0 +1,21 @@ +define(function () { + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Delays the call of a function within a given context. + */ + function timeout(fn, millis, context){ + + var args = slice(arguments, 3); + + return setTimeout(function() { + fn.apply(context, args); + }, millis); + } + + return timeout; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/index.js new file mode 100644 index 00000000..744bb119 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/index.js @@ -0,0 +1,24 @@ +/**@license + * mout v0.6.0 | http://moutjs.com | MIT license + */ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'VERSION' : '0.6.0', + 'array' : require('./array'), + 'collection' : require('./collection'), + 'date' : require('./date'), + 'function' : require('./function'), + 'lang' : require('./lang'), + 'math' : require('./math'), + 'number' : require('./number'), + 'object' : require('./object'), + 'queryString' : require('./queryString'), + 'random' : require('./random'), + 'string' : require('./string'), + 'time' : require('./time') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang.js new file mode 100644 index 00000000..de16b597 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang.js @@ -0,0 +1,36 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'clone' : require('./lang/clone'), + 'createObject' : require('./lang/createObject'), + 'ctorApply' : require('./lang/ctorApply'), + 'deepClone' : require('./lang/deepClone'), + 'defaults' : require('./lang/defaults'), + 'inheritPrototype' : require('./lang/inheritPrototype'), + 'is' : require('./lang/is'), + 'isArguments' : require('./lang/isArguments'), + 'isArray' : require('./lang/isArray'), + 'isBoolean' : require('./lang/isBoolean'), + 'isDate' : require('./lang/isDate'), + 'isEmpty' : require('./lang/isEmpty'), + 'isFinite' : require('./lang/isFinite'), + 'isFunction' : require('./lang/isFunction'), + 'isInteger' : require('./lang/isInteger'), + 'isKind' : require('./lang/isKind'), + 'isNaN' : require('./lang/isNaN'), + 'isNull' : require('./lang/isNull'), + 'isNumber' : require('./lang/isNumber'), + 'isObject' : require('./lang/isObject'), + 'isPlainObject' : require('./lang/isPlainObject'), + 'isRegExp' : require('./lang/isRegExp'), + 'isString' : require('./lang/isString'), + 'isUndefined' : require('./lang/isUndefined'), + 'isnt' : require('./lang/isnt'), + 'kindOf' : require('./lang/kindOf'), + 'toArray' : require('./lang/toArray'), + 'toString' : require('./lang/toString') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js new file mode 100644 index 00000000..468489a1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js @@ -0,0 +1,47 @@ +define(['./kindOf', './isPlainObject', '../object/mixIn'], function (kindOf, isPlainObject, mixIn) { + + /** + * Clone native types. + */ + function clone(val){ + switch (kindOf(val)) { + case 'Object': + return cloneObject(val); + case 'Array': + return cloneArray(val); + case 'RegExp': + return cloneRegExp(val); + case 'Date': + return cloneDate(val); + default: + return val; + } + } + + function cloneObject(source) { + if (isPlainObject(source)) { + return mixIn({}, source); + } else { + return source; + } + } + + function cloneRegExp(r) { + var flags = ''; + flags += r.multiline ? 'm' : ''; + flags += r.global ? 'g' : ''; + flags += r.ignorecase ? 'i' : ''; + return new RegExp(r.source, flags); + } + + function cloneDate(date) { + return new Date(+date); + } + + function cloneArray(arr) { + return arr.slice(); + } + + return clone; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js new file mode 100644 index 00000000..f7661500 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js @@ -0,0 +1,18 @@ +define(['../object/mixIn'], function(mixIn){ + + /** + * Create Object using prototypal inheritance and setting custom properties. + * - Mix between Douglas Crockford Prototypal Inheritance and the EcmaScript 5 `Object.create()` method. + * @param {object} parent Parent Object. + * @param {object} [props] Object properties. + * @return {object} Created object. + */ + function createObject(parent, props){ + function F(){} + F.prototype = parent; + return mixIn(new F(), props); + + } + return createObject; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js new file mode 100644 index 00000000..a9ac1c54 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js @@ -0,0 +1,17 @@ +define(function () { + + function F(){} + + /** + * Do fn.apply on a constructor. + */ + function ctorApply(ctor, args) { + F.prototype = ctor.prototype; + var instance = new F(); + ctor.apply(instance, args); + return instance; + } + + return ctorApply; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js new file mode 100644 index 00000000..d45c10aa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js @@ -0,0 +1,45 @@ +define(['./clone', '../object/forOwn', './kindOf', './isPlainObject'], function (clone, forOwn, kindOf, isPlainObject) { + + /** + * Recursively clone native types. + */ + function deepClone(val, instanceClone) { + switch ( kindOf(val) ) { + case 'Object': + return cloneObject(val, instanceClone); + case 'Array': + return cloneArray(val, instanceClone); + default: + return clone(val); + } + } + + function cloneObject(source, instanceClone) { + if (isPlainObject(source)) { + var out = {}; + forOwn(source, function(val, key) { + this[key] = deepClone(val, instanceClone); + }, out); + return out; + } else if (instanceClone) { + return instanceClone(source); + } else { + return source; + } + } + + function cloneArray(arr, instanceClone) { + var out = [], + i = -1, + n = arr.length, + val; + while (++i < n) { + out[i] = deepClone(arr[i], instanceClone); + } + return out; + } + + return deepClone; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js new file mode 100644 index 00000000..5156b1bb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js @@ -0,0 +1,16 @@ +define(['./toArray', '../array/find'], function (toArray, find) { + + /** + * Return first non void argument + */ + function defaults(var_args){ + return find(toArray(arguments), nonVoid); + } + + function nonVoid(val){ + return val != null; + } + + return defaults; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js new file mode 100644 index 00000000..c1fda3a7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js @@ -0,0 +1,16 @@ +define(['./createObject'], function(createObject){ + + /** + * Inherit prototype from another Object. + * - inspired by Nicholas Zackas Solution + * @param {object} child Child object + * @param {object} parent Parent Object + */ + function inheritPrototype(child, parent){ + var p = createObject(parent.prototype); + p.constructor = child; + child.prototype = p; + } + + return inheritPrototype; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js new file mode 100644 index 00000000..261a2077 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Check if both arguments are egal. + */ + function is(x, y){ + // implementation borrowed from harmony:egal spec + if (x === y) { + // 0 === -0, but they are not identical + return x !== 0 || 1 / x === 1 / y; + } + + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is a NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN("foo") => true + return x !== x && y !== y; + } + + return is; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js new file mode 100644 index 00000000..f889ee8e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js @@ -0,0 +1,15 @@ +define(['./isKind'], function (isKind) { + + /** + */ + var isArgs = isKind(arguments, 'Arguments')? + function(val){ + return isKind(val, 'Arguments'); + } : + function(val){ + // Arguments is an Object on IE7 + return !!(val && Object.prototype.hasOwnProperty.call(val, 'callee')); + }; + + return isArgs; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js new file mode 100644 index 00000000..886e2aa5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + var isArray = Array.isArray || function (val) { + return isKind(val, 'Array'); + }; + return isArray; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js new file mode 100644 index 00000000..1ca27a69 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isBoolean(val) { + return isKind(val, 'Boolean'); + } + return isBoolean; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js new file mode 100644 index 00000000..2708d676 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isDate(val) { + return isKind(val, 'Date'); + } + return isDate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js new file mode 100644 index 00000000..4cc3d2db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js @@ -0,0 +1,23 @@ +define(['../object/forOwn', './isArray'], function (forOwn, isArray) { + + function isEmpty(val){ + if (val == null) { + // typeof null == 'object' so we check it first + return false; + } else if ( typeof val === 'string' || isArray(val) ) { + return !val.length; + } else if ( typeof val === 'object' || typeof val === 'function' ) { + var result = true; + forOwn(val, function(){ + result = false; + return false; // break loop + }); + return result; + } else { + return false; + } + } + + return isEmpty; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js new file mode 100644 index 00000000..5a982f4b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js @@ -0,0 +1,21 @@ +define(['./isNumber'], function (isNumber) { + + var global = this; + + /** + * Check if value is finite + */ + function isFinite(val){ + var is = false; + if (typeof val === 'string' && val !== '') { + is = global.isFinite( parseFloat(val) ); + } else if (isNumber(val)){ + // need to use isNumber because of Number constructor + is = global.isFinite( val ); + } + return is; + } + + return isFinite; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js new file mode 100644 index 00000000..ff5df7f0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isFunction(val) { + return isKind(val, 'Function'); + } + return isFunction; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js new file mode 100644 index 00000000..1931f516 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js @@ -0,0 +1,12 @@ +define(['./isNumber'], function (isNumber) { + + /** + * Check if value is an integer + */ + function isInteger(val){ + return isNumber(val) && (val % 1 === 0); + } + + return isInteger; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js new file mode 100644 index 00000000..6937a12f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js @@ -0,0 +1,9 @@ +define(['./kindOf'], function (kindOf) { + /** + * Check if value is from a specific "kind". + */ + function isKind(val, kind){ + return kindOf(val) === kind; + } + return isKind; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js new file mode 100644 index 00000000..9467a3c8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js @@ -0,0 +1,15 @@ +define(['./isNumber'], function (isNumber) { + + /** + * Check if value is NaN for realz + */ + function isNaN(val){ + // based on the fact that NaN !== NaN + // need to check if it's a number to avoid conflicts with host objects + // also need to coerce ToNumber to avoid edge case `new Number(NaN)` + return !isNumber(val) || val != +val; + } + + return isNaN; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js new file mode 100644 index 00000000..506e05ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js @@ -0,0 +1,9 @@ +define(function () { + /** + */ + function isNull(val){ + return val === null; + } + return isNull; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js new file mode 100644 index 00000000..9a832c5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isNumber(val) { + return isKind(val, 'Number'); + } + return isNumber; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js new file mode 100644 index 00000000..0befb063 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isObject(val) { + return isKind(val, 'Object'); + } + return isObject; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js new file mode 100644 index 00000000..6c5854fd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Checks if the value is created by the `Object` constructor. + */ + function isPlainObject(value) { + return (!!value + && typeof value === 'object' + && value.constructor === Object); + } + + return isPlainObject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js new file mode 100644 index 00000000..d78a03da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isRegExp(val) { + return isKind(val, 'RegExp'); + } + return isRegExp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js new file mode 100644 index 00000000..8a42fe01 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isString(val) { + return isKind(val, 'String'); + } + return isString; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js new file mode 100644 index 00000000..c57b28eb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js @@ -0,0 +1,10 @@ +define(function () { + var UNDEF; + + /** + */ + function isUndef(val){ + return val === UNDEF; + } + return isUndef; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js new file mode 100644 index 00000000..d4336222 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js @@ -0,0 +1,12 @@ +define(['./is'], function (is) { + + /** + * Check if both values are not identical/egal + */ + function isnt(x, y){ + return !is(x, y); + } + + return isnt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js new file mode 100644 index 00000000..97d21d15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js @@ -0,0 +1,20 @@ +define(function () { + + var _rKind = /^\[object (.*)\]$/, + _toString = Object.prototype.toString, + UNDEF; + + /** + * Gets the "kind" of value. (e.g. "String", "Number", etc) + */ + function kindOf(val) { + if (val === null) { + return 'Null'; + } else if (val === UNDEF) { + return 'Undefined'; + } else { + return _rKind.exec( _toString.call(val) )[1]; + } + } + return kindOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js new file mode 100644 index 00000000..552916f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js @@ -0,0 +1,31 @@ +define(['./kindOf'], function (kindOf) { + + var _win = this; + + /** + * Convert array-like object into array + */ + function toArray(val){ + var ret = [], + kind = kindOf(val), + n; + + if (val != null) { + if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) { + //string, regexp, function have .length but user probably just want + //to wrap value into an array.. + ret[ret.length] = val; + } else { + //window returns true on isObject in IE7 and may have length + //property. `typeof NodeList` returns `function` on Safari so + //we can't use it (#58) + n = val.length; + while (n--) { + ret[n] = val[n]; + } + } + } + return ret; + } + return toArray; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js new file mode 100644 index 00000000..c28b89af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * Typecast a value to a String, using an empty string value for null or + * undefined. + */ + function toString(val){ + return val == null ? '' : val.toString(); + } + + return toString; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math.js new file mode 100644 index 00000000..e2ba8705 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math.js @@ -0,0 +1,19 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'ceil' : require('./math/ceil'), + 'clamp' : require('./math/clamp'), + 'countSteps' : require('./math/countSteps'), + 'floor' : require('./math/floor'), + 'inRange' : require('./math/inRange'), + 'isNear' : require('./math/isNear'), + 'lerp' : require('./math/lerp'), + 'loop' : require('./math/loop'), + 'map' : require('./math/map'), + 'norm' : require('./math/norm'), + 'round' : require('./math/round') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js new file mode 100644 index 00000000..d73b0581 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Round value up with a custom radix. + */ + function ceil(val, step){ + step = Math.abs(step || 1); + return Math.ceil(val / step) * step; + } + + return ceil; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js new file mode 100644 index 00000000..fb5a1484 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Clamps value inside range. + */ + function clamp(val, min, max){ + return val < min? min : (val > max? max : val); + } + return clamp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js new file mode 100644 index 00000000..0ecb32f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js @@ -0,0 +1,16 @@ +define(function(){ + /** + * Count number of full steps. + */ + function countSteps(val, step, overflow){ + val = Math.floor(val / step); + + if (overflow) { + return val % overflow; + } + + return val; + } + + return countSteps; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js new file mode 100644 index 00000000..8a4456b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Floor value to full steps. + */ + function floor(val, step){ + step = Math.abs(step || 1); + return Math.floor(val / step) * step; + } + return floor; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js new file mode 100644 index 00000000..0c890536 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Checks if value is inside the range. + */ + function inRange(val, min, max, threshold){ + threshold = threshold || 0; + return (val + threshold >= min && val - threshold <= max); + } + + return inRange; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js new file mode 100644 index 00000000..b308a0b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Check if value is close to target. + */ + function isNear(val, target, threshold){ + return (Math.abs(val - target) <= threshold); + } + return isNear; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js new file mode 100644 index 00000000..26b99d04 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Linear interpolation. + * IMPORTANT:will return `Infinity` if numbers overflow Number.MAX_VALUE + */ + function lerp(ratio, start, end){ + return start + (end - start) * ratio; + } + + return lerp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js new file mode 100644 index 00000000..c735ecf6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Loops value inside range. + */ + function loop(val, min, max){ + return val < min? max : (val > max? min : val); + } + + return loop; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/map.js new file mode 100644 index 00000000..bf7dc5d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/map.js @@ -0,0 +1,10 @@ +define(['./lerp', './norm'], function(lerp, norm){ + /** + * Maps a number from one scale to another. + * @example map(3, 0, 4, -1, 1) -> 0.5 + */ + function map(val, min1, max1, min2, max2){ + return lerp( norm(val, min1, max1), min2, max2 ); + } + return map; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js new file mode 100644 index 00000000..fccae20e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Gets normalized ratio of value inside range. + */ + function norm(val, min, max){ + return (val - min) / (max - min); + } + return norm; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/round.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/round.js new file mode 100644 index 00000000..b43e4ac2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/math/round.js @@ -0,0 +1,12 @@ +define(function () { + /** + * Round number to a specific radix + */ + function round(value, radix){ + radix = radix || 1; // default round 1 + return Math.round(value / radix) * radix; + } + + return round; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number.js new file mode 100644 index 00000000..cb52fc75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number.js @@ -0,0 +1,21 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'MAX_INT' : require('./number/MAX_INT'), + 'MAX_UINT' : require('./number/MAX_UINT'), + 'MIN_INT' : require('./number/MIN_INT'), + 'abbreviate' : require('./number/abbreviate'), + 'currencyFormat' : require('./number/currencyFormat'), + 'enforcePrecision' : require('./number/enforcePrecision'), + 'pad' : require('./number/pad'), + 'rol' : require('./number/rol'), + 'ror' : require('./number/ror'), + 'sign' : require('./number/sign'), + 'toInt' : require('./number/toInt'), + 'toUInt' : require('./number/toUInt'), + 'toUInt31' : require('./number/toUInt31') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js new file mode 100644 index 00000000..23a6e1a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit signed integer value. (2^31 - 1) + */ +define(function(){ + return 2147483647; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js new file mode 100644 index 00000000..a035096c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit unsigned integet value (2^32 - 1) + */ +define(function(){ + return 4294967295; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js new file mode 100644 index 00000000..9b3e9781 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Minimum 32-bit signed integer value (-2^31). + */ +define(function(){ + return -2147483648; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js new file mode 100644 index 00000000..7e7405ad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js @@ -0,0 +1,35 @@ +define(['./enforcePrecision'], function (enforcePrecision) { + + var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' + }; + + /** + * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) + */ + function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals != null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; + } + + return abbreviateNumber; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js new file mode 100644 index 00000000..dcde8fc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js @@ -0,0 +1,26 @@ +define(function () { + + /** + * Converts number into currency format + */ + function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) { + nDecimalDigits = nDecimalDigits == null? 2 : nDecimalDigits; + decimalSeparator = decimalSeparator == null? '.' : decimalSeparator; + thousandsSeparator = thousandsSeparator == null? ',' : thousandsSeparator; + + //can't use enforce precision since it returns a number and we are + //doing a RegExp over the string + var fixed = val.toFixed(nDecimalDigits), + //separate begin [$1], middle [$2] and decimal digits [$4] + parts = new RegExp('^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{'+ nDecimalDigits +'}))?$').exec( fixed ); + + if(parts){ //val >= 1000 || val <= -1000 + return parts[1] + parts[2].replace(/\d{3}/g, thousandsSeparator + '$&') + (parts[4] ? decimalSeparator + parts[4] : ''); + }else{ + return fixed.replace('.', decimalSeparator); + } + } + + return currencyFormat; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js new file mode 100644 index 00000000..84554d0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js @@ -0,0 +1,13 @@ +define(function(){ + /** + * Enforce a specific amount of decimal digits and also fix floating + * point rounding issues. + * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> + * 0.61` + */ + function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); + } + return enforcePrecision; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js new file mode 100644 index 00000000..3b2c062a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js @@ -0,0 +1,12 @@ +define(['../string/lpad'], function(lpad){ + + /** + * Add padding zeros if n.length < minLength. + */ + function pad(n, minLength, char){ + return lpad(''+ n, minLength, char || '0'); + } + + return pad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js new file mode 100644 index 00000000..a148f444 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Bitwise circular shift left + * http://en.wikipedia.org/wiki/Circular_shift + */ + function rol(val, shift){ + return (val << shift) | (val >> (32 - shift)); + } + return rol; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js new file mode 100644 index 00000000..b5c66f92 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Bitwise circular shift right + * http://en.wikipedia.org/wiki/Circular_shift + */ + function ror(val, shift){ + return (val >> shift) | (val << (32 - shift)); + } + return ror; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js new file mode 100644 index 00000000..dfc131d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js @@ -0,0 +1,15 @@ +define(function () { + + /** + * Get sign of the value. + */ + function sign(val) { + var num = Number(val); + if (num === 0) return num; // +0 and +0 === 0 + if (isNaN(num)) return num; // NaN + return num < 0? -1 : 1; + } + + return sign; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js new file mode 100644 index 00000000..1e9b4c0b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js @@ -0,0 +1,15 @@ +define(function(){ + + /** + * "Convert" value into an 32-bit integer. + * Works like `Math.floor` if val > 0 and `Math.ceil` if val < 0. + * IMPORTANT: val will wrap at 2^31 and -2^31. + * Perf tests: http://jsperf.com/vs-vs-parseint-bitwise-operators/7 + */ + function toInt(val){ + return ~~val; + } + + return toInt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js new file mode 100644 index 00000000..d5b25b2c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * "Convert" value into a 32-bit unsigned integer. + * IMPORTANT: Value will wrap at 2^32. + */ + function toUInt(val){ + return val >>> 0; + } + + return toUInt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js new file mode 100644 index 00000000..9785a054 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js @@ -0,0 +1,13 @@ +define(['./MAX_INT'], function(MAX_INT){ + + /** + * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + * IMPORTANT: value wil wrap at 2^31, if negative will return 0. + */ + function toUInt31(val){ + return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val); + } + + return toUInt31; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object.js new file mode 100644 index 00000000..343e7826 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object.js @@ -0,0 +1,42 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'bindAll' : require('./object/bindAll'), + 'contains' : require('./object/contains'), + 'deepEquals' : require('./object/deepEquals'), + 'deepFillIn' : require('./object/deepFillIn'), + 'deepMatches' : require('./object/deepMatches'), + 'deepMixIn' : require('./object/deepMixIn'), + 'equals' : require('./object/equals'), + 'every' : require('./object/every'), + 'fillIn' : require('./object/fillIn'), + 'filter' : require('./object/filter'), + 'find' : require('./object/find'), + 'forIn' : require('./object/forIn'), + 'forOwn' : require('./object/forOwn'), + 'functions' : require('./object/functions'), + 'get' : require('./object/get'), + 'has' : require('./object/has'), + 'hasOwn' : require('./object/hasOwn'), + 'keys' : require('./object/keys'), + 'map' : require('./object/map'), + 'matches' : require('./object/matches'), + 'max' : require('./object/max'), + 'merge' : require('./object/merge'), + 'min' : require('./object/min'), + 'mixIn' : require('./object/mixIn'), + 'namespace' : require('./object/namespace'), + 'pick' : require('./object/pick'), + 'pluck' : require('./object/pluck'), + 'reduce' : require('./object/reduce'), + 'reject' : require('./object/reject'), + 'set' : require('./object/set'), + 'size' : require('./object/size'), + 'some' : require('./object/some'), + 'unset' : require('./object/unset'), + 'values' : require('./object/values') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js new file mode 100644 index 00000000..b131ed15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js @@ -0,0 +1,16 @@ +define(['./functions', '../function/bind', '../array/forEach'], function (functions, bind, forEach) { + + /** + * Binds methods of the object to be run in it's own context. + */ + function bindAll(obj, rest_methodNames){ + var keys = arguments.length > 1? + Array.prototype.slice.call(arguments, 1) : functions(obj); + forEach(keys, function(key){ + obj[key] = bind(obj[key], obj); + }); + } + + return bindAll; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js new file mode 100644 index 00000000..297e8986 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js @@ -0,0 +1,13 @@ +define(['./some'], function (some) { + + /** + * Check if object contains value + */ + function contains(obj, needle) { + return some(obj, function(val) { + return (val === needle); + }); + } + return contains; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js new file mode 100644 index 00000000..8b7d5d15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js @@ -0,0 +1,26 @@ +define(['../lang/isObject', './equals'], function (isObject, equals) { + + function defaultCompare(a, b) { + return a === b; + } + + /** + * Recursively checks for same properties and values. + */ + function deepEquals(a, b, callback){ + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + function compare(a, b){ + return deepEquals(a, b, callback); + } + + return equals(a, b, compare); + } + + return deepEquals; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js new file mode 100644 index 00000000..84ba154a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js @@ -0,0 +1,31 @@ +define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { + + /** + * Deeply copy missing properties in the target from the defaults. + */ + function deepFillIn(target, defaults){ + var i = 0, + n = arguments.length, + obj; + + while(++i < n) { + obj = arguments[i]; + if (obj) { + forOwn(obj, function(newValue, key) { + var curValue = target[key]; + if (curValue == null) { + target[key] = newValue; + } else if (isPlainObject(curValue) + && isPlainObject(newValue)) { + deepFillIn(curValue, newValue); + } + }); + } + } + + return target; + } + + return deepFillIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js new file mode 100644 index 00000000..2eae6297 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js @@ -0,0 +1,54 @@ +define(['./forOwn', '../lang/isArray'], function(forOwn, isArray) { + + function containsMatch(array, pattern) { + var i = -1, length = array.length; + while (++i < length) { + if (deepMatches(array[i], pattern)) { + return true; + } + } + + return false; + } + + function matchArray(target, pattern) { + var i = -1, patternLength = pattern.length; + while (++i < patternLength) { + if (!containsMatch(target, pattern[i])) { + return false; + } + } + + return true; + } + + function matchObject(target, pattern) { + var result = true; + forOwn(pattern, function(val, key) { + if (!deepMatches(target[key], val)) { + // Return false to break out of forOwn early + return (result = false); + } + }); + + return result; + } + + /** + * Recursively check if the objects match. + */ + function deepMatches(target, pattern){ + if (target && typeof target === 'object') { + if (isArray(target) && isArray(pattern)) { + return matchArray(target, pattern); + } else { + return matchObject(target, pattern); + } + } else { + return target === pattern; + } + } + + return deepMatches; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js new file mode 100644 index 00000000..1b4178ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js @@ -0,0 +1,33 @@ +define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { + + /** + * Mixes objects into the target object, recursively mixing existing child + * objects. + */ + function deepMixIn(target, objects) { + var i = 0, + n = arguments.length, + obj; + + while(++i < n){ + obj = arguments[i]; + if (obj) { + forOwn(obj, copyProp, target); + } + } + + return target; + } + + function copyProp(val, key) { + var existing = this[key]; + if (isPlainObject(val) && isPlainObject(existing)) { + deepMixIn(existing, val); + } else { + this[key] = val; + } + } + + return deepMixIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js new file mode 100644 index 00000000..596cb952 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js @@ -0,0 +1,34 @@ +define(['./hasOwn', './every', '../lang/isObject'], function(hasOwn, every, isObject) { + + function defaultCompare(a, b) { + return a === b; + } + + // Makes a function to compare the object values from the specified compare + // operation callback. + function makeCompare(callback) { + return function(value, key) { + return hasOwn(this, key) && callback(value, this[key]); + }; + } + + function checkProperties(value, key) { + return hasOwn(this, key); + } + + /** + * Checks if two objects have the same keys and values. + */ + function equals(a, b, callback) { + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + return (every(a, makeCompare(callback), b) && + every(b, checkProperties, a)); + } + + return equals; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/every.js new file mode 100644 index 00000000..52983a5e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/every.js @@ -0,0 +1,22 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Object every + */ + function every(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + forOwn(obj, function(val, key) { + // we consider any falsy values as "false" on purpose so shorthand + // syntax can be used to check property existence + if (!callback(val, key, obj)) { + result = false; + return false; // break + } + }); + return result; + } + + return every; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js new file mode 100644 index 00000000..0845d3c2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js @@ -0,0 +1,19 @@ +define(['../array/forEach', './forOwn'], function (forEach, forOwn) { + + /** + * Copy missing properties in the obj from the defaults. + */ + function fillIn(obj, var_defaults){ + forEach(Array.prototype.slice.call(arguments, 1), function(base){ + forOwn(base, function(val, key){ + if (obj[key] == null) { + obj[key] = val; + } + }); + }); + return obj; + } + + return fillIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js new file mode 100644 index 00000000..f213b915 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js @@ -0,0 +1,19 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Creates a new object with all the properties where the callback returns + * true. + */ + function filterValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + output[key] = value; + } + }); + + return output; + } + return filterValues; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/find.js new file mode 100644 index 00000000..47e6b09d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/find.js @@ -0,0 +1,20 @@ +define(['./some', '../function/makeIterator_'], function(some, makeIterator) { + + /** + * Returns first item that matches criteria + */ + function find(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result; + some(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + result = value; + return true; //break + } + }); + return result; + } + + return find; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js new file mode 100644 index 00000000..2058e9cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js @@ -0,0 +1,62 @@ +define(function () { + + var _hasDontEnumBug, + _dontEnums; + + function checkDontEnum(){ + _dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ]; + + _hasDontEnumBug = true; + + for (var key in {'toString': null}) { + _hasDontEnumBug = false; + } + } + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forIn(obj, fn, thisObj){ + var key, i = 0; + // no need to check if argument is a real object that way we can use + // it for arrays, functions, date, etc. + + //post-pone check till needed + if (_hasDontEnumBug == null) checkDontEnum(); + + for (key in obj) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + + if (_hasDontEnumBug) { + while (key = _dontEnums[i++]) { + // since we aren't using hasOwn check we need to make sure the + // property was overwritten + if (obj[key] !== Object.prototype[key]) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + } + } + } + + function exec(fn, obj, key, thisObj){ + return fn.call(thisObj, obj[key], key, obj); + } + + return forIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js new file mode 100644 index 00000000..b40cbaf1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js @@ -0,0 +1,18 @@ +define(['./hasOwn', './forIn'], function (hasOwn, forIn) { + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forOwn(obj, fn, thisObj){ + forIn(obj, function(val, key){ + if (hasOwn(obj, key)) { + return fn.call(thisObj, obj[key], key, obj); + } + }); + } + + return forOwn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js new file mode 100644 index 00000000..60fee3dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js @@ -0,0 +1,18 @@ +define(['./forIn'], function (forIn) { + + /** + * return a list of all enumerable properties that have function values + */ + function functions(obj){ + var keys = []; + forIn(obj, function(val, key){ + if (typeof val === 'function'){ + keys.push(key); + } + }); + return keys.sort(); + } + + return functions; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/get.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/get.js new file mode 100644 index 00000000..ca80b059 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/get.js @@ -0,0 +1,20 @@ +define(function () { + + /** + * get "nested" object property + */ + function get(obj, prop){ + var parts = prop.split('.'), + last = parts.pop(); + + while (prop = parts.shift()) { + obj = obj[prop]; + if (typeof obj !== 'object') return; + } + + return obj[last]; + } + + return get; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/has.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/has.js new file mode 100644 index 00000000..cc29817f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/has.js @@ -0,0 +1,15 @@ +define(['./get'], function (get) { + + var UNDEF; + + /** + * Check if object has nested property. + */ + function has(obj, prop){ + return get(obj, prop) !== UNDEF; + } + + return has; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js new file mode 100644 index 00000000..5c53bcf2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js @@ -0,0 +1,12 @@ +define(function () { + + /** + * Safer Object.hasOwnProperty + */ + function hasOwn(obj, prop){ + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + return hasOwn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js new file mode 100644 index 00000000..ed7c4f91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object keys + */ + var keys = Object.keys || function (obj) { + var keys = []; + forOwn(obj, function(val, key){ + keys.push(key); + }); + return keys; + }; + + return keys; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/map.js new file mode 100644 index 00000000..2958f6b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/map.js @@ -0,0 +1,17 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Creates a new object where all the values are the result of calling + * `callback`. + */ + function mapValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(val, key, obj) { + output[key] = callback(val, key, obj); + }); + + return output; + } + return mapValues; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js new file mode 100644 index 00000000..73ff427c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js @@ -0,0 +1,20 @@ +define(['./forOwn'], function (forOwn) { + + /** + * checks if a object contains all given properties/values + */ + function matches(target, props){ + // can't use "object/every" because of circular dependency + var result = true; + forOwn(props, function(val, key){ + if (target[key] !== val) { + // break loop at first difference + return (result = false); + } + }); + return result; + } + + return matches; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/max.js new file mode 100644 index 00000000..ef311dcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/max.js @@ -0,0 +1,11 @@ +define(['../array/max', './values'], function(arrMax, values) { + + /** + * Returns maximum value inside object. + */ + function max(obj, compareFn) { + return arrMax(values(obj), compareFn); + } + + return max; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js new file mode 100644 index 00000000..d7cfedec --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js @@ -0,0 +1,38 @@ +define(['./hasOwn', '../lang/deepClone', '../lang/isObject'], function (hasOwn, deepClone, isObject) { + + /** + * Deep merge objects. + */ + function merge() { + var i = 1, + key, val, obj, target; + + // make sure we don't modify source element and it's properties + // objects are passed by reference + target = deepClone( arguments[0] ); + + while (obj = arguments[i++]) { + for (key in obj) { + if ( ! hasOwn(obj, key) ) { + continue; + } + + val = obj[key]; + + if ( isObject(val) && isObject(target[key]) ){ + // inception, deep merge objects + target[key] = merge(target[key], val); + } else { + // make sure arrays, regexp, date, objects are cloned + target[key] = deepClone(val); + } + + } + } + + return target; + } + + return merge; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/min.js new file mode 100644 index 00000000..9fb4c1a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/min.js @@ -0,0 +1,11 @@ +define(['../array/min', './values'], function(arrMin, values) { + + /** + * Returns minimum value inside object. + */ + function min(obj, iterator) { + return arrMin(values(obj), iterator); + } + + return min; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js new file mode 100644 index 00000000..6210b7e7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js @@ -0,0 +1,28 @@ +define(['./forOwn'], function(forOwn){ + + /** + * Combine properties from all the objects into first one. + * - This method affects target object in place, if you want to create a new Object pass an empty object as first param. + * @param {object} target Target Object + * @param {...object} objects Objects to be combined (0...n objects). + * @return {object} Target Object. + */ + function mixIn(target, objects){ + var i = 0, + n = arguments.length, + obj; + while(++i < n){ + obj = arguments[i]; + if (obj != null) { + forOwn(obj, copyProp, target); + } + } + return target; + } + + function copyProp(val, key){ + this[key] = val; + } + + return mixIn; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js new file mode 100644 index 00000000..7ed65db8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js @@ -0,0 +1,19 @@ +define(['../array/forEach'], function (forEach) { + + /** + * Create nested object if non-existent + */ + function namespace(obj, path){ + if (!path) return obj; + forEach(path.split('.'), function(key){ + if (!obj[key]) { + obj[key] = {}; + } + obj = obj[key]; + }); + return obj; + } + + return namespace; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js new file mode 100644 index 00000000..76e22bfc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js @@ -0,0 +1,18 @@ +define(function(){ + + /** + * Return a copy of the object, filtered to only have values for the whitelisted keys. + */ + function pick(obj, var_keys){ + var keys = typeof arguments[1] !== 'string'? arguments[1] : Array.prototype.slice.call(arguments, 1), + out = {}, + i = 0, key; + while (key = keys[i++]) { + out[key] = obj[key]; + } + return out; + } + + return pick; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js new file mode 100644 index 00000000..d47744bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js @@ -0,0 +1,12 @@ +define(['./map', '../function/prop'], function (map, prop) { + + /** + * Extract a list of property values. + */ + function pluck(obj, propName){ + return map(obj, prop(propName)); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js new file mode 100644 index 00000000..d3a57788 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js @@ -0,0 +1,28 @@ +define(['./forOwn', './size'], function(forOwn, size) { + + /** + * Object reduce + */ + function reduce(obj, callback, memo, thisObj) { + var initial = arguments.length > 2; + + if (!size(obj) && !initial) { + throw new Error('reduce of empty object with no initial value'); + } + + forOwn(obj, function(value, key, list) { + if (!initial) { + memo = value; + initial = true; + } + else { + memo = callback.call(thisObj, memo, value, key, list); + } + }); + + return memo; + } + + return reduce; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js new file mode 100644 index 00000000..84296428 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js @@ -0,0 +1,15 @@ +define(['./filter', '../function/makeIterator_'], function (filter, makeIterator) { + + /** + * Object reject + */ + function reject(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + return filter(obj, function(value, index, obj) { + return !callback(value, index, obj); + }, thisObj); + } + + return reject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/set.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/set.js new file mode 100644 index 00000000..b8fa25a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/set.js @@ -0,0 +1,17 @@ +define(['./namespace'], function (namespace) { + + /** + * set "nested" object property + */ + function set(obj, prop, val){ + var parts = (/^(.+)\.(.+)$/).exec(prop); + if (parts){ + namespace(obj, parts[1])[parts[2]] = val; + } else { + obj[prop] = val; + } + } + + return set; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/size.js new file mode 100644 index 00000000..c6e377cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/size.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object size + */ + function size(obj) { + var count = 0; + forOwn(obj, function(){ + count++; + }); + return count; + } + + return size; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/some.js new file mode 100644 index 00000000..1bd6fdae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/some.js @@ -0,0 +1,20 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Object some + */ + function some(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + forOwn(obj, function(val, key) { + if (callback(val, key, obj)) { + result = true; + return false; // break + } + }); + return result; + } + + return some; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js new file mode 100644 index 00000000..787fc19a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js @@ -0,0 +1,23 @@ +define(['./has'], function (has) { + + /** + * Unset object property. + */ + function unset(obj, prop){ + if (has(obj, prop)) { + var parts = prop.split('.'), + last = parts.pop(); + while (prop = parts.shift()) { + obj = obj[prop]; + } + return (delete obj[last]); + + } else { + // if property doesn't exist treat as deleted + return true; + } + } + + return unset; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/values.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/values.js new file mode 100644 index 00000000..b311fd09 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/object/values.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object values + */ + function values(obj) { + var vals = []; + forOwn(obj, function(val, key){ + vals.push(val); + }); + return vals; + } + + return values; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString.js new file mode 100644 index 00000000..44346127 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString.js @@ -0,0 +1,15 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'contains' : require('./queryString/contains'), + 'decode' : require('./queryString/decode'), + 'encode' : require('./queryString/encode'), + 'getParam' : require('./queryString/getParam'), + 'getQuery' : require('./queryString/getQuery'), + 'parse' : require('./queryString/parse'), + 'setParam' : require('./queryString/setParam') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js new file mode 100644 index 00000000..a6d11cce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js @@ -0,0 +1,12 @@ +define(['./getQuery'], function (getQuery) { + + /** + * Checks if query string contains parameter. + */ + function contains(url, paramName) { + var regex = new RegExp('(\\?|&)'+ paramName +'=', 'g'); //matches `?param=` or `¶m=` + return regex.test(getQuery(url)); + } + + return contains; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js new file mode 100644 index 00000000..02bc1609 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js @@ -0,0 +1,20 @@ +define(['../string/typecast', '../lang/isString'], function (typecast, isString) { + + /** + * Decode query string into an object of keys => vals. + */ + function decode(queryStr, shouldTypecast) { + var queryArr = (queryStr || '').replace('?', '').split('&'), + n = queryArr.length, + obj = {}, + item, val; + while (n--) { + item = queryArr[n].split('='); + val = shouldTypecast === false? item[1] : typecast(item[1]); + obj[item[0]] = isString(val)? decodeURIComponent(val) : val; + } + return obj; + } + + return decode; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js new file mode 100644 index 00000000..bd72a5b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js @@ -0,0 +1,15 @@ +define(['../object/forOwn'], function (forOwn) { + + /** + * Encode object into a query string. + */ + function encode(obj){ + var query = []; + forOwn(obj, function(val, key){ + query.push( key +'='+ encodeURIComponent(val) ); + }); + return (query.length)? '?'+ query.join('&') : ''; + } + + return encode; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js new file mode 100644 index 00000000..d9813724 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js @@ -0,0 +1,14 @@ +define(['../string/typecast', './getQuery'], function (typecast, getQuery) { + + /** + * Get query parameter value. + */ + function getParam(url, param, shouldTypecast){ + var regexp = new RegExp('(\\?|&)'+ param + '=([^&]*)'), //matches `?param=value` or `¶m=value`, value = $2 + result = regexp.exec( getQuery(url) ), + val = (result && result[2])? result[2] : null; + return shouldTypecast === false? val : typecast(val); + } + + return getParam; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js new file mode 100644 index 00000000..aa3d99f3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * Gets full query as string with all special chars decoded. + */ + function getQuery(url) { + url = url.replace(/#.*/, ''); //removes hash (to avoid getting hash query) + var queryString = /\?[a-zA-Z0-9\=\&\%\$\-\_\.\+\!\*\'\(\)\,]+/.exec(url); //valid chars according to: http://www.ietf.org/rfc/rfc1738.txt + return (queryString)? decodeURIComponent(queryString[0]) : ''; + } + + return getQuery; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js new file mode 100644 index 00000000..ac153e3f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js @@ -0,0 +1,12 @@ +define(['./decode', './getQuery'], function (decode, getQuery) { + + /** + * Get query string, parses and decodes it. + */ + function parse(url, shouldTypecast) { + return decode(getQuery(url), shouldTypecast); + } + + return parse; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js new file mode 100644 index 00000000..97081aa7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Set query string parameter value + */ + function setParam(url, paramName, value){ + url = url || ''; + + var re = new RegExp('(\\?|&)'+ paramName +'=[^&]*' ); + var param = paramName +'='+ encodeURIComponent( value ); + + if ( re.test(url) ) { + return url.replace(re, '$1'+ param); + } else { + if (url.indexOf('?') === -1) { + url += '?'; + } + if (url.indexOf('=') !== -1) { + url += '&'; + } + return url + param; + } + + } + + return setParam; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random.js new file mode 100644 index 00000000..b2641ee3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random.js @@ -0,0 +1,16 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'choice' : require('./random/choice'), + 'guid' : require('./random/guid'), + 'rand' : require('./random/rand'), + 'randBit' : require('./random/randBit'), + 'randHex' : require('./random/randHex'), + 'randInt' : require('./random/randInt'), + 'randSign' : require('./random/randSign'), + 'random' : require('./random/random') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js new file mode 100644 index 00000000..0d0c38df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js @@ -0,0 +1,14 @@ +define(['./randInt', '../lang/isArray'], function (randInt, isArray) { + + /** + * Returns a random element from the supplied arguments + * or from the array (if single argument is an array). + */ + function choice(items) { + var target = (arguments.length === 1 && isArray(items))? items : arguments; + return target[ randInt(0, target.length - 1) ]; + } + + return choice; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js new file mode 100644 index 00000000..82f3a2db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js @@ -0,0 +1,23 @@ +define(['./randHex', './choice'], function (randHex, choice) { + + /** + * Returns pseudo-random guid (UUID v4) + * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random + * by default and sequences can be predicted in some cases. See the + * "random/random" documentation for more info about it and how to replace + * the default PRNG. + */ + function guid() { + return ( + randHex(8)+'-'+ + randHex(4)+'-'+ + // v4 UUID always contain "4" at this position to specify it was + // randomly generated + '4' + randHex(3) +'-'+ + // v4 UUID always contain chars [a,b,8,9] at this position + choice(8, 9, 'a', 'b') + randHex(3)+'-'+ + randHex(12) + ); + } + return guid; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js new file mode 100644 index 00000000..b8c231dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js @@ -0,0 +1,13 @@ +define(['./random', '../number/MIN_INT', '../number/MAX_INT'], function(random, MIN_INT, MAX_INT){ + + /** + * Returns random number inside range + */ + function rand(min, max){ + min = min == null? MIN_INT : min; + max = max == null? MAX_INT : max; + return min + (max - min) * random(); + } + + return rand; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js new file mode 100644 index 00000000..b3422d2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js @@ -0,0 +1,11 @@ +define(['./random'], function (random) { + + /** + * Returns random bit (0 or 1) + */ + function randomBit() { + return random() > 0.5? 1 : 0; + } + + return randomBit; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js new file mode 100644 index 00000000..6e9bf1c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js @@ -0,0 +1,19 @@ +define(['./choice'], function (choice) { + + var _chars = '0123456789abcdef'.split(''); + + /** + * Returns a random hexadecimal string + */ + function randHex(size){ + size = size && size > 0? size : 6; + var str = ''; + while (size--) { + str += choice(_chars); + } + return str; + } + + return randHex; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js new file mode 100644 index 00000000..1750e9de --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js @@ -0,0 +1,16 @@ +define(['../number/MIN_INT', '../number/MAX_INT', './rand'], function(MIN_INT, MAX_INT, rand){ + + /** + * Gets random integer inside range or snap to min/max values. + */ + function randInt(min, max){ + min = min == null? MIN_INT : ~~min; + max = max == null? MAX_INT : ~~max; + // can't be max + 0.5 otherwise it will round up if `rand` + // returns `max` causing it to overflow range. + // -0.5 and + 0.49 are required to avoid bias caused by rounding + return Math.round( rand(min - 0.5, max + 0.499999999999) ); + } + + return randInt; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js new file mode 100644 index 00000000..4141cdf6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js @@ -0,0 +1,11 @@ +define(['./random'], function (random) { + + /** + * Returns random sign (-1 or 1) + */ + function randomSign() { + return random() > 0.5? 1 : -1; + } + + return randomSign; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/random.js new file mode 100644 index 00000000..4270822e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/random/random.js @@ -0,0 +1,18 @@ +define(function () { + + /** + * Just a wrapper to Math.random. No methods inside mout/random should call + * Math.random() directly so we can inject the pseudo-random number + * generator if needed (ie. in case we need a seeded random or a better + * algorithm than the native one) + */ + function random(){ + return random.get(); + } + + // we expose the method so it can be swapped if needed + random.get = Math.random; + + return random; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string.js new file mode 100644 index 00000000..3f5fd804 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string.js @@ -0,0 +1,45 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'WHITE_SPACES' : require('./string/WHITE_SPACES'), + 'camelCase' : require('./string/camelCase'), + 'contains' : require('./string/contains'), + 'crop' : require('./string/crop'), + 'endsWith' : require('./string/endsWith'), + 'escapeHtml' : require('./string/escapeHtml'), + 'escapeRegExp' : require('./string/escapeRegExp'), + 'escapeUnicode' : require('./string/escapeUnicode'), + 'hyphenate' : require('./string/hyphenate'), + 'interpolate' : require('./string/interpolate'), + 'lowerCase' : require('./string/lowerCase'), + 'lpad' : require('./string/lpad'), + 'ltrim' : require('./string/ltrim'), + 'makePath' : require('./string/makePath'), + 'normalizeLineBreaks' : require('./string/normalizeLineBreaks'), + 'pascalCase' : require('./string/pascalCase'), + 'properCase' : require('./string/properCase'), + 'removeNonASCII' : require('./string/removeNonASCII'), + 'removeNonWord' : require('./string/removeNonWord'), + 'repeat' : require('./string/repeat'), + 'replace' : require('./string/replace'), + 'replaceAccents' : require('./string/replaceAccents'), + 'rpad' : require('./string/rpad'), + 'rtrim' : require('./string/rtrim'), + 'sentenceCase' : require('./string/sentenceCase'), + 'slugify' : require('./string/slugify'), + 'startsWith' : require('./string/startsWith'), + 'stripHtmlTags' : require('./string/stripHtmlTags'), + 'trim' : require('./string/trim'), + 'truncate' : require('./string/truncate'), + 'typecast' : require('./string/typecast'), + 'unCamelCase' : require('./string/unCamelCase'), + 'underscore' : require('./string/underscore'), + 'unescapeHtml' : require('./string/unescapeHtml'), + 'unescapeUnicode' : require('./string/unescapeUnicode'), + 'unhyphenate' : require('./string/unhyphenate'), + 'upperCase' : require('./string/upperCase') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js new file mode 100644 index 00000000..e830d86d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js @@ -0,0 +1,12 @@ +define(function() { + /** + * Contains all Unicode white-spaces. Taken from + * http://en.wikipedia.org/wiki/Whitespace_character. + */ + return [ + ' ', '\n', '\r', '\t', '\f', '\v', '\u00A0', '\u1680', '\u180E', + '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', + '\u2007', '\u2008', '\u2009', '\u200A', '\u2028', '\u2029', '\u202F', + '\u205F', '\u3000' + ]; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js new file mode 100644 index 00000000..02e6c04d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js @@ -0,0 +1,16 @@ +define(['../lang/toString', './replaceAccents', './removeNonWord', './upperCase', './lowerCase'], function(toString, replaceAccents, removeNonWord, upperCase, lowerCase){ + /** + * Convert string to camelCase text. + */ + function camelCase(str){ + str = toString(str); + str = replaceAccents(str); + str = removeNonWord(str) + .replace(/[\-_]/g, ' ') //convert all hyphens and underscores to spaces + .replace(/\s[a-z]/g, upperCase) //convert first char of each word to UPPERCASE + .replace(/\s+/g, '') //remove spaces + .replace(/^[A-Z]/g, lowerCase); //convert first char to lowercase + return str; + } + return camelCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js new file mode 100644 index 00000000..825b5a5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js @@ -0,0 +1,14 @@ +define(['../lang/toString'], function(toString) { + + /** + * Searches for a given substring + */ + function contains(str, substring, fromIndex){ + str = toString(str); + substring = toString(substring); + return str.indexOf(substring, fromIndex) !== -1; + } + + return contains; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js new file mode 100644 index 00000000..3c073f05 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './truncate'], function (toString, truncate) { + /** + * Truncate string at full words. + */ + function crop(str, maxChars, append) { + str = toString(str); + return truncate(str, maxChars, append, true); + } + + return crop; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js new file mode 100644 index 00000000..31a73f20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function(toString) { + /** + * Checks if string ends with specified suffix. + */ + function endsWith(str, suffix) { + str = toString(str); + suffix = toString(suffix); + + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + + return endsWith; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js new file mode 100644 index 00000000..de34b61b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function(toString) { + + /** + * Escapes a string for insertion into HTML. + */ + function escapeHtml(str){ + str = toString(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + return str; + } + + return escapeHtml; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js new file mode 100644 index 00000000..32facac0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js @@ -0,0 +1,15 @@ +define(['../lang/toString'], function(toString) { + + var ESCAPE_CHARS = /[\\.+*?\^$\[\](){}\/'#]/g; + + /** + * Escape RegExp string chars. + */ + function escapeRegExp(str) { + str = toString(str); + return str.replace(ESCAPE_CHARS,'\\$&'); + } + + return escapeRegExp; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js new file mode 100644 index 00000000..bd5e8c4c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js @@ -0,0 +1,21 @@ +define(['../lang/toString'], function(toString) { + + /** + * Escape string into unicode sequences + */ + function escapeUnicode(str, shouldEscapePrintable){ + str = toString(str); + return str.replace(/[\s\S]/g, function(ch){ + // skip printable ASCII chars if we should not escape them + if (!shouldEscapePrintable && (/[\x20-\x7E]/).test(ch)) { + return ch; + } + // we use "000" and slice(-4) for brevity, need to pad zeros, + // unicode escape always have 4 chars after "\u" + return '\\u'+ ('000'+ ch.charCodeAt(0).toString(16)).slice(-4); + }); + } + + return escapeUnicode; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js new file mode 100644 index 00000000..679c405c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js @@ -0,0 +1,12 @@ +define(['../lang/toString', './slugify', './unCamelCase'], function(toString, slugify, unCamelCase){ + /** + * Replaces spaces with hyphens, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function hyphenate(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "-"); + } + + return hyphenate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js new file mode 100644 index 00000000..ecb8ba80 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function(toString) { + + var stache = /\{\{(\w+)\}\}/g; //mustache-like + + /** + * String interpolation + */ + function interpolate(template, replacements, syntax){ + template = toString(template); + var replaceFn = function(match, prop){ + return (prop in replacements)? toString(replacements[prop]) : ''; + }; + return template.replace(syntax || stache, replaceFn); + } + + return interpolate; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js new file mode 100644 index 00000000..b045d69c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * "Safer" String.toLowerCase() + */ + function lowerCase(str){ + str = toString(str); + return str.toLowerCase(); + } + + return lowerCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js new file mode 100644 index 00000000..ea4f5fbf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js @@ -0,0 +1,16 @@ +define(['../lang/toString', './repeat'], function(toString, repeat) { + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function lpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + + return ((str.length < minLen) + ? repeat(ch, minLen - str.length) + str : str); + } + + return lpad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js new file mode 100644 index 00000000..477df953 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js @@ -0,0 +1,33 @@ +define(['../lang/toString', './WHITE_SPACES'], function(toString, WHITE_SPACES){ + /** + * Remove chars from beginning of string. + */ + function ltrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var start = 0, + len = str.length, + charLen = chars.length, + found = true, + i, c; + + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + + return (start >= len) ? '' : str.substr(start, len); + } + + return ltrim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js new file mode 100644 index 00000000..7aa7baba --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js @@ -0,0 +1,13 @@ +define(['../array/join'], function(join){ + + /** + * Group arguments as path segments, if any of the args is `null` or an + * empty string it will be ignored from resulting path. + */ + function makePath(var_args){ + var result = join(Array.prototype.slice.call(arguments), '/'); + return result.replace(/\/{2,}/g, '/'); + } + + return makePath; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js new file mode 100644 index 00000000..44e4194f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function (toString) { + + /** + * Convert line-breaks from DOS/MAC to a single standard (UNIX by default) + */ + function normalizeLineBreaks(str, lineEnd) { + str = toString(str); + lineEnd = lineEnd || '\n'; + + return str + .replace(/\r\n/g, lineEnd) // DOS + .replace(/\r/g, lineEnd) // Mac + .replace(/\n/g, lineEnd); // Unix + } + + return normalizeLineBreaks; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js new file mode 100644 index 00000000..ead9ead4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './camelCase', './upperCase'], function(toString, camelCase, upperCase){ + /** + * camelCase + UPPERCASE first char + */ + function pascalCase(str){ + str = toString(str); + return camelCase(str).replace(/^[a-z]/, upperCase); + } + + return pascalCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js new file mode 100644 index 00000000..2987b507 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './lowerCase', './upperCase'], function(toString, lowerCase, upperCase){ + /** + * UPPERCASE first char of each word. + */ + function properCase(str){ + str = toString(str); + return lowerCase(str).replace(/^\w|\s\w/g, upperCase); + } + + return properCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js new file mode 100644 index 00000000..4905869d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js @@ -0,0 +1,14 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove non-printable ASCII chars + */ + function removeNonASCII(str){ + str = toString(str); + + // Matches non-printable ASCII chars - + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + return str.replace(/[^\x20-\x7E]/g, ''); + } + + return removeNonASCII; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js new file mode 100644 index 00000000..2b1a2040 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove non-word chars. + */ + function removeNonWord(str){ + str = toString(str); + return str.replace(/[^0-9a-zA-Z\xC0-\xFF \-_]/g, ''); + } + + return removeNonWord; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js new file mode 100644 index 00000000..02f5659f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function(toString){ + + /** + * Repeat string n times + */ + function repeat(str, n){ + str = toString(str); + return (new Array(n + 1)).join(str); + } + + return repeat; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js new file mode 100644 index 00000000..8b762fdc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js @@ -0,0 +1,32 @@ +define(['../lang/toString', '../lang/toArray'], function (toString, toArray) { + + /** + * Replace string(s) with the replacement(s) in the source. + */ + function replace(str, search, replacements) { + str = toString(str); + search = toArray(search); + replacements = toArray(replacements); + + var searchLength = search.length, + replacementsLength = replacements.length; + + if (replacementsLength !== 1 && searchLength !== replacementsLength) { + throw new Error('Unequal number of searches and replacements'); + } + + var i = -1; + while (++i < searchLength) { + // Use the first replacement for all searches if only one + // replacement is provided + str = str.replace( + search[i], + replacements[(replacementsLength === 1) ? 0 : i]); + } + + return str; + } + + return replace; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js new file mode 100644 index 00000000..3a63f55a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js @@ -0,0 +1,36 @@ +define(['../lang/toString'], function(toString){ + /** + * Replaces all accented chars with regular ones + */ + function replaceAccents(str){ + str = toString(str); + + // verifies if the String has accents and replace them + if (str.search(/[\xC0-\xFF]/g) > -1) { + str = str + .replace(/[\xC0-\xC5]/g, "A") + .replace(/[\xC6]/g, "AE") + .replace(/[\xC7]/g, "C") + .replace(/[\xC8-\xCB]/g, "E") + .replace(/[\xCC-\xCF]/g, "I") + .replace(/[\xD0]/g, "D") + .replace(/[\xD1]/g, "N") + .replace(/[\xD2-\xD6\xD8]/g, "O") + .replace(/[\xD9-\xDC]/g, "U") + .replace(/[\xDD]/g, "Y") + .replace(/[\xDE]/g, "P") + .replace(/[\xE0-\xE5]/g, "a") + .replace(/[\xE6]/g, "ae") + .replace(/[\xE7]/g, "c") + .replace(/[\xE8-\xEB]/g, "e") + .replace(/[\xEC-\xEF]/g, "i") + .replace(/[\xF1]/g, "n") + .replace(/[\xF2-\xF6\xF8]/g, "o") + .replace(/[\xF9-\xFC]/g, "u") + .replace(/[\xFE]/g, "p") + .replace(/[\xFD\xFF]/g, "y"); + } + return str; + } + return replaceAccents; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js new file mode 100644 index 00000000..2efd9c88 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js @@ -0,0 +1,14 @@ +define(['../lang/toString', './repeat'], function (toString, repeat) { + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function rpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + return (str.length < minLen)? str + repeat(ch, minLen - str.length) : str; + } + + return rpad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js new file mode 100644 index 00000000..a4cc282d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js @@ -0,0 +1,32 @@ +define(['../lang/toString', './WHITE_SPACES'], function(toString, WHITE_SPACES){ + /** + * Remove chars from end of string. + */ + function rtrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var end = str.length - 1, + charLen = chars.length, + found = true, + i, c; + + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + + return (end >= 0) ? str.substring(0, end + 1) : ''; + } + + return rtrim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js new file mode 100644 index 00000000..cfe45af5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js @@ -0,0 +1,13 @@ +define(['../lang/toString', './lowerCase', './upperCase'], function(toString, lowerCase, upperCase){ + /** + * UPPERCASE first char of each sentence and lowercase other chars. + */ + function sentenceCase(str){ + str = toString(str); + + // Replace first char of each sentence (new line or after '.\s+') to + // UPPERCASE + return lowerCase(str).replace(/(^\w)|\.\s+(\w)/gm, upperCase); + } + return sentenceCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js new file mode 100644 index 00000000..c6d68c7e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js @@ -0,0 +1,21 @@ +define(['../lang/toString', './replaceAccents', './removeNonWord', './trim'], function(toString, replaceAccents, removeNonWord, trim){ + /** + * Convert to lower case, remove accents, remove non-word chars and + * replace spaces with the specified delimeter. + * Does not split camelCase text. + */ + function slugify(str, delimeter){ + str = toString(str); + + if (delimeter == null) { + delimeter = "-"; + } + str = replaceAccents(str); + str = removeNonWord(str); + str = trim(str) //should come after removeNonWord + .replace(/ +/g, delimeter) //replace spaces with delimeter + .toLowerCase(); + return str; + } + return slugify; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js new file mode 100644 index 00000000..88ae5453 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function (toString) { + /** + * Checks if string starts with specified prefix. + */ + function startsWith(str, prefix) { + str = toString(str); + prefix = toString(prefix); + + return str.indexOf(prefix) === 0; + } + + return startsWith; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js new file mode 100644 index 00000000..e8da956d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove HTML tags from string. + */ + function stripHtmlTags(str){ + str = toString(str); + + return str.replace(/<[^>]*>/g, ''); + } + return stripHtmlTags; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js new file mode 100644 index 00000000..55526041 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js @@ -0,0 +1,12 @@ +define(['../lang/toString', './WHITE_SPACES', './ltrim', './rtrim'], function(toString, WHITE_SPACES, ltrim, rtrim){ + /** + * Remove white-spaces from beginning and end of string. + */ + function trim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + return ltrim(rtrim(str, chars), chars); + } + + return trim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js new file mode 100644 index 00000000..34000d9f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js @@ -0,0 +1,20 @@ +define(['../lang/toString', './trim'], function(toString, trim){ + /** + * Limit number of chars. + */ + function truncate(str, maxChars, append, onlyFullWords){ + str = toString(str); + append = append || '...'; + maxChars = onlyFullWords? maxChars + 1 : maxChars; + + str = trim(str); + if(str.length <= maxChars){ + return str; + } + str = str.substr(0, maxChars - append.length); + //crop at last space or remove trailing whitespace + str = onlyFullWords? str.substr(0, str.lastIndexOf(' ')) : trim(str); + return str + append; + } + return truncate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js new file mode 100644 index 00000000..a7c83153 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js @@ -0,0 +1,29 @@ +define(function () { + + var UNDEF; + + /** + * Parses string and convert it into a native value. + */ + function typecast(val) { + var r; + if ( val === null || val === 'null' ) { + r = null; + } else if ( val === 'true' ) { + r = true; + } else if ( val === 'false' ) { + r = false; + } else if ( val === UNDEF || val === 'undefined' ) { + r = UNDEF; + } else if ( val === '' || isNaN(val) ) { + //isNaN('') returns false + r = val; + } else { + //parseFloat(null || '') returns NaN + r = parseFloat(val); + } + return r; + } + + return typecast; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js new file mode 100644 index 00000000..eeef39b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js @@ -0,0 +1,23 @@ +define(['../lang/toString'], function(toString){ + + var CAMEL_CASE_BORDER = /([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g; + + /** + * Add space between camelCase text. + */ + function unCamelCase(str, delimiter){ + if (delimiter == null) { + delimiter = ' '; + } + + function join(str, c1, c2) { + return c1 + delimiter + c2; + } + + str = toString(str); + str = str.replace(CAMEL_CASE_BORDER, join); + str = str.toLowerCase(); //add space between camelCase text + return str; + } + return unCamelCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js new file mode 100644 index 00000000..75dd4649 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './slugify', './unCamelCase'], function(toString, slugify, unCamelCase){ + /** + * Replaces spaces with underscores, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function underscore(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "_"); + } + return underscore; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js new file mode 100644 index 00000000..173c69c2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function (toString) { + + /** + * Unescapes HTML special chars + */ + function unescapeHtml(str){ + str = toString(str) + .replace(/&/g , '&') + .replace(/</g , '<') + .replace(/>/g , '>') + .replace(/'/g , "'") + .replace(/"/g, '"'); + return str; + } + + return unescapeHtml; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js new file mode 100644 index 00000000..d4a7ba1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js @@ -0,0 +1,16 @@ +define(['../lang/toString'], function(toString) { + + /** + * Unescape unicode char sequences + */ + function unescapeUnicode(str){ + str = toString(str); + return str.replace(/\\u[0-9a-f]{4}/g, function(ch){ + var code = parseInt(ch.slice(2), 16); + return String.fromCharCode(code); + }); + } + + return unescapeUnicode; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js new file mode 100644 index 00000000..6ac2fa4c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js @@ -0,0 +1,10 @@ +define(['../lang/toString'], function(toString){ + /** + * Replaces hyphens with spaces. (only hyphens between word chars) + */ + function unhyphenate(str){ + str = toString(str); + return str.replace(/(\w)(-)(\w)/g, '$1 $3'); + } + return unhyphenate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js new file mode 100644 index 00000000..8b2073e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js @@ -0,0 +1,10 @@ +define(['../lang/toString'], function(toString){ + /** + * "Safer" String.toUpperCase() + */ + function upperCase(str){ + str = toString(str); + return str.toUpperCase(); + } + return upperCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time.js new file mode 100644 index 00000000..67c90685 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time.js @@ -0,0 +1,12 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'convert' : require('./time/convert'), + 'now' : require('./time/now'), + 'parseMs' : require('./time/parseMs'), + 'toTimeString' : require('./time/toTimeString') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js new file mode 100644 index 00000000..2de0cf2e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js @@ -0,0 +1,41 @@ +define(function () { + + /** + * convert time into another unit + */ + function convert(val, sourceUnitName, destinationUnitName){ + destinationUnitName = destinationUnitName || 'ms'; + return (val * getUnit(sourceUnitName)) / getUnit(destinationUnitName); + } + + + //TODO: maybe extract to a separate module + function getUnit(unitName){ + switch(unitName){ + case 'ms': + case 'millisecond': + return 1; + case 's': + case 'second': + return 1000; + case 'm': + case 'minute': + return 60000; + case 'h': + case 'hour': + return 3600000; + case 'd': + case 'day': + return 86400000; + case 'w': + case 'week': + return 604800000; + default: + throw new Error('"'+ unitName + '" is not a valid unit'); + } + } + + + return convert; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/now.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/now.js new file mode 100644 index 00000000..a3a38bcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/now.js @@ -0,0 +1,12 @@ +define(function () { + + /** + * Get current time in miliseconds + */ + var now = (typeof Date.now === 'function')? Date.now : function(){ + return +(new Date()); + }; + + return now; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js new file mode 100644 index 00000000..964929ae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js @@ -0,0 +1,17 @@ +define(['../math/countSteps'], function(countSteps){ + + /** + * Parse timestamp into an object. + */ + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + return parseMs; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js new file mode 100644 index 00000000..edf18218 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js @@ -0,0 +1,23 @@ +define(['../math/countSteps', '../number/pad'], function(countSteps, pad){ + + var HOUR = 3600000, + MINUTE = 60000, + SECOND = 1000; + + /** + * Format timestamp into a time string. + */ + function toTimeString(ms){ + var h = ms < HOUR ? 0 : countSteps(ms, HOUR), + m = ms < MINUTE ? 0 : countSteps(ms, MINUTE, 60), + s = ms < SECOND ? 0 : countSteps(ms, SECOND, 60), + str = ''; + + str += h? h + ':' : ''; + str += pad(m, 2) + ':'; + str += pad(s, 2); + + return str; + } + return toTimeString; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string.js new file mode 100644 index 00000000..7f0ca3bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string.js @@ -0,0 +1,45 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'WHITE_SPACES' : require('./string/WHITE_SPACES'), + 'camelCase' : require('./string/camelCase'), + 'contains' : require('./string/contains'), + 'crop' : require('./string/crop'), + 'endsWith' : require('./string/endsWith'), + 'escapeHtml' : require('./string/escapeHtml'), + 'escapeRegExp' : require('./string/escapeRegExp'), + 'escapeUnicode' : require('./string/escapeUnicode'), + 'hyphenate' : require('./string/hyphenate'), + 'interpolate' : require('./string/interpolate'), + 'lowerCase' : require('./string/lowerCase'), + 'lpad' : require('./string/lpad'), + 'ltrim' : require('./string/ltrim'), + 'makePath' : require('./string/makePath'), + 'normalizeLineBreaks' : require('./string/normalizeLineBreaks'), + 'pascalCase' : require('./string/pascalCase'), + 'properCase' : require('./string/properCase'), + 'removeNonASCII' : require('./string/removeNonASCII'), + 'removeNonWord' : require('./string/removeNonWord'), + 'repeat' : require('./string/repeat'), + 'replace' : require('./string/replace'), + 'replaceAccents' : require('./string/replaceAccents'), + 'rpad' : require('./string/rpad'), + 'rtrim' : require('./string/rtrim'), + 'sentenceCase' : require('./string/sentenceCase'), + 'slugify' : require('./string/slugify'), + 'startsWith' : require('./string/startsWith'), + 'stripHtmlTags' : require('./string/stripHtmlTags'), + 'trim' : require('./string/trim'), + 'truncate' : require('./string/truncate'), + 'typecast' : require('./string/typecast'), + 'unCamelCase' : require('./string/unCamelCase'), + 'underscore' : require('./string/underscore'), + 'unescapeHtml' : require('./string/unescapeHtml'), + 'unescapeUnicode' : require('./string/unescapeUnicode'), + 'unhyphenate' : require('./string/unhyphenate'), + 'upperCase' : require('./string/upperCase') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js new file mode 100644 index 00000000..03e01254 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js @@ -0,0 +1,12 @@ + + /** + * Contains all Unicode white-spaces. Taken from + * http://en.wikipedia.org/wiki/Whitespace_character. + */ + module.exports = [ + ' ', '\n', '\r', '\t', '\f', '\v', '\u00A0', '\u1680', '\u180E', + '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', + '\u2007', '\u2008', '\u2009', '\u200A', '\u2028', '\u2029', '\u202F', + '\u205F', '\u3000' + ]; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js new file mode 100644 index 00000000..aadb69a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js @@ -0,0 +1,20 @@ +var toString = require('../lang/toString'); +var replaceAccents = require('./replaceAccents'); +var removeNonWord = require('./removeNonWord'); +var upperCase = require('./upperCase'); +var lowerCase = require('./lowerCase'); + /** + * Convert string to camelCase text. + */ + function camelCase(str){ + str = toString(str); + str = replaceAccents(str); + str = removeNonWord(str) + .replace(/[\-_]/g, ' ') //convert all hyphens and underscores to spaces + .replace(/\s[a-z]/g, upperCase) //convert first char of each word to UPPERCASE + .replace(/\s+/g, '') //remove spaces + .replace(/^[A-Z]/g, lowerCase); //convert first char to lowercase + return str; + } + module.exports = camelCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/contains.js new file mode 100644 index 00000000..cb22cae4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/contains.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); + + /** + * Searches for a given substring + */ + function contains(str, substring, fromIndex){ + str = toString(str); + substring = toString(substring); + return str.indexOf(substring, fromIndex) !== -1; + } + + module.exports = contains; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/crop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/crop.js new file mode 100644 index 00000000..53b93b49 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/crop.js @@ -0,0 +1,12 @@ +var toString = require('../lang/toString'); +var truncate = require('./truncate'); + /** + * Truncate string at full words. + */ + function crop(str, maxChars, append) { + str = toString(str); + return truncate(str, maxChars, append, true); + } + + module.exports = crop; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js new file mode 100644 index 00000000..d504e9dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + /** + * Checks if string ends with specified suffix. + */ + function endsWith(str, suffix) { + str = toString(str); + suffix = toString(suffix); + + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + + module.exports = endsWith; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js new file mode 100644 index 00000000..e67c4b21 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Escapes a string for insertion into HTML. + */ + function escapeHtml(str){ + str = toString(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + return str; + } + + module.exports = escapeHtml; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js new file mode 100644 index 00000000..70cb84ff --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); + + var ESCAPE_CHARS = /[\\.+*?\^$\[\](){}\/'#]/g; + + /** + * Escape RegExp string chars. + */ + function escapeRegExp(str) { + str = toString(str); + return str.replace(ESCAPE_CHARS,'\\$&'); + } + + module.exports = escapeRegExp; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js new file mode 100644 index 00000000..ec649adf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js @@ -0,0 +1,21 @@ +var toString = require('../lang/toString'); + + /** + * Escape string into unicode sequences + */ + function escapeUnicode(str, shouldEscapePrintable){ + str = toString(str); + return str.replace(/[\s\S]/g, function(ch){ + // skip printable ASCII chars if we should not escape them + if (!shouldEscapePrintable && (/[\x20-\x7E]/).test(ch)) { + return ch; + } + // we use "000" and slice(-4) for brevity, need to pad zeros, + // unicode escape always have 4 chars after "\u" + return '\\u'+ ('000'+ ch.charCodeAt(0).toString(16)).slice(-4); + }); + } + + module.exports = escapeUnicode; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js new file mode 100644 index 00000000..95e32436 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); +var slugify = require('./slugify'); +var unCamelCase = require('./unCamelCase'); + /** + * Replaces spaces with hyphens, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function hyphenate(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "-"); + } + + module.exports = hyphenate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js new file mode 100644 index 00000000..ac88fac2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + var stache = /\{\{(\w+)\}\}/g; //mustache-like + + /** + * String interpolation + */ + function interpolate(template, replacements, syntax){ + template = toString(template); + var replaceFn = function(match, prop){ + return (prop in replacements)? toString(replacements[prop]) : ''; + }; + return template.replace(syntax || stache, replaceFn); + } + + module.exports = interpolate; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js new file mode 100644 index 00000000..30bb7ad9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * "Safer" String.toLowerCase() + */ + function lowerCase(str){ + str = toString(str); + return str.toLowerCase(); + } + + module.exports = lowerCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lpad.js new file mode 100644 index 00000000..694d711e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/lpad.js @@ -0,0 +1,17 @@ +var toString = require('../lang/toString'); +var repeat = require('./repeat'); + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function lpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + + return ((str.length < minLen) + ? repeat(ch, minLen - str.length) + str : str); + } + + module.exports = lpad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js new file mode 100644 index 00000000..23d7b33f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js @@ -0,0 +1,34 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); + /** + * Remove chars from beginning of string. + */ + function ltrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var start = 0, + len = str.length, + charLen = chars.length, + found = true, + i, c; + + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + + return (start >= len) ? '' : str.substr(start, len); + } + + module.exports = ltrim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/makePath.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/makePath.js new file mode 100644 index 00000000..69aef310 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/makePath.js @@ -0,0 +1,13 @@ +var join = require('../array/join'); + + /** + * Group arguments as path segments, if any of the args is `null` or an + * empty string it will be ignored from resulting path. + */ + function makePath(var_args){ + var result = join(Array.prototype.slice.call(arguments), '/'); + return result.replace(/\/{2,}/g, '/'); + } + + module.exports = makePath; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js new file mode 100644 index 00000000..8a8dccfd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Convert line-breaks from DOS/MAC to a single standard (UNIX by default) + */ + function normalizeLineBreaks(str, lineEnd) { + str = toString(str); + lineEnd = lineEnd || '\n'; + + return str + .replace(/\r\n/g, lineEnd) // DOS + .replace(/\r/g, lineEnd) // Mac + .replace(/\n/g, lineEnd); // Unix + } + + module.exports = normalizeLineBreaks; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js new file mode 100644 index 00000000..fd190353 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var camelCase = require('./camelCase'); +var upperCase = require('./upperCase'); + /** + * camelCase + UPPERCASE first char + */ + function pascalCase(str){ + str = toString(str); + return camelCase(str).replace(/^[a-z]/, upperCase); + } + + module.exports = pascalCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/properCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/properCase.js new file mode 100644 index 00000000..61636be4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/properCase.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var lowerCase = require('./lowerCase'); +var upperCase = require('./upperCase'); + /** + * UPPERCASE first char of each word. + */ + function properCase(str){ + str = toString(str); + return lowerCase(str).replace(/^\w|\s\w/g, upperCase); + } + + module.exports = properCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js new file mode 100644 index 00000000..fb463816 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); + /** + * Remove non-printable ASCII chars + */ + function removeNonASCII(str){ + str = toString(str); + + // Matches non-printable ASCII chars - + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + return str.replace(/[^\x20-\x7E]/g, ''); + } + + module.exports = removeNonASCII; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js new file mode 100644 index 00000000..bdd153b9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * Remove non-word chars. + */ + function removeNonWord(str){ + str = toString(str); + return str.replace(/[^0-9a-zA-Z\xC0-\xFF \-_]/g, ''); + } + + module.exports = removeNonWord; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/repeat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/repeat.js new file mode 100644 index 00000000..0f9b4754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/repeat.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + + /** + * Repeat string n times + */ + function repeat(str, n){ + str = toString(str); + return (new Array(n + 1)).join(str); + } + + module.exports = repeat; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replace.js new file mode 100644 index 00000000..14433fc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replace.js @@ -0,0 +1,33 @@ +var toString = require('../lang/toString'); +var toArray = require('../lang/toArray'); + + /** + * Replace string(s) with the replacement(s) in the source. + */ + function replace(str, search, replacements) { + str = toString(str); + search = toArray(search); + replacements = toArray(replacements); + + var searchLength = search.length, + replacementsLength = replacements.length; + + if (replacementsLength !== 1 && searchLength !== replacementsLength) { + throw new Error('Unequal number of searches and replacements'); + } + + var i = -1; + while (++i < searchLength) { + // Use the first replacement for all searches if only one + // replacement is provided + str = str.replace( + search[i], + replacements[(replacementsLength === 1) ? 0 : i]); + } + + return str; + } + + module.exports = replace; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js new file mode 100644 index 00000000..bb221265 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js @@ -0,0 +1,36 @@ +var toString = require('../lang/toString'); + /** + * Replaces all accented chars with regular ones + */ + function replaceAccents(str){ + str = toString(str); + + // verifies if the String has accents and replace them + if (str.search(/[\xC0-\xFF]/g) > -1) { + str = str + .replace(/[\xC0-\xC5]/g, "A") + .replace(/[\xC6]/g, "AE") + .replace(/[\xC7]/g, "C") + .replace(/[\xC8-\xCB]/g, "E") + .replace(/[\xCC-\xCF]/g, "I") + .replace(/[\xD0]/g, "D") + .replace(/[\xD1]/g, "N") + .replace(/[\xD2-\xD6\xD8]/g, "O") + .replace(/[\xD9-\xDC]/g, "U") + .replace(/[\xDD]/g, "Y") + .replace(/[\xDE]/g, "P") + .replace(/[\xE0-\xE5]/g, "a") + .replace(/[\xE6]/g, "ae") + .replace(/[\xE7]/g, "c") + .replace(/[\xE8-\xEB]/g, "e") + .replace(/[\xEC-\xEF]/g, "i") + .replace(/[\xF1]/g, "n") + .replace(/[\xF2-\xF6\xF8]/g, "o") + .replace(/[\xF9-\xFC]/g, "u") + .replace(/[\xFE]/g, "p") + .replace(/[\xFD\xFF]/g, "y"); + } + return str; + } + module.exports = replaceAccents; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rpad.js new file mode 100644 index 00000000..99f6378d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rpad.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var repeat = require('./repeat'); + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function rpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + return (str.length < minLen)? str + repeat(ch, minLen - str.length) : str; + } + + module.exports = rpad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js new file mode 100644 index 00000000..66ba80e9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js @@ -0,0 +1,33 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); + /** + * Remove chars from end of string. + */ + function rtrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var end = str.length - 1, + charLen = chars.length, + found = true, + i, c; + + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + + return (end >= 0) ? str.substring(0, end + 1) : ''; + } + + module.exports = rtrim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js new file mode 100644 index 00000000..354104c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var lowerCase = require('./lowerCase'); +var upperCase = require('./upperCase'); + /** + * UPPERCASE first char of each sentence and lowercase other chars. + */ + function sentenceCase(str){ + str = toString(str); + + // Replace first char of each sentence (new line or after '.\s+') to + // UPPERCASE + return lowerCase(str).replace(/(^\w)|\.\s+(\w)/gm, upperCase); + } + module.exports = sentenceCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/slugify.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/slugify.js new file mode 100644 index 00000000..142f0d9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/slugify.js @@ -0,0 +1,24 @@ +var toString = require('../lang/toString'); +var replaceAccents = require('./replaceAccents'); +var removeNonWord = require('./removeNonWord'); +var trim = require('./trim'); + /** + * Convert to lower case, remove accents, remove non-word chars and + * replace spaces with the specified delimeter. + * Does not split camelCase text. + */ + function slugify(str, delimeter){ + str = toString(str); + + if (delimeter == null) { + delimeter = "-"; + } + str = replaceAccents(str); + str = removeNonWord(str); + str = trim(str) //should come after removeNonWord + .replace(/ +/g, delimeter) //replace spaces with delimeter + .toLowerCase(); + return str; + } + module.exports = slugify; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js new file mode 100644 index 00000000..bce2bd20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + /** + * Checks if string starts with specified prefix. + */ + function startsWith(str, prefix) { + str = toString(str); + prefix = toString(prefix); + + return str.indexOf(prefix) === 0; + } + + module.exports = startsWith; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js new file mode 100644 index 00000000..01d17b0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * Remove HTML tags from string. + */ + function stripHtmlTags(str){ + str = toString(str); + + return str.replace(/<[^>]*>/g, ''); + } + module.exports = stripHtmlTags; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/trim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/trim.js new file mode 100644 index 00000000..9652b0c7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/trim.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); +var ltrim = require('./ltrim'); +var rtrim = require('./rtrim'); + /** + * Remove white-spaces from beginning and end of string. + */ + function trim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + return ltrim(rtrim(str, chars), chars); + } + + module.exports = trim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/truncate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/truncate.js new file mode 100644 index 00000000..a98d6c7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/truncate.js @@ -0,0 +1,21 @@ +var toString = require('../lang/toString'); +var trim = require('./trim'); + /** + * Limit number of chars. + */ + function truncate(str, maxChars, append, onlyFullWords){ + str = toString(str); + append = append || '...'; + maxChars = onlyFullWords? maxChars + 1 : maxChars; + + str = trim(str); + if(str.length <= maxChars){ + return str; + } + str = str.substr(0, maxChars - append.length); + //crop at last space or remove trailing whitespace + str = onlyFullWords? str.substr(0, str.lastIndexOf(' ')) : trim(str); + return str + append; + } + module.exports = truncate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/typecast.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/typecast.js new file mode 100644 index 00000000..c1386a49 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/typecast.js @@ -0,0 +1,29 @@ + + + var UNDEF; + + /** + * Parses string and convert it into a native value. + */ + function typecast(val) { + var r; + if ( val === null || val === 'null' ) { + r = null; + } else if ( val === 'true' ) { + r = true; + } else if ( val === 'false' ) { + r = false; + } else if ( val === UNDEF || val === 'undefined' ) { + r = UNDEF; + } else if ( val === '' || isNaN(val) ) { + //isNaN('') returns false + r = val; + } else { + //parseFloat(null || '') returns NaN + r = parseFloat(val); + } + return r; + } + + module.exports = typecast; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js new file mode 100644 index 00000000..4968f378 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js @@ -0,0 +1,23 @@ +var toString = require('../lang/toString'); + + var CAMEL_CASE_BORDER = /([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g; + + /** + * Add space between camelCase text. + */ + function unCamelCase(str, delimiter){ + if (delimiter == null) { + delimiter = ' '; + } + + function join(str, c1, c2) { + return c1 + delimiter + c2; + } + + str = toString(str); + str = str.replace(CAMEL_CASE_BORDER, join); + str = str.toLowerCase(); //add space between camelCase text + return str; + } + module.exports = unCamelCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/underscore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/underscore.js new file mode 100644 index 00000000..ebd6e2b7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/underscore.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var slugify = require('./slugify'); +var unCamelCase = require('./unCamelCase'); + /** + * Replaces spaces with underscores, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function underscore(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "_"); + } + module.exports = underscore; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js new file mode 100644 index 00000000..52cf3f45 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Unescapes HTML special chars + */ + function unescapeHtml(str){ + str = toString(str) + .replace(/&/g , '&') + .replace(/</g , '<') + .replace(/>/g , '>') + .replace(/'/g , "'") + .replace(/"/g, '"'); + return str; + } + + module.exports = unescapeHtml; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js new file mode 100644 index 00000000..0b7fb73b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js @@ -0,0 +1,16 @@ +var toString = require('../lang/toString'); + + /** + * Unescape unicode char sequences + */ + function unescapeUnicode(str){ + str = toString(str); + return str.replace(/\\u[0-9a-f]{4}/g, function(ch){ + var code = parseInt(ch.slice(2), 16); + return String.fromCharCode(code); + }); + } + + module.exports = unescapeUnicode; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js new file mode 100644 index 00000000..311dfa17 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js @@ -0,0 +1,10 @@ +var toString = require('../lang/toString'); + /** + * Replaces hyphens with spaces. (only hyphens between word chars) + */ + function unhyphenate(str){ + str = toString(str); + return str.replace(/(\w)(-)(\w)/g, '$1 $3'); + } + module.exports = unhyphenate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js new file mode 100644 index 00000000..6c92552c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js @@ -0,0 +1,10 @@ +var toString = require('../lang/toString'); + /** + * "Safer" String.toUpperCase() + */ + function upperCase(str){ + str = toString(str); + return str.toUpperCase(); + } + module.exports = upperCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time.js new file mode 100644 index 00000000..9f533296 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time.js @@ -0,0 +1,12 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'convert' : require('./time/convert'), + 'now' : require('./time/now'), + 'parseMs' : require('./time/parseMs'), + 'toTimeString' : require('./time/toTimeString') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/convert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/convert.js new file mode 100644 index 00000000..852a0f03 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/convert.js @@ -0,0 +1,41 @@ + + + /** + * convert time into another unit + */ + function convert(val, sourceUnitName, destinationUnitName){ + destinationUnitName = destinationUnitName || 'ms'; + return (val * getUnit(sourceUnitName)) / getUnit(destinationUnitName); + } + + + //TODO: maybe extract to a separate module + function getUnit(unitName){ + switch(unitName){ + case 'ms': + case 'millisecond': + return 1; + case 's': + case 'second': + return 1000; + case 'm': + case 'minute': + return 60000; + case 'h': + case 'hour': + return 3600000; + case 'd': + case 'day': + return 86400000; + case 'w': + case 'week': + return 604800000; + default: + throw new Error('"'+ unitName + '" is not a valid unit'); + } + } + + + module.exports = convert; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/now.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/now.js new file mode 100644 index 00000000..effcfbe3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/now.js @@ -0,0 +1,12 @@ + + + /** + * Get current time in miliseconds + */ + var now = (typeof Date.now === 'function')? Date.now : function(){ + return +(new Date()); + }; + + module.exports = now; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js new file mode 100644 index 00000000..6d997976 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js @@ -0,0 +1,17 @@ +var countSteps = require('../math/countSteps'); + + /** + * Parse timestamp into an object. + */ + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + module.exports = parseMs; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js new file mode 100644 index 00000000..101d69fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js @@ -0,0 +1,24 @@ +var countSteps = require('../math/countSteps'); +var pad = require('../number/pad'); + + var HOUR = 3600000, + MINUTE = 60000, + SECOND = 1000; + + /** + * Format timestamp into a time string. + */ + function toTimeString(ms){ + var h = ms < HOUR ? 0 : countSteps(ms, HOUR), + m = ms < MINUTE ? 0 : countSteps(ms, MINUTE, 60), + s = ms < SECOND ? 0 : countSteps(ms, SECOND, 60), + str = ''; + + str += h? h + ':' : ''; + str += pad(m, 2) + ':'; + str += pad(s, 2); + + return str; + } + module.exports = toTimeString; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/.npmignore new file mode 100644 index 00000000..f1250e58 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/.npmignore @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/History.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/History.md new file mode 100644 index 00000000..88119480 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/History.md @@ -0,0 +1,42 @@ + +1.0.0 / 2013-06-18 +================== + + * remove .version + * >=. Closes #19 + * Merge pull request #15 from davglass/readline-osx + * On OSX revert back to terminal hack to avoid a readline bug + +0.1.0 / 2012-09-19 +================== + + * Fixed logic bug that caused bar to jump one extra space at the end [davglass] + * Working with readline impl, even on Windows [davglass] + * Using readline instead of the \r hack [davglass] + +0.0.5 / 2012-08-07 +================== + + * add ability to tick by zero chunks - tick(0) + * fix ETA. Closes #4 [lwille] + +0.0.4 / 2011-11-14 +================== + + * Allow more recent versions of node + +0.0.3 / 2011-04-20 +================== + + * Changed; erase the line when complete + +0.0.2 / 2011-04-20 +================== + + * Added custom tokens support + * Fixed; clear line before writing + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Makefile new file mode 100644 index 00000000..36a3ed7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Makefile @@ -0,0 +1,5 @@ + +test: + @echo "populate me" + +.PHONY: test \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Readme.md new file mode 100644 index 00000000..4e08a49b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/Readme.md @@ -0,0 +1,117 @@ +# node-progress + + Flexible ascii progress bar + +## Installation + + npm install progress + +## Usage + + First we create a `ProgressBar`, giving it a format string + as well as the `total`, telling the progress bar when it will + be considered complete. After that all we need to do is `tick()` appropriately. + +```javascript +var ProgressBar = require('progress'); + +var bar = new ProgressBar(':bar', { total: 10 }); +var timer = setInterval(function(){ + bar.tick(); + if (bar.complete) { + console.log('\ncomplete\n'); + clearInterval(timer); + } +}, 100); +``` + +## Options: + + - `total` total number of ticks to complete + - `width` the displayed width of the progress bar defaulting to total + - `stream` the output stream defaulting to stdout + - `complete` completion character defaulting to "=" + - `incomplete` incomplete character defaulting to "-" + - `clear` option to clear the bar on completion defaulting to false + - `callback` optional function to call when the progress bar completes + +## Tokens: + + - `:bar` the progress bar itself + - `:current` current tick number + - `:total` total ticks + - `:elapsed` time elapsed in seconds + - `:percent` completion percentage + - `:eta` estimated completion time in seconds + +## Examples + +### Download + + In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length. + +```javascript +var ProgressBar = require('../') + , https = require('https'); + +var req = https.request({ + host: 'download.github.com' + , port: 443 + , path: '/visionmedia-node-jscoverage-0d4608a.zip' +}); + +req.on('response', function(res){ + var len = parseInt(res.headers['content-length'], 10); + + console.log(); + var bar = new ProgressBar(' downloading [:bar] :percent :etas', { + complete: '=' + , incomplete: ' ' + , width: 20 + , total: len + }); + + res.on('data', function(chunk){ + bar.tick(chunk.length); + }); + + res.on('end', function(){ + console.log('\n'); + }); +}); + +req.end(); +``` + + The code above will generate a progress bar that looks like this: + +``` +downloading [===== ] 29% 3.7s +``` + +You can see more examples in the `examples` folder. + +## License + +(The MIT License) + +Copyright (c) 2011 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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/index.js new file mode 100644 index 00000000..4449dd30 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/node-progress'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js new file mode 100644 index 00000000..ca0ce4f0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js @@ -0,0 +1,183 @@ +/*! + * node-progress + * Copyright(c) 2011 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Expose `ProgressBar`. + */ + +exports = module.exports = ProgressBar; + +/** + * Initialize a `ProgressBar` with the given + * `fmt` string and `options` or `total`. + * + * Options: + * + * - `total` total number of ticks to complete + * - `width` the displayed width of the progress bar defaulting to total + * - `stream` the output stream defaulting to stdout + * - `complete` completion character defaulting to "=" + * - `incomplete` incomplete character defaulting to "-" + * - `callback` optional function to call when the progress bar completes + * + * Tokens: + * + * - `:bar` the progress bar itself + * - `:current` current tick number + * - `:total` total ticks + * - `:elapsed` time elapsed in seconds + * - `:percent` completion percentage + * - `:eta` eta in seconds + * + * @param {String} fmt + * @param {Object|Number} options or total + * @api public + */ + +function ProgressBar(fmt, options) { + this.rl = require('readline').createInterface({ + input: process.stdin, + output: options.stream || process.stdout + }); + this.rl.setPrompt('', 0); + this.rl.clearLine = function() { + this.write(null, {ctrl: true, name: 'u'}); + }; + + if (typeof(options) == 'number') { + var total = options; + options = {}; + options.total = total; + } else { + options = options || {}; + if ('string' != typeof fmt) throw new Error('format required'); + if ('number' != typeof options.total) throw new Error('total required'); + } + + this.fmt = fmt; + this.curr = 0; + this.total = options.total; + this.width = options.width || this.total; + this.clear = options.clear + this.chars = { + complete: options.complete || '=' + , incomplete: options.incomplete || '-' + }; + this.callback = options.callback || function () {}; +} + +/** + * "tick" the progress bar with optional `len` and + * optional `tokens`. + * + * @param {Number|Object} len or tokens + * @param {Object} tokens + * @api public + */ + +ProgressBar.prototype.tick = function(len, tokens){ + if (len !== 0) + len = len || 1; + + // swap tokens + if ('object' == typeof len) tokens = len, len = 1; + + // start time for eta + if (0 == this.curr) this.start = new Date; + + this.curr += len + this.render(tokens); + + // progress complete + if (this.curr >= this.total) { + this.complete = true; + this.terminate(); + this.callback(this); + return; + } +}; + +/** + * Method to render the progress bar with optional `tokens` to + * place in the progress bar's `fmt` field. + * + * @param {Object} tokens + * @api public + */ + +ProgressBar.prototype.render = function(tokens){ + if(!process.stdout.isTTY) { + return; + } + + var ratio = this.curr / this.total; + ratio = Math.min(Math.max(ratio, 0), 1); + + var percent = ratio * 100 + , complete = Math.round(this.width * ratio) + , incomplete + , elapsed = new Date - this.start + , eta = (percent == 100) ? 0 : elapsed * (this.total / this.curr - 1); + + complete = Array(complete).join(this.chars.complete); + incomplete = Array(this.width - complete.length).join(this.chars.incomplete); + + var str = this.fmt + .replace(':bar', complete + incomplete) + .replace(':current', this.curr) + .replace(':total', this.total) + .replace(':elapsed', isNaN(elapsed) ? "0.0" : (elapsed / 1000).toFixed(1)) + .replace(':eta', (isNaN(eta) || !isFinite(eta)) ? "0.0" : (eta / 1000).toFixed(1)) + .replace(':percent', percent.toFixed(0) + '%'); + + if (tokens) { + for (var key in tokens) { + str = str.replace(':' + key, tokens[key]); + } + } + + this.rl.clearLine(); + this.rl.write(str); +}; + +/** + * "update" the progress bar to represent an exact percentage. + * The ratio (between 0 and 1) specified will be multiplied by `total` and + * floored, representing the closest available "tick." For example, if a + * progress bar has a length of 3 and `update(0.5)` is called, the progress + * will be set to 1. + * + * A ratio of 0.5 will attempt to set the progress to halfway. + * + * @param {Number} ratio The ratio (between 0 and 1 inclusive) to set the + * overall completion to. + * @api public + */ + +ProgressBar.prototype.update = function(ratio, tokens) { + var goal = Math.floor(ratio * this.total); + var delta = goal - this.curr; + + this.tick(delta, tokens); +}; + +/** + * Terminates a progress bar. + * + * @api public + */ + +ProgressBar.prototype.terminate = function() { + this.rl.resume(); + + if (this.clear) { + this.rl.clearLine(); + this.rl.close(); + } else { + this.rl.close(); + console.log(); + } +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/package.json new file mode 100644 index 00000000..c4744b51 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/progress/package.json @@ -0,0 +1,34 @@ +{ + "name": "progress", + "version": "1.1.3", + "description": "Flexible ascii progress bar", + "keywords": [ + "cli", + "progress" + ], + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "dependencies": {}, + "main": "index", + "engines": { + "node": ">=0.4.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-progress" + }, + "readme": "# node-progress\n\n Flexible ascii progress bar\n\n## Installation\n\n npm install progress\n\n## Usage\n\n First we create a `ProgressBar`, giving it a format string\n as well as the `total`, telling the progress bar when it will\n be considered complete. After that all we need to do is `tick()` appropriately.\n\n```javascript\nvar ProgressBar = require('progress');\n\nvar bar = new ProgressBar(':bar', { total: 10 });\nvar timer = setInterval(function(){\n bar.tick();\n if (bar.complete) {\n console.log('\\ncomplete\\n');\n clearInterval(timer);\n }\n}, 100);\n```\n\n## Options:\n\n - `total` total number of ticks to complete\n - `width` the displayed width of the progress bar defaulting to total\n - `stream` the output stream defaulting to stdout\n - `complete` completion character defaulting to \"=\"\n - `incomplete` incomplete character defaulting to \"-\"\n - `clear` option to clear the bar on completion defaulting to false\n - `callback` optional function to call when the progress bar completes\n\n## Tokens:\n\n - `:bar` the progress bar itself\n - `:current` current tick number\n - `:total` total ticks\n - `:elapsed` time elapsed in seconds\n - `:percent` completion percentage\n - `:eta` estimated completion time in seconds\n\n## Examples\n\n### Download\n\n In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length.\n\n```javascript\nvar ProgressBar = require('../')\n , https = require('https');\n\nvar req = https.request({\n host: 'download.github.com'\n , port: 443\n , path: '/visionmedia-node-jscoverage-0d4608a.zip'\n});\n\nreq.on('response', function(res){\n var len = parseInt(res.headers['content-length'], 10);\n\n console.log();\n var bar = new ProgressBar(' downloading [:bar] :percent :etas', {\n complete: '='\n , incomplete: ' '\n , width: 20\n , total: len\n });\n\n res.on('data', function(chunk){\n bar.tick(chunk.length);\n });\n\n res.on('end', function(){\n console.log('\\n');\n });\n});\n\nreq.end();\n```\n\n The code above will generate a progress bar that looks like this:\n\n```\ndownloading [===== ] 29% 3.7s\n```\n\nYou can see more examples in the `examples` folder.\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk `<tj@vision-media.ca>`\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", + "bugs": { + "url": "https://github.com/visionmedia/node-progress/issues" + }, + "homepage": "https://github.com/visionmedia/node-progress", + "_id": "progress@1.1.3", + "dist": { + "shasum": "42f89c5fc3b6f0408a0bdd68993b174f96aababf" + }, + "_from": "progress@~1.1.0", + "_resolved": "https://registry.npmjs.org/progress/-/progress-1.1.3.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS new file mode 100644 index 00000000..247b7543 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS @@ -0,0 +1,6 @@ +# Authors sorted by whether or not they're me. +Isaac Z. Schlueter (http://blog.izs.me) +Wayne Larsen (http://github.com/wvl) +ritch +Marcel Laverdet +Yosef Dinerstein diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/LICENSE new file mode 100644 index 00000000..05a40109 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/LICENSE @@ -0,0 +1,23 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/README.md new file mode 100644 index 00000000..cd123b65 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/README.md @@ -0,0 +1,30 @@ +`rm -rf` for node. + +Install with `npm install rimraf`, or just drop rimraf.js somewhere. + +## API + +`rimraf(f, callback)` + +The callback will be called with an error if there is one. Certain +errors are handled for you: + +* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of + `opts.maxBusyTries` times before giving up. +* `ENOENT` - If the file doesn't exist, rimraf will return + successfully, since your desired outcome is already the case. + +## rimraf.sync + +It can remove stuff synchronously, too. But that's not so good. Use +the async API. It's better. + +## CLI + +If installed with `npm install rimraf -g` it can be used as a global +command `rimraf ` which is useful for cross platform support. + +## mkdirp + +If you need to create a directory recursively, check out +[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/bin.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/bin.js new file mode 100755 index 00000000..29bfa8a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/bin.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +var rimraf = require('./') + +var help = false +var dashdash = false +var args = process.argv.slice(2).filter(function(arg) { + if (dashdash) + return !!arg + else if (arg === '--') + dashdash = true + else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) + help = true + else + return !!arg +}); + +if (help || args.length === 0) { + // If they didn't ask for help, then this is not a "success" + var log = help ? console.log : console.error + log('Usage: rimraf ') + log('') + log(' Deletes all files and folders at "path" recursively.') + log('') + log('Options:') + log('') + log(' -h, --help Display this usage info') + process.exit(help ? 0 : 1) +} else { + args.forEach(function(arg) { + rimraf.sync(arg) + }) +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/package.json new file mode 100644 index 00000000..211cc9dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/package.json @@ -0,0 +1,60 @@ +{ + "name": "rimraf", + "version": "2.2.6", + "main": "rimraf.js", + "description": "A deep deletion module for node (like `rm -rf`)", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "license": { + "type": "MIT", + "url": "https://github.com/isaacs/rimraf/raw/master/LICENSE" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "test": "cd test && bash run.sh" + }, + "bin": { + "rimraf": "./bin.js" + }, + "contributors": [ + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + { + "name": "Wayne Larsen", + "email": "wayne@larsen.st", + "url": "http://github.com/wvl" + }, + { + "name": "ritch", + "email": "skawful@gmail.com" + }, + { + "name": "Marcel Laverdet" + }, + { + "name": "Yosef Dinerstein", + "email": "yosefd@microsoft.com" + } + ], + "readme": "`rm -rf` for node.\n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one. Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n `opts.maxBusyTries` times before giving up.\n* `ENOENT` - If the file doesn't exist, rimraf will return\n successfully, since your desired outcome is already the case.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too. But that's not so good. Use\nthe async API. It's better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf ` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" + }, + "homepage": "https://github.com/isaacs/rimraf", + "_id": "rimraf@2.2.6", + "dist": { + "shasum": "7ada6a6d39b2301af3c8fe7b936c2e46e7c4463d" + }, + "_from": "rimraf@~2.2.6", + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js new file mode 100644 index 00000000..ce62051f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js @@ -0,0 +1,178 @@ +module.exports = rimraf +rimraf.sync = rimrafSync + +var path = require("path") +var fs = require("fs") + +// for EMFILE handling +var timeout = 0 +exports.EMFILE_MAX = 1000 +exports.BUSYTRIES_MAX = 3 + +var isWindows = (process.platform === "win32") + +function rimraf (p, cb) { + if (!cb) throw new Error("No callback passed to rimraf()") + + var busyTries = 0 + rimraf_(p, function CB (er) { + if (er) { + if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY") && + busyTries < exports.BUSYTRIES_MAX) { + busyTries ++ + var time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(function () { + rimraf_(p, CB) + }, time) + } + + // this one won't happen if graceful-fs is used. + if (er.code === "EMFILE" && timeout < exports.EMFILE_MAX) { + return setTimeout(function () { + rimraf_(p, CB) + }, timeout ++) + } + + // already gone + if (er.code === "ENOENT") er = null + } + + timeout = 0 + cb(er) + }) +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, cb) { + fs.unlink(p, function (er) { + if (er) { + if (er.code === "ENOENT") + return cb(null) + if (er.code === "EPERM") + return (isWindows) ? fixWinEPERM(p, er, cb) : rmdir(p, er, cb) + if (er.code === "EISDIR") + return rmdir(p, er, cb) + } + return cb(er) + }) +} + +function fixWinEPERM (p, er, cb) { + fs.chmod(p, 666, function (er2) { + if (er2) + cb(er2.code === "ENOENT" ? null : er) + else + fs.stat(p, function(er3, stats) { + if (er3) + cb(er3.code === "ENOENT" ? null : er) + else if (stats.isDirectory()) + rmdir(p, er, cb) + else + fs.unlink(p, cb) + }) + }) +} + +function fixWinEPERMSync (p, er, cb) { + try { + fs.chmodSync(p, 666) + } catch (er2) { + if (er2.code !== "ENOENT") + throw er + } + + try { + var stats = fs.statSync(p) + } catch (er3) { + if (er3 !== "ENOENT") + throw er + } + + if (stats.isDirectory()) + rmdirSync(p, er) + else + fs.unlinkSync(p) +} + +function rmdir (p, originalEr, cb) { + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + fs.rmdir(p, function (er) { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, cb) + else if (er && er.code === "ENOTDIR") + cb(originalEr) + else + cb(er) + }) +} + +function rmkids(p, cb) { + fs.readdir(p, function (er, files) { + if (er) + return cb(er) + var n = files.length + if (n === 0) + return fs.rmdir(p, cb) + var errState + files.forEach(function (f) { + rimraf(path.join(p, f), function (er) { + if (errState) + return + if (er) + return cb(errState = er) + if (--n === 0) + fs.rmdir(p, cb) + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p) { + try { + fs.unlinkSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p, er) : rmdirSync(p, er) + if (er.code !== "EISDIR") + throw er + rmdirSync(p, er) + } +} + +function rmdirSync (p, originalEr) { + try { + fs.rmdirSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "ENOTDIR") + throw originalEr + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p) + } +} + +function rmkidsSync (p) { + fs.readdirSync(p).forEach(function (f) { + rimrafSync(path.join(p, f)) + }) + fs.rmdirSync(p) +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh new file mode 100644 index 00000000..598f0163 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +for i in test-*.js; do + echo -n $i ... + bash setup.sh + node $i + ! [ -d target ] + echo "pass" +done +rm -rf target diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh new file mode 100644 index 00000000..2602e631 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +set -e + +files=10 +folders=2 +depth=4 +target="$PWD/target" + +rm -rf target + +fill () { + local depth=$1 + local files=$2 + local folders=$3 + local target=$4 + + if ! [ -d $target ]; then + mkdir -p $target + fi + + local f + + f=$files + while [ $f -gt 0 ]; do + touch "$target/f-$depth-$f" + let f-- + done + + let depth-- + + if [ $depth -le 0 ]; then + return 0 + fi + + f=$folders + while [ $f -gt 0 ]; do + mkdir "$target/folder-$depth-$f" + fill $depth $files $folders "$target/d-$depth-$f" + let f-- + done +} + +fill $depth $files $folders $target + +# sanity assert +[ -d $target ] diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js new file mode 100644 index 00000000..9c2e0b7b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js @@ -0,0 +1,5 @@ +var rimraf = require("../rimraf") + , path = require("path") +rimraf(path.join(__dirname, "target"), function (er) { + if (er) throw er +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js new file mode 100644 index 00000000..eb71f104 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js @@ -0,0 +1,3 @@ +var rimraf = require("../rimraf") + , path = require("path") +rimraf.sync(path.join(__dirname, "target")) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/LICENSE new file mode 100644 index 00000000..05a40109 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/LICENSE @@ -0,0 +1,23 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/README.md new file mode 100644 index 00000000..ff1eb531 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/README.md @@ -0,0 +1,5 @@ +The "which" util from npm's guts. + +Finds the first instance of a specified executable in the PATH +environment variable. Does not cache the results, so `hash -r` is not +needed when the PATH changes. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/bin/which b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/bin/which new file mode 100755 index 00000000..8432ce2f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/bin/which @@ -0,0 +1,14 @@ +#!/usr/bin/env node +var which = require("../") +if (process.argv.length < 3) { + console.error("Usage: which ") + process.exit(1) +} + +which(process.argv[2], function (er, thing) { + if (er) { + console.error(er.message) + process.exit(er.errno || 127) + } + console.log(thing) +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/package.json new file mode 100644 index 00000000..f1938b07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/package.json @@ -0,0 +1,35 @@ +{ + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "name": "which", + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", + "version": "1.0.5", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "main": "which.js", + "bin": { + "which": "./bin/which" + }, + "engines": { + "node": "*" + }, + "dependencies": {}, + "devDependencies": {}, + "readme": "The \"which\" util from npm's guts.\n\nFinds the first instance of a specified executable in the PATH\nenvironment variable. Does not cache the results, so `hash -r` is not\nneeded when the PATH changes.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" + }, + "homepage": "https://github.com/isaacs/node-which", + "_id": "which@1.0.5", + "dist": { + "shasum": "195619a6ad7e8fefd0aa76445a6d4c8d370a322c" + }, + "_from": "which@~1.0.5", + "_resolved": "https://registry.npmjs.org/which/-/which-1.0.5.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/which.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/which.js new file mode 100644 index 00000000..db7e8f74 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/which/which.js @@ -0,0 +1,104 @@ +module.exports = which +which.sync = whichSync + +var path = require("path") + , fs + , COLON = process.platform === "win32" ? ";" : ":" + , isExe + +try { + fs = require("graceful-fs") +} catch (ex) { + fs = require("fs") +} + +if (process.platform == "win32") { + // On windows, there is no good way to check that a file is executable + isExe = function isExe () { return true } +} else { + isExe = function isExe (mod, uid, gid) { + //console.error(mod, uid, gid); + //console.error("isExe?", (mod & 0111).toString(8)) + var ret = (mod & 0001) + || (mod & 0010) && process.getgid && gid === process.getgid() + || (mod & 0100) && process.getuid && uid === process.getuid() + //console.error("isExe?", ret) + return ret + } +} + + + +function which (cmd, cb) { + if (isAbsolute(cmd)) return cb(null, cmd) + var pathEnv = (process.env.PATH || "").split(COLON) + , pathExt = [""] + if (process.platform === "win32") { + pathEnv.push(process.cwd()) + pathExt = (process.env.PATHEXT || ".EXE").split(COLON) + if (cmd.indexOf(".") !== -1) pathExt.unshift("") + } + //console.error("pathEnv", pathEnv) + ;(function F (i, l) { + if (i === l) return cb(new Error("not found: "+cmd)) + var p = path.resolve(pathEnv[i], cmd) + ;(function E (ii, ll) { + if (ii === ll) return F(i + 1, l) + var ext = pathExt[ii] + //console.error(p + ext) + fs.stat(p + ext, function (er, stat) { + if (!er && + stat && + stat.isFile() && + isExe(stat.mode, stat.uid, stat.gid)) { + //console.error("yes, exe!", p + ext) + return cb(null, p + ext) + } + return E(ii + 1, ll) + }) + })(0, pathExt.length) + })(0, pathEnv.length) +} + +function whichSync (cmd) { + if (isAbsolute(cmd)) return cmd + var pathEnv = (process.env.PATH || "").split(COLON) + , pathExt = [""] + if (process.platform === "win32") { + pathEnv.push(process.cwd()) + pathExt = (process.env.PATHEXT || ".EXE").split(COLON) + if (cmd.indexOf(".") !== -1) pathExt.unshift("") + } + for (var i = 0, l = pathEnv.length; i < l; i ++) { + var p = path.join(pathEnv[i], cmd) + for (var j = 0, ll = pathExt.length; j < ll; j ++) { + var cur = p + pathExt[j] + var stat + try { stat = fs.statSync(cur) } catch (ex) {} + if (stat && + stat.isFile() && + isExe(stat.mode, stat.uid, stat.gid)) return cur + } + } + throw new Error("not found: "+cmd) +} + +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}[^\\\/]+[\\\/][^\\\/]+)?([\\\/])?/ + , 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/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/package.json new file mode 100644 index 00000000..66d4488e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/bin-wrapper/package.json @@ -0,0 +1,54 @@ +{ + "name": "bin-wrapper", + "version": "0.1.9", + "description": "Binary wrapper for Node.js that makes your programs seamlessly available as local dependencies", + "keywords": [ + "bin", + "build", + "make", + "wrapper" + ], + "homepage": "https://github.com/kevva/bin-wrapper", + "bugs": { + "url": "https://github.com/kevva/bin-wrapper/issues" + }, + "author": { + "name": "Kevin Martensson", + "email": "kevinmartensson@gmail.com", + "url": "http://kevinmartensson.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/kevva/bin-wrapper.git" + }, + "scripts": { + "test": "mocha --reporter list --timeout 0" + }, + "main": "bin-wrapper.js", + "files": [ + "bin-wrapper.js" + ], + "dependencies": { + "download": "~0.1.2", + "isbin": "0.0.2", + "mout": "~0.6.0", + "progress": "~1.1.0", + "rimraf": "~2.2.6", + "which": "~1.0.5" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "readme": "# bin-wrapper [![Build Status](https://secure.travis-ci.org/kevva/bin-wrapper.png?branch=master)](http://travis-ci.org/kevva/bin-wrapper)\n\nBinary wrapper for Node.js that makes your programs seamlessly available as local dependencies\n\n## Getting started\n\nInstall with [npm](https://npmjs.org/package/bin-wrapper): `npm install bin-wrapper`\n\n## Examples\n\nAll `platform` and `arch` specific options takes precedence over the base \noptions. See [test.js](test.js) for a full fleshed example.\n\n```js\nvar Bin = require('bin-wrapper');\n\nvar opts = {\n name: 'Gifsicle',\n bin: 'gifsicle',\n path: 'vendor',\n url: 'http://url/to/gifsicle',\n src: 'http://www.lcdf.org/gifsicle/gifsicle-1.71.tar.gz',\n buildScript: './configure --bindir=\"vendor\" && make install',\n platform: {\n win32: {\n bin: 'gifsicle.exe',\n url: [\n 'http://url/to/gifsicle.exe'\n 'http://url/to/gifsicle.dll'\n ]\n }\n }\n}\nvar bin = new Bin(opts);\n\nbin.check('--version', function (works) {\n if (!works) {\n console.log('Pre-build test failed, compiling from source');\n return bin.build();\n }\n\n console.log('Binary passed the test');\n});\n```\n\nGet the path to your binary with `bin.path`.\n\n```js\nconsole.log(bin.path);\n// => path/to/vendor/gifsicle\n```\n\n## API\n\n### .check(cmd, cb)\n\nCheck if a binary is present and working. If it isn't, download and test it by \nrunning the binary with `cmd` and see if it exits correctly.\n\n### .build(cb)\n\nDownload the source archive defined in the `src` property and build it using the \nbuild script defined in the `buildScript` property.\n\n## License\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License) (c) [Kevin Mårtensson](http://kevinmartensson.com)\n", + "readmeFilename": "README.md", + "_id": "bin-wrapper@0.1.9", + "dist": { + "shasum": "237ee496fb6049caedaba51ad9e62fc199a86060" + }, + "_from": "bin-wrapper@~0.1.3", + "_resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-0.1.9.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/chalk.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/chalk.js new file mode 100644 index 00000000..17c6dbab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/chalk.js @@ -0,0 +1,62 @@ +'use strict'; +var ansi = require('ansi-styles'); +var defineProps = Object.defineProperties; + +ansi.grey = ansi.gray; + +var styles = (function () { + var ret = {}; + + Object.keys(ansi).forEach(function (key) { + ret[key] = { + get: function () { + this._styles.push(key); + return this; + } + }; + }); + + return ret; +})(); + +var chalk = module.exports = defineProps({}, init()); + +function init() { + var ret = {}; + + Object.keys(styles).forEach(function (name) { + ret[name] = { + get: function () { + var obj = defineProps(function self(str) { + if (!chalk.enabled) { + return str; + } + + return self._styles.reduce(function (str, name) { + var code = ansi[name]; + return code[0] + (str || '') + code[1]; + }, str); + }, styles); + + obj._styles = []; + + return obj[name]; + } + } + }); + + return ret; +} + +chalk.styles = ansi; + +chalk.stripColor = function (str) { + return str.replace(/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]/g, ''); +}; + +chalk.supportsColor = require('has-color'); + +// detect mode if not set manually +if (chalk.enabled === undefined) { + chalk.enabled = chalk.supportsColor; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js new file mode 100644 index 00000000..56a5d19b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js @@ -0,0 +1,29 @@ +'use strict'; +module.exports = { + reset: ['\x1b[0m', '\x1b[0m'], + + bold: ['\x1b[1m', '\x1b[22m'], + italic: ['\x1b[3m', '\x1b[23m'], + underline: ['\x1b[4m', '\x1b[24m'], + inverse: ['\x1b[7m', '\x1b[27m'], + strikethrough: ['\x1b[9m', '\x1b[29m'], + + black: ['\x1b[30m', '\x1b[39m'], + red: ['\x1b[31m', '\x1b[39m'], + green: ['\x1b[32m', '\x1b[39m'], + yellow: ['\x1b[33m', '\x1b[39m'], + blue: ['\x1b[34m', '\x1b[39m'], + magenta: ['\x1b[35m', '\x1b[39m'], + cyan: ['\x1b[36m', '\x1b[39m'], + white: ['\x1b[37m', '\x1b[39m'], + gray: ['\x1B[90m', '\x1b[39m'], + + bgBlack: ['\x1b[40m', '\x1b[49m'], + bgRed: ['\x1b[41m', '\x1b[49m'], + bgGreen: ['\x1b[42m', '\x1b[49m'], + bgYellow: ['\x1b[43m', '\x1b[49m'], + bgBlue: ['\x1b[44m', '\x1b[49m'], + bgMagenta: ['\x1b[45m', '\x1b[49m'], + bgCyan: ['\x1b[46m', '\x1b[49m'], + bgWhite: ['\x1b[47m', '\x1b[49m'] +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/package.json new file mode 100644 index 00000000..8acdb5e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/package.json @@ -0,0 +1,62 @@ +{ + "name": "ansi-styles", + "version": "0.2.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { + "url": "https://github.com/sindresorhus/ansi-styles/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "ansi-styles.js" + ], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles)\n\n> ANSI escape codes for colorizing strings in the terminal.\n\nYou probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings.\n\n![screenshot](screenshot.png)\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles`\n\n\n## Example\n\n```js\nvar ansi = require('ansi-styles');\n\nconsole.log(ansi.green[0] + 'Hello world!' + ansi.green[1]);\n```\n\n## API\n\nEach style is an array of a start and end escape code.\n\n\n## Styles\n\n### General\n\n- reset\n- bold\n- italic\n- underline\n- inverse\n- strikethrough\n\n### Text colors\n\n- black\n- red\n- green\n- yellow\n- blue\n- magenta\n- cyan\n- white\n- gray\n\n### Background colors\n\n- bgBlack\n- bgRed\n- bgGreen\n- bgYellow\n- bgBlue\n- bgMagenta\n- bgCyan\n- bgWhite\n\n\n## License\n\nMIT License • © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "ansi-styles@0.2.0", + "dist": { + "shasum": "359ab4b15dcd64ba6d74734b72c36360a9af2c19" + }, + "_from": "ansi-styles@~0.2.0", + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/readme.md new file mode 100644 index 00000000..646837c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/ansi-styles/readme.md @@ -0,0 +1,65 @@ +# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles) + +> ANSI escape codes for colorizing strings in the terminal. + +You probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings. + +![screenshot](screenshot.png) + + +## Install + +Install with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles` + + +## Example + +```js +var ansi = require('ansi-styles'); + +console.log(ansi.green[0] + 'Hello world!' + ansi.green[1]); +``` + +## API + +Each style is an array of a start and end escape code. + + +## Styles + +### General + +- reset +- bold +- italic +- underline +- inverse +- strikethrough + +### Text colors + +- black +- red +- green +- yellow +- blue +- magenta +- cyan +- white +- gray + +### Background colors + +- bgBlack +- bgRed +- bgGreen +- bgYellow +- bgBlue +- bgMagenta +- bgCyan +- bgWhite + + +## License + +MIT License • © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/has-color.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/has-color.js new file mode 100644 index 00000000..27316b1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/has-color.js @@ -0,0 +1,24 @@ +'use strict'; +module.exports = (function () { + if (process.argv.indexOf('--no-color') !== -1) { + return false; + } + + if (process.argv.indexOf('--color') !== -1) { + return true; + } + + if (!process.stdout.isTTY) { + return false; + } + + if (process.platform === 'win32') { + return true; + } + + if ('COLORTERM' in process.env) { + return true; + } + + return /^screen|^xterm|color|ansi|cygwin|linux/i.test(process.env.TERM); +})(); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/package.json new file mode 100644 index 00000000..d60b2d0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/package.json @@ -0,0 +1,59 @@ +{ + "name": "has-color", + "version": "0.1.4", + "description": "Detect whether a terminal supports color", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "capability", + "detect" + ], + "homepage": "https://github.com/sindresorhus/has-color", + "bugs": { + "url": "https://github.com/sindresorhus/has-color/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "has-color.js" + ], + "main": "has-color", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/has-color.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color)\n\n> Detect whether a terminal supports color.\n\nUsed in the terminal color module [chalk](https://github.com/sindresorhus/chalk).\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/has-color): `npm install --save has-color`\n\n\n## Example\n\n```js\nvar hasColor = require('has-color');\n\nif (hasColor) {\n\tconsole.log('Terminal supports color.');\n}\n```\n\nIt obeys the CLI flags `--color` and `--no-color`.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "has-color@0.1.4", + "dist": { + "shasum": "d1dadeea5b9e8b446bf08603532333710c95a290" + }, + "_from": "has-color@~0.1.0", + "_resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.4.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/readme.md new file mode 100644 index 00000000..0918c851 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/node_modules/has-color/readme.md @@ -0,0 +1,28 @@ +# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color) + +> Detect whether a terminal supports color. + +Used in the terminal color module [chalk](https://github.com/sindresorhus/chalk). + + +## Install + +Install with [npm](https://npmjs.org/package/has-color): `npm install --save has-color` + + +## Example + +```js +var hasColor = require('has-color'); + +if (hasColor) { + console.log('Terminal supports color.'); +} +``` + +It obeys the CLI flags `--color` and `--no-color`. + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/package.json new file mode 100644 index 00000000..46a63f05 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/gifsicle/node_modules/chalk/package.json @@ -0,0 +1,65 @@ +{ + "name": "chalk", + "version": "0.2.1", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { + "url": "https://github.com/sindresorhus/chalk/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "chalk.js" + ], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "has-color": "~0.1.0", + "ansi-styles": "~0.2.0" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# chalk [![Build Status](https://secure.travis-ci.org/sindresorhus/chalk.png?branch=master)](http://travis-ci.org/sindresorhus/chalk)\n\n> Terminal string styling done right.\n\n[colors.js](https://github.com/Marak/colors.js) is currently the most popular string styling module, but it has serious deficiencies like extending String.prototype which causes all kinds of problems. Although there are other ones, they either do too much or not enough.\n\n**Chalk is a clean and focused alternative.**\n\n![screenshot](screenshot.png)\n\n\n## Why\n\n- **Doesn't extend String.prototype**\n- Expressive API\n- Clean and focused\n- Auto-detects color support\n- Actively maintained\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/chalk): `npm install --save chalk`\n\n\n## Example\n\nChalk comes with an easy to use composable API where you just chain the styles you want.\n\n```js\nvar chalk = require('chalk');\n\n// style a string\nconsole.log(chalk.blue('Hello world!'));\n\n// combine styled and normal strings\nconsole.log(chalk.blue('Hello') + 'World' + chalk.red('!'));\n\n// compose multiple styles using the chainable API\nconsole.log(chalk.blue.bgRed.bold('Hello world!'));\n\n// nest styles\nchalk.red('Hello' + chalk.underline.bgBlue('world') + '!');\n```\n\nYou can easily define your own themes.\n\n```js\nvar chalk = require('chalk');\nvar error = chalk.bold.red;\nconsole.log(error('Error!'));\n```\n\n\n## API\n\n### chalk.\\ + + + + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js new file mode 100644 index 00000000..24692256 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js @@ -0,0 +1,228 @@ +if (!this.uuid) { + // node.js + uuid = require('../uuid'); +} + +// +// x-platform log/assert shims +// + +function _log(msg, type) { + type = type || 'log'; + + if (typeof(document) != 'undefined') { + document.write('
      ' + msg.replace(/\n/g, '
      ') + '
      '); + } + if (typeof(console) != 'undefined') { + var color = { + log: '\033[39m', + warn: '\033[33m', + error: '\033[31m' + }; + console[type](color[type] + msg + color.log); + } +} + +function log(msg) {_log(msg, 'log');} +function warn(msg) {_log(msg, 'warn');} +function error(msg) {_log(msg, 'error');} + +function assert(res, msg) { + if (!res) { + error('FAIL: ' + msg); + } else { + log('Pass: ' + msg); + } +} + +// +// Unit tests +// + +// Verify ordering of v1 ids created with explicit times +var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 + +function compare(name, ids) { + ids = ids.map(function(id) { + return id.split('-').reverse().join('-'); + }).sort(); + var sorted = ([].concat(ids)).sort(); + + assert(sorted.toString() == ids.toString(), name + ' have expected order'); +} + +// Verify ordering of v1 ids created using default behavior +compare('uuids with current time', [ + uuid.v1(), + uuid.v1(), + uuid.v1(), + uuid.v1(), + uuid.v1() +]); + +// Verify ordering of v1 ids created with explicit times +compare('uuids with time option', [ + uuid.v1({msecs: TIME - 10*3600*1000}), + uuid.v1({msecs: TIME - 1}), + uuid.v1({msecs: TIME}), + uuid.v1({msecs: TIME + 1}), + uuid.v1({msecs: TIME + 28*24*3600*1000}) +]); + +assert( + uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), + 'IDs created at same msec are different' +); + +// Verify throw if too many ids created +var thrown = false; +try { + uuid.v1({msecs: TIME, nsecs: 10000}); +} catch (e) { + thrown = true; +} +assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); + +// Verify clock regression bumps clockseq +var uidt = uuid.v1({msecs: TIME}); +var uidtb = uuid.v1({msecs: TIME - 1}); +assert( + parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, + 'Clock regression by msec increments the clockseq' +); + +// Verify clock regression bumps clockseq +var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); +var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); +assert( + parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, + 'Clock regression by nsec increments the clockseq' +); + +// Verify explicit options produce expected id +var id = uuid.v1({ + msecs: 1321651533573, + nsecs: 5432, + clockseq: 0x385c, + node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] +}); +assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); + +// Verify adjacent ids across a msec boundary are 1 time unit apart +var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); +var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); + +var before = u0.split('-')[0], after = u1.split('-')[0]; +var dt = parseInt(after, 16) - parseInt(before, 16); +assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); + +// +// Test parse/unparse +// + +id = '00112233445566778899aabbccddeeff'; +assert(uuid.unparse(uuid.parse(id.substr(0,10))) == + '00112233-4400-0000-0000-000000000000', 'Short parse'); +assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == + '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); + +// +// Perf tests +// + +var generators = { + v1: uuid.v1, + v4: uuid.v4 +}; + +var UUID_FORMAT = { + v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, + v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i +}; + +var N = 1e4; + +// Get %'age an actual value differs from the ideal value +function divergence(actual, ideal) { + return Math.round(100*100*(actual - ideal)/ideal)/100; +} + +function rate(msg, t) { + log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); +} + +for (var version in generators) { + var counts = {}, max = 0; + var generator = generators[version]; + var format = UUID_FORMAT[version]; + + log('\nSanity check ' + N + ' ' + version + ' uuids'); + for (var i = 0, ok = 0; i < N; i++) { + id = generator(); + if (!format.test(id)) { + throw Error(id + ' is not a valid UUID string'); + } + + if (id != uuid.unparse(uuid.parse(id))) { + assert(fail, id + ' is not a valid id'); + } + + // Count digits for our randomness check + if (version == 'v4') { + var digits = id.replace(/-/g, '').split(''); + for (var j = digits.length-1; j >= 0; j--) { + var c = digits[j]; + max = Math.max(max, counts[c] = (counts[c] || 0) + 1); + } + } + } + + // Check randomness for v4 UUIDs + if (version == 'v4') { + // Limit that we get worried about randomness. (Purely empirical choice, this!) + var limit = 2*100*Math.sqrt(1/N); + + log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); + + for (var i = 0; i < 16; i++) { + var c = i.toString(16); + var bar = '', n = counts[c], p = Math.round(n/max*100|0); + + // 1-3,5-8, and D-F: 1:16 odds over 30 digits + var ideal = N*30/16; + if (i == 4) { + // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits + ideal = N*(1 + 30/16); + } else if (i >= 8 && i <= 11) { + // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits + ideal = N*(1/4 + 30/16); + } else { + // Otherwise: 1:16 odds on 30 digits + ideal = N*30/16; + } + var d = divergence(n, ideal); + + // Draw bar using UTF squares (just for grins) + var s = n/max*50 | 0; + while (s--) bar += '='; + + assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); + } + } +} + +// Perf tests +for (var version in generators) { + log('\nPerformance testing ' + version + ' UUIDs'); + var generator = generators[version]; + var buf = new uuid.BufferClass(16); + + for (var i = 0, t = Date.now(); i < N; i++) generator(); + rate('uuid.' + version + '()', t); + + for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); + rate('uuid.' + version + '(\'binary\')', t); + + for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); + rate('uuid.' + version + '(\'binary\', buffer)', t); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js new file mode 100644 index 00000000..2fac6dc4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js @@ -0,0 +1,245 @@ +// uuid.js +// +// Copyright (c) 2010-2012 Robert Kieffer +// MIT License - http://opensource.org/licenses/mit-license.php + +(function() { + var _global = this; + + // Unique ID creation requires a high quality random # generator. We feature + // detect to determine the best RNG source, normalizing to a function that + // returns 128-bits of randomness, since that's what's usually required + var _rng; + + // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html + // + // Moderately fast, high quality + if (typeof(require) == 'function') { + try { + var _rb = require('crypto').randomBytes; + _rng = _rb && function() {return _rb(16);}; + } catch(e) {} + } + + if (!_rng && _global.crypto && crypto.getRandomValues) { + // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto + // + // Moderately fast, high quality + var _rnds8 = new Uint8Array(16); + _rng = function whatwgRNG() { + crypto.getRandomValues(_rnds8); + return _rnds8; + }; + } + + if (!_rng) { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var _rnds = new Array(16); + _rng = function() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } + + return _rnds; + }; + } + + // Buffer class to use + var BufferClass = typeof(Buffer) == 'function' ? Buffer : Array; + + // Maps for number <-> hex string conversion + var _byteToHex = []; + var _hexToByte = {}; + for (var i = 0; i < 256; i++) { + _byteToHex[i] = (i + 0x100).toString(16).substr(1); + _hexToByte[_byteToHex[i]] = i; + } + + // **`parse()` - Parse a UUID into it's component bytes** + function parse(s, buf, offset) { + var i = (buf && offset) || 0, ii = 0; + + buf = buf || []; + s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { + if (ii < 16) { // Don't overflow! + buf[i + ii++] = _hexToByte[oct]; + } + }); + + // Zero out remaining bytes if string was short + while (ii < 16) { + buf[i + ii++] = 0; + } + + return buf; + } + + // **`unparse()` - Convert UUID byte array (ala parse()) into a string** + function unparse(buf, offset) { + var i = offset || 0, bth = _byteToHex; + return bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]]; + } + + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + + // random #'s we need to init node and clockseq + var _seedBytes = _rng(); + + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + var _nodeId = [ + _seedBytes[0] | 0x01, + _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] + ]; + + // Per 4.2.2, randomize (14 bit) clockseq + var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; + + // Previous uuid creation time + var _lastMSecs = 0, _lastNSecs = 0; + + // See https://github.com/broofa/node-uuid for API details + function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; + + options = options || {}; + + var clockseq = options.clockseq != null ? options.clockseq : _clockseq; + + // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + var msecs = options.msecs != null ? options.msecs : new Date().getTime(); + + // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1; + + // Time since last uuid creation (in msecs) + var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; + + // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq == null) { + clockseq = clockseq + 1 & 0x3fff; + } + + // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { + nsecs = 0; + } + + // Per 4.2.1.2 Throw error if too many uuids are requested + if (nsecs >= 10000) { + throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + + // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000; + + // `time_low` + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; + + // `time_mid` + var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; + + // `time_high_and_version` + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + b[i++] = tmh >>> 16 & 0xff; + + // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + b[i++] = clockseq >>> 8 | 0x80; + + // `clock_seq_low` + b[i++] = clockseq & 0xff; + + // `node` + var node = options.node || _nodeId; + for (var n = 0; n < 6; n++) { + b[i + n] = node[n]; + } + + return buf ? buf : unparse(b); + } + + // **`v4()` - Generate random UUID** + + // See https://github.com/broofa/node-uuid for API details + function v4(options, buf, offset) { + // Deprecated - 'format' argument, as supported in v1.2 + var i = buf && offset || 0; + + if (typeof(options) == 'string') { + buf = options == 'binary' ? new BufferClass(16) : null; + options = null; + } + options = options || {}; + + var rnds = options.random || (options.rng || _rng)(); + + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ii++) { + buf[i + ii] = rnds[ii]; + } + } + + return buf || unparse(rnds); + } + + // Export public API + var uuid = v4; + uuid.v1 = v1; + uuid.v4 = v4; + uuid.parse = parse; + uuid.unparse = unparse; + uuid.BufferClass = BufferClass; + + if (typeof define === 'function' && define.amd) { + // Publish as AMD module + define(function() {return uuid;}); + } else if (typeof(module) != 'undefined' && module.exports) { + // Publish as node.js module + module.exports = uuid; + } else { + // Publish as global (in browsers) + var _previousRoot = _global.uuid; + + // **`noConflict()` - (browser only) to reset global 'uuid' var** + uuid.noConflict = function() { + _global.uuid = _previousRoot; + return uuid; + }; + + _global.uuid = uuid; + } +}).call(this); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE @@ -0,0 +1,55 @@ +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +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 + +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 \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md new file mode 100644 index 00000000..34c4a85d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md @@ -0,0 +1,4 @@ +oauth-sign +========== + +OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js new file mode 100644 index 00000000..e35bfa67 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js @@ -0,0 +1,43 @@ +var crypto = require('crypto') + , qs = require('querystring') + ; + +function sha1 (key, body) { + return crypto.createHmac('sha1', key).update(body).digest('base64') +} + +function rfc3986 (str) { + return encodeURIComponent(str) + .replace(/!/g,'%21') + .replace(/\*/g,'%2A') + .replace(/\(/g,'%28') + .replace(/\)/g,'%29') + .replace(/'/g,'%27') + ; +} + +function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) { + // adapted from https://dev.twitter.com/docs/auth/oauth and + // https://dev.twitter.com/docs/auth/creating-signature + + var querystring = Object.keys(params).sort().map(function(key){ + // big WTF here with the escape + encoding but it's what twitter wants + return escape(rfc3986(key)) + "%3D" + escape(rfc3986(params[key])) + }).join('%26') + + var base = [ + httpMethod ? httpMethod.toUpperCase() : 'GET', + rfc3986(base_uri), + querystring + ].join('&') + + var key = [ + consumer_secret, + token_secret || '' + ].map(rfc3986).join('&') + + return sha1(key, base) +} + +exports.hmacsign = hmacsign +exports.rfc3986 = rfc3986 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json new file mode 100644 index 00000000..abc9d21d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json @@ -0,0 +1,35 @@ +{ + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "name": "oauth-sign", + "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", + "version": "0.3.0", + "repository": { + "url": "https://github.com/mikeal/oauth-sign" + }, + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "scripts": { + "test": "node test.js" + }, + "readme": "oauth-sign\n==========\n\nOAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. \n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/mikeal/oauth-sign/issues" + }, + "homepage": "https://github.com/mikeal/oauth-sign", + "_id": "oauth-sign@0.3.0", + "dist": { + "shasum": "cb540f93bb2b22a7d5941691a288d60e8ea9386e" + }, + "_from": "oauth-sign@~0.3.0", + "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js new file mode 100644 index 00000000..46955ff6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js @@ -0,0 +1,49 @@ +var hmacsign = require('./index').hmacsign + , assert = require('assert') + , qs = require('querystring') + ; + +// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth + +var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', + { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' + , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' + , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' + , oauth_signature_method: 'HMAC-SHA1' + , oauth_timestamp: '1272323042' + , oauth_version: '1.0' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98") + +console.log(reqsign) +console.log('8wUi7m5HFQy76nowoCThusfgB+Q=') +assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=') + +var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', + { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' + , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' + , oauth_signature_method: 'HMAC-SHA1' + , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' + , oauth_timestamp: '1272323047' + , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' + , oauth_version: '1.0' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") + +console.log(accsign) +console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') +assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') + +var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', + { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" + , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" + , oauth_signature_method: "HMAC-SHA1" + , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" + , oauth_timestamp: "1272325550" + , oauth_version: "1.0" + , status: 'setting up my twitter 私のさえずりを設定する' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") + +console.log(upsign) +console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=') +assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=') + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules new file mode 100644 index 00000000..49e31dac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules @@ -0,0 +1,6 @@ +[submodule "support/expresso"] + path = support/expresso + url = git://github.com/visionmedia/expresso.git +[submodule "support/should"] + path = support/should + url = git://github.com/visionmedia/should.js.git diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore new file mode 100644 index 00000000..e85ce2af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore @@ -0,0 +1,7 @@ +test +.travis.yml +benchmark.js +component.json +examples.js +History.md +Makefile diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md new file mode 100644 index 00000000..27e54a4a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md @@ -0,0 +1,58 @@ +# node-querystring + + query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others. + +## Installation + + $ npm install qs + +## Examples + +```js +var qs = require('qs'); + +qs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com'); +// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } } + +qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }}) +// => user[name]=Tobi&user[email]=tobi%40learnboost.com +``` + +## Testing + +Install dev dependencies: + + $ npm install -d + +and execute: + + $ make test + +browser: + + $ open test/browser/index.html + +## License + +(The MIT License) + +Copyright (c) 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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js new file mode 100644 index 00000000..b05938ac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js @@ -0,0 +1,366 @@ +/** + * Object#toString() ref for stringify(). + */ + +var toString = Object.prototype.toString; + +/** + * Object#hasOwnProperty ref + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Array#indexOf shim. + */ + +var indexOf = typeof Array.prototype.indexOf === 'function' + ? function(arr, el) { return arr.indexOf(el); } + : function(arr, el) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === el) return i; + } + return -1; + }; + +/** + * Array.isArray shim. + */ + +var isArray = Array.isArray || function(arr) { + return toString.call(arr) == '[object Array]'; +}; + +/** + * Object.keys shim. + */ + +var objectKeys = Object.keys || function(obj) { + var ret = []; + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + ret.push(key); + } + } + return ret; +}; + +/** + * Array#forEach shim. + */ + +var forEach = typeof Array.prototype.forEach === 'function' + ? function(arr, fn) { return arr.forEach(fn); } + : function(arr, fn) { + for (var i = 0; i < arr.length; i++) fn(arr[i]); + }; + +/** + * Array#reduce shim. + */ + +var reduce = function(arr, fn, initial) { + if (typeof arr.reduce === 'function') return arr.reduce(fn, initial); + var res = initial; + for (var i = 0; i < arr.length; i++) res = fn(res, arr[i]); + return res; +}; + +/** + * Cache non-integer test regexp. + */ + +var isint = /^[0-9]+$/; + +function promote(parent, key) { + if (parent[key].length == 0) return parent[key] = {} + var t = {}; + for (var i in parent[key]) { + if (hasOwnProperty.call(parent[key], i)) { + t[i] = parent[key][i]; + } + } + parent[key] = t; + return t; +} + +function parse(parts, parent, key, val) { + var part = parts.shift(); + + // illegal + if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; + + // end + if (!part) { + if (isArray(parent[key])) { + parent[key].push(val); + } else if ('object' == typeof parent[key]) { + parent[key] = val; + } else if ('undefined' == typeof parent[key]) { + parent[key] = val; + } else { + parent[key] = [parent[key], val]; + } + // array + } else { + var obj = parent[key] = parent[key] || []; + if (']' == part) { + if (isArray(obj)) { + if ('' != val) obj.push(val); + } else if ('object' == typeof obj) { + obj[objectKeys(obj).length] = val; + } else { + obj = parent[key] = [parent[key], val]; + } + // prop + } else if (~indexOf(part, ']')) { + part = part.substr(0, part.length - 1); + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + // key + } else { + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + } + } +} + +/** + * Merge parent key/val pair. + */ + +function merge(parent, key, val){ + if (~indexOf(key, ']')) { + var parts = key.split('[') + , len = parts.length + , last = len - 1; + parse(parts, parent, 'base', val); + // optimize + } else { + if (!isint.test(key) && isArray(parent.base)) { + var t = {}; + for (var k in parent.base) t[k] = parent.base[k]; + parent.base = t; + } + set(parent.base, key, val); + } + + return parent; +} + +/** + * Compact sparse arrays. + */ + +function compact(obj) { + if ('object' != typeof obj) return obj; + + if (isArray(obj)) { + var ret = []; + + for (var i in obj) { + if (hasOwnProperty.call(obj, i)) { + ret.push(obj[i]); + } + } + + return ret; + } + + for (var key in obj) { + obj[key] = compact(obj[key]); + } + + return obj; +} + +/** + * Parse the given obj. + */ + +function parseObject(obj){ + var ret = { base: {} }; + + forEach(objectKeys(obj), function(name){ + merge(ret, name, obj[name]); + }); + + return compact(ret.base); +} + +/** + * Parse the given str. + */ + +function parseString(str){ + var ret = reduce(String(str).split('&'), function(ret, pair){ + var eql = indexOf(pair, '=') + , brace = lastBraceInKey(pair) + , key = pair.substr(0, brace || eql) + , val = pair.substr(brace || eql, pair.length) + , val = val.substr(indexOf(val, '=') + 1, val.length); + + // ?foo + if ('' == key) key = pair, val = ''; + if ('' == key) return ret; + + return merge(ret, decode(key), decode(val)); + }, { base: {} }).base; + + return compact(ret); +} + +/** + * Parse the given query `str` or `obj`, returning an object. + * + * @param {String} str | {Object} obj + * @return {Object} + * @api public + */ + +exports.parse = function(str){ + if (null == str || '' == str) return {}; + return 'object' == typeof str + ? parseObject(str) + : parseString(str); +}; + +/** + * Turn the given `obj` into a query string + * + * @param {Object} obj + * @return {String} + * @api public + */ + +var stringify = exports.stringify = function(obj, prefix) { + if (isArray(obj)) { + return stringifyArray(obj, prefix); + } else if ('[object Object]' == toString.call(obj)) { + return stringifyObject(obj, prefix); + } else if ('string' == typeof obj) { + return stringifyString(obj, prefix); + } else { + return prefix + '=' + encodeURIComponent(String(obj)); + } +}; + +/** + * Stringify the given `str`. + * + * @param {String} str + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyString(str, prefix) { + if (!prefix) throw new TypeError('stringify expects an object'); + return prefix + '=' + encodeURIComponent(str); +} + +/** + * Stringify the given `arr`. + * + * @param {Array} arr + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyArray(arr, prefix) { + var ret = []; + if (!prefix) throw new TypeError('stringify expects an object'); + for (var i = 0; i < arr.length; i++) { + ret.push(stringify(arr[i], prefix + '[' + i + ']')); + } + return ret.join('&'); +} + +/** + * Stringify the given `obj`. + * + * @param {Object} obj + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyObject(obj, prefix) { + var ret = [] + , keys = objectKeys(obj) + , key; + + for (var i = 0, len = keys.length; i < len; ++i) { + key = keys[i]; + if ('' == key) continue; + if (null == obj[key]) { + ret.push(encodeURIComponent(key) + '='); + } else { + ret.push(stringify(obj[key], prefix + ? prefix + '[' + encodeURIComponent(key) + ']' + : encodeURIComponent(key))); + } + } + + return ret.join('&'); +} + +/** + * Set `obj`'s `key` to `val` respecting + * the weird and wonderful syntax of a qs, + * where "foo=bar&foo=baz" becomes an array. + * + * @param {Object} obj + * @param {String} key + * @param {String} val + * @api private + */ + +function set(obj, key, val) { + var v = obj[key]; + if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; + if (undefined === v) { + obj[key] = val; + } else if (isArray(v)) { + v.push(val); + } else { + obj[key] = [v, val]; + } +} + +/** + * Locate last brace in `str` within the key. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function lastBraceInKey(str) { + var len = str.length + , brace + , c; + for (var i = 0; i < len; ++i) { + c = str[i]; + if (']' == c) brace = false; + if ('[' == c) brace = true; + if ('=' == c && !brace) return i; + } +} + +/** + * Decode `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +function decode(str) { + try { + return decodeURIComponent(str.replace(/\+/g, ' ')); + } catch (err) { + return str; + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json new file mode 100644 index 00000000..313485c0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json @@ -0,0 +1,38 @@ +{ + "name": "qs", + "description": "querystring parser", + "version": "0.6.6", + "keywords": [ + "query string", + "parser", + "component" + ], + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-querystring.git" + }, + "devDependencies": { + "mocha": "*", + "expect.js": "*" + }, + "scripts": { + "test": "make test" + }, + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "main": "index", + "engines": { + "node": "*" + }, + "readme": "# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require('qs');\n\nqs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com');\n// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } }\n\nqs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", + "bugs": { + "url": "https://github.com/visionmedia/node-querystring/issues" + }, + "homepage": "https://github.com/visionmedia/node-querystring", + "_id": "qs@0.6.6", + "_from": "qs@~0.6.0" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc new file mode 100644 index 00000000..8fcead4f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc @@ -0,0 +1,72 @@ +{ + // Settings + "passfail" : false, // Stop on first error. + "maxerr" : 100, // Maximum error before stopping. + + + // Predefined globals whom JSHint will ignore. + "browser" : false, // Standard browser globals e.g. `window`, `document`. + "node" : true, + "rhino" : false, + "couch" : false, + "wsh" : false, // Windows Scripting Host. + + "jquery" : false, + "prototypejs" : false, + "mootools" : false, + "dojo" : false, + + "predef" : [ // Custom globals. + "escape", "unescape" // aren't picked up by node flag above :/ + ], + + + // Development. + "debug" : false, // Allow debugger statements e.g. browser breakpoints. + "devel" : false, // Allow developments statements e.g. `console.log();`. + + + // EcmaScript 5. + "es5" : true, // Allow EcmaScript 5 syntax. + "esnext" : true, // Allow ES "next" syntax, specifically 'const' (V8 has this) + "strict" : false, // Require `use strict` pragma in every file. + "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). + + + // The Good Parts. + "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). + "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. + "bitwise" : true, // Prohibit bitwise operators (&, |, ^, etc.). + "boss" : false, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. + "curly" : false, // Require {} for every new block or scope. + "eqeqeq" : false, // Require triple equals i.e. `===`. + "eqnull" : true, // Tolerate use of `== null`. + "evil" : false, // Tolerate use of `eval`. + "expr" : true, // Tolerate `ExpressionStatement` as Programs. + "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. + "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef" : false, // Prohibit variable use before definition. + "loopfunc" : false, // Allow functions to be defined within loops. + "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "regexp" : true, // Prohibit `.` and `[^...]` in regular expressions. + "regexdash" : false, // Tolerate unescaped last dash i.e. `[-...]`. + "scripturl" : true, // Tolerate script-targeted URLs. + "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. + "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. + "undef" : true, // Require all non-global variables be declared before they are used. + + + // Personal styling prefrences. + "lastsemic" : true, // Prohibit missing semicolon for the last statement in a one-line block + "newcap" : false, // Require capitalization of all constructor functions e.g. `new F()`. + "noempty" : true, // Prohipit use of empty blocks. + "nonew" : true, // Prohibit use of constructors for side-effects. + "nomen" : false, // Prohibit use of initial or trailing underbars in names. + "onevar" : false, // Allow only one `var` statement per function. + "onecase" : false, // Allow switches with one case statement + "plusplus" : false, // Prohibit use of `++` & `--`. + "proto" : false, // Allow use of __proto__ + "sub" : true, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. + "trailing" : true, // Prohibit trailing whitespaces. + "white" : false // Check against strict whitespace and indentation rules. +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore new file mode 100644 index 00000000..54efff98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore @@ -0,0 +1,3 @@ +node_modules/ +.*.sw[nmop] +npm-debug.log diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE new file mode 100644 index 00000000..3fac4c85 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE @@ -0,0 +1,78 @@ +Copyright GoInstant, Inc. and other contributors. 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. + +The following exceptions apply: + +=== + +`pubSufTest()` of generate-pubsuffix.js is in the public domain. + + // Any copyright is dedicated to the Public Domain. + // http://creativecommons.org/publicdomain/zero/1.0/ + +=== + +`public-suffix.txt` was obtained from + +via . + +That file contains the usual Mozilla triple-license, for which this project uses it +under the terms of the MPL 1.1: + + // ***** BEGIN LICENSE BLOCK ***** + // Version: MPL 1.1/GPL 2.0/LGPL 2.1 + // + // The contents of this file are subject to the Mozilla Public License Version + // 1.1 (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.mozilla.org/MPL/ + // + // Software distributed under the License is distributed on an "AS IS" basis, + // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + // for the specific language governing rights and limitations under the + // License. + // + // The Original Code is the Public Suffix List. + // + // The Initial Developer of the Original Code is + // Jo Hermans . + // Portions created by the Initial Developer are Copyright (C) 2007 + // the Initial Developer. All Rights Reserved. + // + // Contributor(s): + // Ruben Arakelyan + // Gervase Markham + // Pamela Greene + // David Triendl + // Jothan Frakes + // The kind representatives of many TLD registries + // + // Alternatively, the contents of this file may be used under the terms of + // either the GNU General Public License Version 2 or later (the "GPL"), or + // the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + // in which case the provisions of the GPL or the LGPL are applicable instead + // of those above. If you wish to allow use of your version of this file only + // under the terms of either the GPL or the LGPL, and not to allow others to + // use your version of this file under the terms of the MPL, indicate your + // decision by deleting the provisions above and replace them with the notice + // and other provisions required by the GPL or the LGPL. If you do not delete + // the provisions above, a recipient may use your version of this file under + // the terms of any one of the MPL, the GPL or the LGPL. + // + // ***** END LICENSE BLOCK ***** diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md new file mode 100644 index 00000000..fd1dbb1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md @@ -0,0 +1,380 @@ +[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js + +![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg) + +# Synopsis + +``` javascript +var cookies = require('tough-cookie'); // note: not 'cookie', 'cookies' or 'node-cookie' +var Cookie = cookies.Cookie; +var cookie = Cookie.parse(header); +cookie.value = 'somethingdifferent'; +header = cookie.toString(); + +var cookiejar = new cookies.CookieJar(); +cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb); +// ... +cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) { + res.headers['cookie'] = cookies.join('; '); +}); +``` + +# Installation + +It's _so_ easy! + +`npm install tough-cookie` + +Requires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default. + +Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken. + +# API + +cookies +======= + +Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound". + +parseDate(string[,strict]) +----------------- + +Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. "Thu, 01 Jan 1970 00:00:010 GMT" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid). + +formatDate(date) +---------------- + +Format a Date into a RFC1123 string (the RFC6265-recommended format). + +canonicalDomain(str) +-------------------- + +Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects). + +domainMatch(str,domStr[,canonicalize=true]) +------------------------------------------- + +Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match". + +The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not. + +defaultPath(path) +----------------- + +Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC. + +The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output. + +pathMatch(reqPath,cookiePath) +----------------------------- + +Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean. + +This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`. + +parse(header[,strict=false]) +---------------------------- + +alias for `Cookie.parse(header[,strict])` + +fromJSON(string) +---------------- + +alias for `Cookie.fromJSON(string)` + +getPublicSuffix(hostname) +------------------------- + +Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it. + +For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`. + +For further information, see http://publicsuffix.org/. This module derives its list from that site. + +cookieCompare(a,b) +------------------ + +For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest. + +``` javascript +var cookies = [ /* unsorted array of Cookie objects */ ]; +cookies = cookies.sort(cookieCompare); +``` + +permuteDomain(domain) +--------------------- + +Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores. + + +permutePath(path) +----------------- + +Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores. + +Cookie +====== + +Cookie.parse(header[,strict=false]) +----------------------------------- + +Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. If in strict mode, returns `undefined` if the cookie doesn't follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off. + +Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response: + +``` javascript +if (res.headers['set-cookie'] instanceof Array) + cookies = res.headers['set-cookie'].map(Cookie.parse); +else + cookies = [Cookie.parse(res.headers['set-cookie'])]; +``` + +Cookie.fromJSON(string) +----------------------- + +Convert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects. + +Properties +========== + + * _key_ - string - the name or key of the cookie (default "") + * _value_ - string - the value of the cookie (default "") + * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()` + * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()` + * _domain_ - string - the `Domain=` attribute of the cookie + * _path_ - string - the `Path=` of the cookie + * _secure_ - boolean - the `Secure` cookie flag + * _httpOnly_ - boolean - the `HttpOnly` cookie flag + * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside) + +After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes: + + * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied) + * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one. + * _created_ - `Date` - when this cookie was added to the jar + * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute. + +Construction([{options}]) +------------ + +Receives an options object that can contain any Cookie properties, uses the default for unspecified properties. + +.toString() +----------- + +encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`. + +.cookieString() +--------------- + +encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '='). + +.setExpires(String) +------------------- + +sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set. + +.setMaxAge(number) +------------------- + +sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly. + +.expiryTime([now=Date.now()]) +----------------------------- + +.expiryDate([now=Date.now()]) +----------------------------- + +expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds. + +Max-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute. + +If Expires (`.expires`) is set, that's returned. + +Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents). + +.TTL([now=Date.now()]) +--------- + +compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply. + +The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. + +.canonicalizedDoman() +--------------------- + +.cdomain() +---------- + +return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters. + +.validate() +----------- + +Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive. + +validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct: + +``` javascript +if (cookie.validate() === true) { + // it's tasty +} else { + // yuck! +} +``` + +CookieJar +========= + +Construction([store = new MemoryCookieStore()][, rejectPublicSuffixes]) +------------ + +Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used. + + +Attributes +---------- + + * _rejectPublicSuffixes_ - boolean - reject cookies with domains like "com" and "co.uk" (default: `true`) + +Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods. + +.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie)) +------------------------------------------------------------------- + +Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _strict_ - boolean - default `false` - perform extra checks + * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren't ignored by this option. + +As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual). + +.storeCookie(cookie, [{options},] cb(err,cookie)) +------------------------------------------------- + +__REMOVED__ removed in lieu of the CookieStore API below + +.getCookies(currentUrl, [{options},] cb(err,cookies)) +----------------------------------------------------- + +Retrieve the list of cookies that can be sent in a Cookie header for the current url. + +If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially). + * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it). + +The `.lastAccessed` property of the returned cookies will have been updated. + +.getCookieString(...) +--------------------- + +Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`. + +.getSetCookieStrings(...) +------------------------- + +Accepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`. + +# CookieStore API + +The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores. + +All `domain` parameters will have been normalized before calling. + +The Cookie store must have all of the following methods. + +store.findCookie(domain, path, key, cb(err,cookie)) +--------------------------------------------------- + +Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned. + +Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error). + +store.findCookies(domain, path, cb(err,cookies)) +------------------------------------------------ + +Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above. + +If no cookies are found, the callback MUST be passed an empty array. + +The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done. + +As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only). + +store.putCookie(cookie, cb(err)) +-------------------------------- + +Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur. + +The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties. + +Pass an error if the cookie cannot be stored. + +store.updateCookie(oldCookie, newCookie, cb(err)) +------------------------------------------------- + +Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store. + +The `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion). + +Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object. + +The `newCookie` and `oldCookie` objects MUST NOT be modified. + +Pass an error if the newCookie cannot be stored. + +store.removeCookie(domain, path, key, cb(err)) +---------------------------------------------- + +Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint). + +The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie. + +store.removeCookies(domain, path, cb(err)) +------------------------------------------ + +Removes matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed. + +Pass an error ONLY if removing any existing cookies failed. + +# TODO + + * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()` + * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891 + * better tests for `validate()`? + +# Copyright and License + +(tl;dr: MIT with some MPL/1.1) + +Copyright GoInstant, Inc. and other contributors. 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. + +Portions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js new file mode 100644 index 00000000..a7fa5452 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js @@ -0,0 +1,230 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +var fs = require('fs'); +var assert = require('assert'); +var punycode = require('punycode'); + +fs.readFile('./public-suffix.txt', 'utf8', function(err,string) { + if (err) throw err; + var lines = string.split("\n"); + process.nextTick(function() { + processList(lines); + }); +}); + +var index = {}; + +var COMMENT = new RegExp('//.+'); +function processList(lines) { + while (lines.length) { + var line = lines.shift(); + line = line.replace(COMMENT,'').trim(); + if (!line) continue; + addToIndex(index,line); + } + + pubSufTest(); + + var w = fs.createWriteStream('./lib/pubsuffix.js',{ + flags: 'w', + encoding: 'utf8', + mode: 0644, + }); + w.on('end', process.exit); + w.write("/****************************************************\n"); + w.write(" * AUTOMATICALLY GENERATED by generate-pubsuffix.js *\n"); + w.write(" * DO NOT EDIT! *\n"); + w.write(" ****************************************************/\n\n"); + + w.write("module.exports.getPublicSuffix = "); + w.write(getPublicSuffix.toString()); + w.write(";\n\n"); + + w.write("// The following generated structure is used under the MPL version 1.1\n"); + w.write("// See public-suffix.txt for more information\n\n"); + w.write("var index = module.exports.index = Object.freeze(\n"); + w.write(JSON.stringify(index)); + w.write(");\n\n"); + w.write("// END of automatically generated file\n"); + + w.end(); +} + +function addToIndex(index,line) { + var prefix = ''; + if (line.replace(/^(!|\*\.)/)) { + prefix = RegExp.$1; + line = line.slice(prefix.length); + } + line = prefix + punycode.toASCII(line); + + if (line.substr(0,1) == '!') + index[line.substr(1)] = false; + else + index[line] = true; +} + +// include the licence in the function since it gets written to pubsuffix.js +function getPublicSuffix(domain) { + /* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + if (!domain) return null; + if (domain.match(/^\./)) return null; + + domain = domain.toLowerCase(); + var parts = domain.split('.').reverse(); + + var suffix = ''; + var suffixLen = 0; + for (var i=0; i suffixLen) { + return parts.slice(0,suffixLen+1).reverse().join('.'); + } + + return null; +} + +function checkPublicSuffix(give,get) { + var got = getPublicSuffix(give); + assert.equal(got, get, give+' should be '+(get==null?'NULL':get)+' but got '+got); +} + +// pubSufTest() was converted to JavaScript from http://publicsuffix.org/list/test.txt +function pubSufTest() { + // For this function-scope and this function-scope ONLY: + // Any copyright is dedicated to the Public Domain. + // http://creativecommons.org/publicdomain/zero/1.0/ + + // NULL input. + checkPublicSuffix(null, null); + // Mixed case. + checkPublicSuffix('COM', null); + checkPublicSuffix('example.COM', 'example.com'); + checkPublicSuffix('WwW.example.COM', 'example.com'); + // Leading dot. + checkPublicSuffix('.com', null); + checkPublicSuffix('.example', null); + checkPublicSuffix('.example.com', null); + checkPublicSuffix('.example.example', null); + // Unlisted TLD. + checkPublicSuffix('example', null); + checkPublicSuffix('example.example', null); + checkPublicSuffix('b.example.example', null); + checkPublicSuffix('a.b.example.example', null); + // Listed, but non-Internet, TLD. + checkPublicSuffix('local', null); + checkPublicSuffix('example.local', null); + checkPublicSuffix('b.example.local', null); + checkPublicSuffix('a.b.example.local', null); + // TLD with only 1 rule. + checkPublicSuffix('biz', null); + checkPublicSuffix('domain.biz', 'domain.biz'); + checkPublicSuffix('b.domain.biz', 'domain.biz'); + checkPublicSuffix('a.b.domain.biz', 'domain.biz'); + // TLD with some 2-level rules. + checkPublicSuffix('com', null); + checkPublicSuffix('example.com', 'example.com'); + checkPublicSuffix('b.example.com', 'example.com'); + checkPublicSuffix('a.b.example.com', 'example.com'); + checkPublicSuffix('uk.com', null); + checkPublicSuffix('example.uk.com', 'example.uk.com'); + checkPublicSuffix('b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('a.b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('test.ac', 'test.ac'); + // TLD with only 1 (wildcard) rule. + checkPublicSuffix('cy', null); + checkPublicSuffix('c.cy', null); + checkPublicSuffix('b.c.cy', 'b.c.cy'); + checkPublicSuffix('a.b.c.cy', 'b.c.cy'); + // More complex TLD. + checkPublicSuffix('jp', null); + checkPublicSuffix('test.jp', 'test.jp'); + checkPublicSuffix('www.test.jp', 'test.jp'); + checkPublicSuffix('ac.jp', null); + checkPublicSuffix('test.ac.jp', 'test.ac.jp'); + checkPublicSuffix('www.test.ac.jp', 'test.ac.jp'); + checkPublicSuffix('kyoto.jp', null); + checkPublicSuffix('c.kyoto.jp', null); + checkPublicSuffix('b.c.kyoto.jp', 'b.c.kyoto.jp'); + checkPublicSuffix('a.b.c.kyoto.jp', 'b.c.kyoto.jp'); + checkPublicSuffix('pref.kyoto.jp', 'pref.kyoto.jp'); // Exception rule. + checkPublicSuffix('www.pref.kyoto.jp', 'pref.kyoto.jp'); // Exception rule. + checkPublicSuffix('city.kyoto.jp', 'city.kyoto.jp'); // Exception rule. + checkPublicSuffix('www.city.kyoto.jp', 'city.kyoto.jp'); // Exception rule. + // TLD with a wildcard rule and exceptions. + checkPublicSuffix('om', null); + checkPublicSuffix('test.om', null); + checkPublicSuffix('b.test.om', 'b.test.om'); + checkPublicSuffix('a.b.test.om', 'b.test.om'); + checkPublicSuffix('songfest.om', 'songfest.om'); + checkPublicSuffix('www.songfest.om', 'songfest.om'); + // US K12. + checkPublicSuffix('us', null); + checkPublicSuffix('test.us', 'test.us'); + checkPublicSuffix('www.test.us', 'test.us'); + checkPublicSuffix('ak.us', null); + checkPublicSuffix('test.ak.us', 'test.ak.us'); + checkPublicSuffix('www.test.ak.us', 'test.ak.us'); + checkPublicSuffix('k12.ak.us', null); + checkPublicSuffix('test.k12.ak.us', 'test.k12.ak.us'); + checkPublicSuffix('www.test.k12.ak.us', 'test.k12.ak.us'); + + +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js new file mode 100644 index 00000000..1d8615b5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js @@ -0,0 +1,947 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +/*jshint regexp:false */ +var net = require('net'); +var urlParse = require('url').parse; +var pubsuffix = require('./pubsuffix'); + +var punycode; +try { + punycode = require('punycode'); +} catch(e) { + console.warn("cookie: can't load punycode; won't use punycode for domain normalization"); +} + +var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/; + +// From RFC2616 S2.2: +var TOKEN = /[\x21\x23-\x26\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/; + +// From RFC6265 S4.1.1 +// note that it excludes \x3B ";" +var COOKIE_OCTET = /[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/; +var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/; + +// The name/key cannot be empty but the value can (S5.2): +var COOKIE_PAIR_STRICT = new RegExp('^('+TOKEN.source+'+)=("?)('+COOKIE_OCTET.source+'*)\\2'); +var COOKIE_PAIR = /^([^=\s]+)\s*=\s*("?)\s*(.*)\s*\2/; + +// RFC6265 S4.1.1 defines extension-av as 'any CHAR except CTLs or ";"' +// Note ';' is \x3B +var NON_CTL_SEMICOLON = /[\x20-\x3A\x3C-\x7E]+/; +var EXTENSION_AV = NON_CTL_SEMICOLON; +var PATH_VALUE = NON_CTL_SEMICOLON; + +// Used for checking whether or not there is a trailing semi-colon +var TRAILING_SEMICOLON = /;+$/; + +/* RFC6265 S5.1.1.5: + * [fail if] the day-of-month-value is less than 1 or greater than 31 + */ +var DAY_OF_MONTH = /^(0?[1-9]|[12][0-9]|3[01])$/; + +/* RFC6265 S5.1.1.5: + * [fail if] + * * the hour-value is greater than 23, + * * the minute-value is greater than 59, or + * * the second-value is greater than 59. + */ +var TIME = /(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/; +var STRICT_TIME = /^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/; + +var MONTH = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$/i; +var MONTH_TO_NUM = { + jan:0, feb:1, mar:2, apr:3, may:4, jun:5, jul:6, aug:7, sep:8, oct:9, nov:10, dec:11 +}; +var NUM_TO_MONTH = [ + 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' +]; +var NUM_TO_DAY = [ + 'Sun','Mon','Tue','Wed','Thu','Fri','Sat' +]; + +var YEAR = /^([1-9][0-9]{1,3})$/; // 2 to 4 digits (will check range when parsing) + +var MAX_TIME = 2147483647000; // 31-bit max +var MAX_DATE = new Date(CookieJar.MAX_TIME); // 31-bit max +var MIN_TIME = 0; // 31-bit min +var MIN_DATE = new Date(CookieJar.MIN_TIME); // 31-bit min + + +// RFC6265 S5.1.1 date parser: +function parseDate(str,strict) { + if (!str) return; + var found_time, found_dom, found_month, found_year; + + /* RFC6265 S5.1.1: + * 2. Process each date-token sequentially in the order the date-tokens + * appear in the cookie-date + */ + var tokens = str.split(DATE_DELIM); + if (!tokens) return; + + var date = new Date(); + date.setMilliseconds(0); + + for (var i=0; i= 10 ? d : '0'+d; + var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h; + var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m; + var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s; + return NUM_TO_DAY[date.getUTCDay()] + ', ' + + d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+ + h+':'+m+':'+s+' GMT'; +} + +// S5.1.2 Canonicalized Host Names +function canonicalDomain(str) { + if (str == null) return null; + str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading . + + // convert to IDN if any non-ASCII characters + if (punycode && /[^\u0001-\u007f]/.test(str)) + str = punycode.toASCII(str); + + return str.toLowerCase(); +} + +// S5.1.3 Domain Matching +function domainMatch(str, domStr, canonicalize) { + if (str == null || domStr == null) return null; + if (canonicalize !== false) { + str = canonicalDomain(str); + domStr = canonicalDomain(domStr); + } + + /* + * "The domain string and the string are identical. (Note that both the + * domain string and the string will have been canonicalized to lower case at + * this point)" + */ + if (str == domStr) return true; + + /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */ + + /* "* The string is a host name (i.e., not an IP address)." */ + if (net.isIP(str)) return false; + + /* "* The domain string is a suffix of the string" */ + var idx = str.indexOf(domStr); + if (idx <= 0) return false; // it's a non-match (-1) or prefix (0) + + // e.g "a.b.c".indexOf("b.c") === 2 + // 5 === 3+2 + if (str.length !== domStr.length + idx) // it's not a suffix + return false; + + /* "* The last character of the string that is not included in the domain + * string is a %x2E (".") character." */ + if (str.substr(idx-1,1) !== '.') return false; + return true; +} + + +// RFC6265 S5.1.4 Paths and Path-Match + +/* + * "The user agent MUST use an algorithm equivalent to the following algorithm + * to compute the default-path of a cookie:" + * + * Assumption: the path (and not query part or absolute uri) is passed in. + */ +function defaultPath(path) { + // "2. If the uri-path is empty or if the first character of the uri-path is not + // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps. + if (!path || path.substr(0,1) !== "/") return "/"; + + // "3. If the uri-path contains no more than one %x2F ("/") character, output + // %x2F ("/") and skip the remaining step." + if (path === "/") return path; + + var rightSlash = path.lastIndexOf("/"); + if (rightSlash === 0) return "/"; + + // "4. Output the characters of the uri-path from the first character up to, + // but not including, the right-most %x2F ("/")." + return path.slice(0, rightSlash); +} + +/* + * "A request-path path-matches a given cookie-path if at least one of the + * following conditions holds:" + */ +function pathMatch(reqPath,cookiePath) { + // "o The cookie-path and the request-path are identical." + if (cookiePath === reqPath) + return true; + + var idx = reqPath.indexOf(cookiePath); + if (idx === 0) { + // "o The cookie-path is a prefix of the request-path, and the last + // character of the cookie-path is %x2F ("/")." + if (cookiePath.substr(-1) === "/") + return true; + + // " o The cookie-path is a prefix of the request-path, and the first + // character of the request-path that is not included in the cookie- path + // is a %x2F ("/") character." + if (reqPath.substr(cookiePath.length,1) === "/") + return true; + } + + return false; +} + +function parse(str, strict) { + str = str.trim(); + + // S4.1.1 Trailing semi-colons are not part of the specification. + // If we are not in strict mode we remove the trailing semi-colons. + var semiColonCheck = TRAILING_SEMICOLON.exec(str); + if (semiColonCheck) { + if (strict) return; + str = str.slice(0, semiColonCheck.index); + } + + // We use a regex to parse the "name-value-pair" part of S5.2 + var firstSemi = str.indexOf(';'); // S5.2 step 1 + var pairRx = strict ? COOKIE_PAIR_STRICT : COOKIE_PAIR; + var result = pairRx.exec(firstSemi === -1 ? str : str.substr(0,firstSemi)); + + // Rx satisfies the "the name string is empty" and "lacks a %x3D ("=")" + // constraints as well as trimming any whitespace. + if (!result) return; + + var c = new Cookie(); + c.key = result[1]; // the regexp should trim() already + c.value = result[3]; // [2] is quotes or empty-string + + if (firstSemi === -1) return c; + + // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question)." plus later on in the same section + // "discard the first ";" and trim". + var unparsed = str.slice(firstSemi).replace(/^\s*;\s*/,'').trim(); + + // "If the unparsed-attributes string is empty, skip the rest of these + // steps." + if (unparsed.length === 0) return c; + + /* + * S5.2 says that when looping over the items "[p]rocess the attribute-name + * and attribute-value according to the requirements in the following + * subsections" for every item. Plus, for many of the individual attributes + * in S5.3 it says to use the "attribute-value of the last attribute in the + * cookie-attribute-list". Therefore, in this implementation, we overwrite + * the previous value. + */ + var cookie_avs = unparsed.split(/\s*;\s*/); + while (cookie_avs.length) { + var av = cookie_avs.shift(); + + if (strict && !EXTENSION_AV.test(av)) return; + + var av_sep = av.indexOf('='); + var av_key, av_value; + if (av_sep === -1) { + av_key = av; + av_value = null; + } else { + av_key = av.substr(0,av_sep); + av_value = av.substr(av_sep+1); + } + + av_key = av_key.trim().toLowerCase(); + if (av_value) av_value = av_value.trim(); + + switch(av_key) { + case 'expires': // S5.2.1 + if (!av_value) { if(strict){return}else{break;} } + var exp = parseDate(av_value,strict); + // "If the attribute-value failed to parse as a cookie date, ignore the + // cookie-av." + if (exp == null) { if(strict){return}else{break;} } + c.expires = exp; + // over and underflow not realistically a concern: V8's getTime() seems to + // store something larger than a 32-bit time_t (even with 32-bit node) + break; + + case 'max-age': // S5.2.2 + if (!av_value) { if(strict){return}else{break;} } + // "If the first character of the attribute-value is not a DIGIT or a "-" + // character ...[or]... If the remainder of attribute-value contains a + // non-DIGIT character, ignore the cookie-av." + if (!/^-?[0-9]+$/.test(av_value)) { if(strict){return}else{break;} } + var delta = parseInt(av_value,10); + if (strict && delta <= 0) return; // S4.1.1 + // "If delta-seconds is less than or equal to zero (0), let expiry-time + // be the earliest representable date and time." + c.setMaxAge(delta); + break; + + case 'domain': // S5.2.3 + // "If the attribute-value is empty, the behavior is undefined. However, + // the user agent SHOULD ignore the cookie-av entirely." + if (!av_value) { if(strict){return}else{break;} } + // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E + // (".") character." + var domain = av_value.trim().replace(/^\./,''); + if (!domain) { if(strict){return}else{break;} } // see "is empty" above + // "Convert the cookie-domain to lower case." + c.domain = domain.toLowerCase(); + break; + + case 'path': // S5.2.4 + /* + * "If the attribute-value is empty or if the first character of the + * attribute-value is not %x2F ("/"): + * Let cookie-path be the default-path. + * Otherwise: + * Let cookie-path be the attribute-value." + * + * We'll represent the default-path as null since it depends on the + * context of the parsing. + */ + if (!av_value || av_value.substr(0,1) != "/") { if(strict){return}else{break;} } + c.path = av_value; + break; + + case 'secure': // S5.2.5 + /* + * "If the attribute-name case-insensitively matches the string "Secure", + * the user agent MUST append an attribute to the cookie-attribute-list + * with an attribute-name of Secure and an empty attribute-value." + */ + if (av_value != null) { if(strict){return} } + c.secure = true; + break; + + case 'httponly': // S5.2.6 -- effectively the same as 'secure' + if (av_value != null) { if(strict){return} } + c.httpOnly = true; + break; + + default: + c.extensions = c.extensions || []; + c.extensions.push(av); + break; + } + } + + // ensure a default date for sorting: + c.creation = new Date(); + return c; +} + +function fromJSON(str) { + if (!str) return null; + + var obj; + try { + obj = JSON.parse(str); + } catch (e) { + return null; + } + + var c = new Cookie(); + for (var i=0; i 1) { + var lindex = path.lastIndexOf('/'); + if (lindex === 0) break; + path = path.substr(0,lindex); + permutations.push(path); + } + permutations.push('/'); + return permutations; +} + + +function Cookie (opts) { + if (typeof opts !== "object") return; + Object.keys(opts).forEach(function (key) { + if (Cookie.prototype.hasOwnProperty(key)) { + this[key] = opts[key] || Cookie.prototype[key]; + } + }.bind(this)); +} + +Cookie.parse = parse; +Cookie.fromJSON = fromJSON; + +Cookie.prototype.key = ""; +Cookie.prototype.value = ""; + +// the order in which the RFC has them: +Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity +Cookie.prototype.maxAge = null; // takes precedence over expires for TTL +Cookie.prototype.domain = null; +Cookie.prototype.path = null; +Cookie.prototype.secure = false; +Cookie.prototype.httpOnly = false; +Cookie.prototype.extensions = null; + +// set by the CookieJar: +Cookie.prototype.hostOnly = null; // boolean when set +Cookie.prototype.pathIsDefault = null; // boolean when set +Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse +Cookie.prototype.lastAccessed = null; // Date when set + +var cookieProperties = Object.freeze(Object.keys(Cookie.prototype).map(function(p) { + if (p instanceof Function) return; + return p; +})); +var numCookieProperties = cookieProperties.length; + +Cookie.prototype.inspect = function inspect() { + var now = Date.now(); + return 'Cookie="'+this.toString() + + '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') + + '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') + + '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') + + '"'; +}; + +Cookie.prototype.validate = function validate() { + if (!COOKIE_OCTETS.test(this.value)) + return false; + if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires,true)) + return false; + if (this.maxAge != null && this.maxAge <= 0) + return false; // "Max-Age=" non-zero-digit *DIGIT + if (this.path != null && !PATH_VALUE.test(this.path)) + return false; + + var cdomain = this.cdomain(); + if (cdomain) { + if (cdomain.match(/\.$/)) + return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this + var suffix = pubsuffix.getPublicSuffix(cdomain); + if (suffix == null) // it's a public suffix + return false; + } + return true; +}; + +Cookie.prototype.setExpires = function setExpires(exp) { + if (exp instanceof Date) this.expires = exp; + else this.expires = parseDate(exp) || "Infinity"; +}; + +Cookie.prototype.setMaxAge = function setMaxAge(age) { + if (age === Infinity || age === -Infinity) + this.maxAge = age.toString(); // so JSON.stringify() works + else + this.maxAge = age; +}; + +// gives Cookie header format +Cookie.prototype.cookieString = function cookieString() { + var val = this.value; + if (val == null) val = ''; + if (!val.length || COOKIE_OCTETS.test(val)) + return this.key+'='+val; + else + return this.key+'="'+val+'"'; +}; + +// gives Set-Cookie header format +Cookie.prototype.toString = function toString() { + var str = this.cookieString(); + + if (this.expires != Infinity) { + if (this.expires instanceof Date) + str += '; Expires='+formatDate(this.expires); + else + str += '; Expires='+this.expires; + } + + if (this.maxAge != null && this.maxAge != Infinity) + str += '; Max-Age='+this.maxAge; + + if (this.domain && !this.hostOnly) + str += '; Domain='+this.domain; + if (this.path) + str += '; Path='+this.path; + + if (this.secure) str += '; Secure'; + if (this.httpOnly) str += '; HttpOnly'; + if (this.extensions) { + this.extensions.forEach(function(ext) { + str += '; '+ext; + }); + } + + return str; +}; + +// TTL() partially replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere) +// S5.3 says to give the "latest representable date" for which we use Infinity +// For "expired" we use 0 +Cookie.prototype.TTL = function TTL(now) { + /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires + * attribute, the Max-Age attribute has precedence and controls the + * expiration date of the cookie. + * (Concurs with S5.3 step 3) + */ + if (this.maxAge != null) { + return this.maxAge<=0 ? 0 : this.maxAge*1000; + } + + var expires = this.expires; + if (expires != Infinity) { + if (!(expires instanceof Date)) { + expires = parseDate(expires) || Infinity; + } + + if (expires == Infinity) + return Infinity; + + return expires.getTime() - (now || Date.now()); + } + + return Infinity; +}; + +// expiryTime() replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere) +Cookie.prototype.expiryTime = function expiryTime(now) { + if (this.maxAge != null) { + var relativeTo = this.creation || now || new Date(); + var age = (this.maxAge <= 0) ? -Infinity : this.maxAge*1000; + return relativeTo.getTime() + age; + } + + if (this.expires == Infinity) return Infinity; + return this.expires.getTime(); +}; + +// expiryDate() replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere), except it returns a Date +Cookie.prototype.expiryDate = function expiryDate(now) { + var millisec = this.expiryTime(now); + if (millisec == Infinity) return new Date(MAX_TIME); + else if (millisec == -Infinity) return new Date(MIN_TIME); + else return new Date(millisec); +}; + +// This replaces the "persistent-flag" parts of S5.3 step 3 +Cookie.prototype.isPersistent = function isPersistent() { + return (this.maxAge != null || this.expires != Infinity); +}; + +// Mostly S5.1.2 and S5.2.3: +Cookie.prototype.cdomain = +Cookie.prototype.canonicalizedDomain = function canonicalizedDomain() { + if (this.domain == null) return null; + return canonicalDomain(this.domain); +}; + + +var memstore; +function CookieJar(store, rejectPublicSuffixes) { + if (rejectPublicSuffixes != null) this.rejectPublicSuffixes = rejectPublicSuffixes; + if (!store) { + memstore = memstore || require('./memstore'); + store = new memstore.MemoryCookieStore(); + } + this.store = store; +} +CookieJar.prototype.store = null; +CookieJar.prototype.rejectPublicSuffixes = true; + +CookieJar.prototype.setCookie = function setCookie(cookie, url, options, cb) { + var err; + var context = (url instanceof Object) ? url : urlParse(url); + if (options instanceof Function) { + cb = options; + options = {}; + } + + var host = canonicalDomain(context.hostname); + + // S5.3 step 1 + if (!(cookie instanceof Cookie)) + cookie = Cookie.parse(cookie, options.strict === true); + if (!cookie) { + err = new Error("Cookie failed to parse"); + return cb(options.ignoreError ? null : err); + } + + // S5.3 step 2 + var now = options.now || new Date(); // will assign later to save effort in the face of errors + + // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie() + + // S5.3 step 4: NOOP; domain is null by default + + // S5.3 step 5: public suffixes + if (this.rejectPublicSuffixes && cookie.domain) { + var suffix = pubsuffix.getPublicSuffix(cookie.cdomain()); + if (suffix == null) { // e.g. "com" + err = new Error("Cookie has domain set to a public suffix"); + return cb(options.ignoreError ? null : err); + } + } + + // S5.3 step 6: + if (cookie.domain) { + if (!domainMatch(host, cookie.cdomain(), false)) { + err = new Error("Cookie not in this host's domain. Cookie:"+cookie.cdomain()+" Request:"+host); + return cb(options.ignoreError ? null : err); + } + + if (cookie.hostOnly == null) // don't reset if already set + cookie.hostOnly = false; + + } else { + cookie.hostOnly = true; + cookie.domain = host; + } + + // S5.3 step 7: "Otherwise, set the cookie's path to the default-path of the + // request-uri" + if (!cookie.path) { + cookie.path = defaultPath(context.pathname); + cookie.pathIsDefault = true; + } else { + if (cookie.path.length > 1 && cookie.path.substr(-1) == '/') + cookie.path = cookie.path.slice(0,-1); + } + + // S5.3 step 8: NOOP; secure attribute + // S5.3 step 9: NOOP; httpOnly attribute + + // S5.3 step 10 + if (options.http === false && cookie.httpOnly) { + err = new Error("Cookie is HttpOnly and this isn't an HTTP API"); + return cb(options.ignoreError ? null : err); + } + + var store = this.store; + + if (!store.updateCookie) { + store.updateCookie = function stubUpdateCookie(oldCookie, newCookie, cb) { + this.putCookie(newCookie, cb); + }; + } + + store.findCookie(cookie.domain, cookie.path, cookie.key, function(err,oldCookie) { + if (err) return cb(err); + + var next = function(err) { + if (err) return cb(err); + else cb(null, cookie); + }; + + if (oldCookie) { + // S5.3 step 11 - "If the cookie store contains a cookie with the same name, + // domain, and path as the newly created cookie:" + if (options.http === false && oldCookie.httpOnly) { // step 11.2 + err = new Error("old Cookie is HttpOnly and this isn't an HTTP API"); + return cb(options.ignoreError ? null : err); + } + cookie.creation = oldCookie.creation; // step 11.3 + cookie.lastAccessed = now; + // Step 11.4 (delete cookie) is implied by just setting the new one: + store.updateCookie(oldCookie, cookie, next); // step 12 + + } else { + cookie.creation = cookie.lastAccessed = now; + store.putCookie(cookie, next); // step 12 + } + }); +}; + +// RFC6365 S5.4 +CookieJar.prototype.getCookies = function getCookies(url, options, cb) { + var context = (url instanceof Object) ? url : urlParse(url); + if (options instanceof Function) { + cb = options; + options = {}; + } + + var host = canonicalDomain(context.hostname); + var path = context.pathname || '/'; + + var secure = options.secure; + if (secure == null && context.protocol && + (context.protocol == 'https:' || context.protocol == 'wss:')) + { + secure = true; + } + + var http = options.http; + if (http == null) http = true; + + var now = options.now || Date.now(); + var expireCheck = options.expire !== false; + var allPaths = !!options.allPaths; + var store = this.store; + + function matchingCookie(c) { + // "Either: + // The cookie's host-only-flag is true and the canonicalized + // request-host is identical to the cookie's domain. + // Or: + // The cookie's host-only-flag is false and the canonicalized + // request-host domain-matches the cookie's domain." + if (c.hostOnly) { + if (c.domain != host) return false; + } else { + if (!domainMatch(host, c.domain, false)) return false; + } + + // "The request-uri's path path-matches the cookie's path." + if (!allPaths && !pathMatch(path, c.path)) + return false; + + // "If the cookie's secure-only-flag is true, then the request-uri's + // scheme must denote a "secure" protocol" + if (c.secure && !secure) + return false; + + // "If the cookie's http-only-flag is true, then exclude the cookie if the + // cookie-string is being generated for a "non-HTTP" API" + if (c.httpOnly && !http) + return false; + + // deferred from S5.3 + // non-RFC: allow retention of expired cookies by choice + if (expireCheck && c.expiryTime() <= now) { + store.removeCookie(c.domain, c.path, c.key, function(){}); // result ignored + return false; + } + + return true; + } + + store.findCookies(host, allPaths ? null : path, function(err,cookies) { + if (err) return cb(err); + + cookies = cookies.filter(matchingCookie); + + // sorting of S5.4 part 2 + if (options.sort !== false) + cookies = cookies.sort(cookieCompare); + + // S5.4 part 3 + var now = new Date(); + cookies.forEach(function(c) { c.lastAccessed = now }); + // TODO persist lastAccessed + + cb(null,cookies); + }); +}; + +CookieJar.prototype.getCookieString = function(/*..., cb*/) { + var args = Array.prototype.slice.call(arguments,0); + var cb = args.pop(); + var next = function(err,cookies) { + if (err) cb(err); + else cb(null, cookies.map(function(c){return c.cookieString()}).join('; ')); + }; + args.push(next); + this.getCookies.apply(this,args); +}; + +CookieJar.prototype.getSetCookieStrings = function(/*..., cb*/) { + var args = Array.prototype.slice.call(arguments,0); + var cb = args.pop(); + var next = function(err,cookies) { + if (err) cb(err); + else cb(null, cookies.map(function(c){return c.toString()})); + }; + args.push(next); + this.getCookies.apply(this,args); +}; + + + +module.exports = { + CookieJar: CookieJar, + Cookie: Cookie, + parseDate: parseDate, + formatDate: formatDate, + parse: parse, + fromJSON: fromJSON, + domainMatch: domainMatch, + defaultPath: defaultPath, + pathMatch: pathMatch, + getPublicSuffix: pubsuffix.getPublicSuffix, + cookieCompare: cookieCompare, + permuteDomain: permuteDomain, + permutePath: permutePath, + canonicalDomain: canonicalDomain, +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js new file mode 100644 index 00000000..66abb376 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js @@ -0,0 +1,102 @@ +var tough = require('./cookie'); +var permuteDomain = tough.permuteDomain; +var permutePath = tough.permutePath; +var util = require('util'); + +function MemoryCookieStore() { + this.idx = {}; +} +module.exports.MemoryCookieStore = MemoryCookieStore; +MemoryCookieStore.prototype.idx = null; + +// force a default depth: +MemoryCookieStore.prototype.inspect = function inspect() { + return "{ idx: "+util.inspect(this.idx, false, 2)+' }'; +}; + +MemoryCookieStore.prototype.findCookie = function findCookie(domain, path, key, cb) { + if (!this.idx[domain]) return cb(null,undefined); + if (!this.idx[domain][path]) return cb(null,undefined); + return cb(null,this.idx[domain][path][key]||null); +}; + +MemoryCookieStore.prototype.findCookies = function findCookies(domain, path, cb) { + var results = []; + if (!domain) return cb(null,[]); + + var pathMatcher; + if (!path) { + // null or '/' means "all paths" + pathMatcher = function matchAll(domainIndex) { + for (var curPath in domainIndex) { + var pathIndex = domainIndex[curPath]; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + } + }; + + } else if (path === '/') { + pathMatcher = function matchSlash(domainIndex) { + var pathIndex = domainIndex['/']; + if (!pathIndex) return; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + }; + + } else { + var paths = permutePath(path) || [path]; + pathMatcher = function matchRFC(domainIndex) { + paths.forEach(function(curPath) { + var pathIndex = domainIndex[curPath]; + if (!pathIndex) return; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + }); + }; + } + + var domains = permuteDomain(domain) || [domain]; + var idx = this.idx; + domains.forEach(function(curDomain) { + var domainIndex = idx[curDomain]; + if (!domainIndex) return; + pathMatcher(domainIndex); + }); + + cb(null,results); +}; + +MemoryCookieStore.prototype.putCookie = function putCookie(cookie, cb) { + if (!this.idx[cookie.domain]) this.idx[cookie.domain] = {}; + if (!this.idx[cookie.domain][cookie.path]) this.idx[cookie.domain][cookie.path] = {}; + this.idx[cookie.domain][cookie.path][cookie.key] = cookie; + cb(null); +}; + +MemoryCookieStore.prototype.updateCookie = function updateCookie(oldCookie, newCookie, cb) { + // updateCookie() may avoid updating cookies that are identical. For example, + // lastAccessed may not be important to some stores and an equality + // comparison could exclude that field. + this.putCookie(newCookie,cb); +}; + +MemoryCookieStore.prototype.removeCookie = function removeCookie(domain, path, key, cb) { + if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) { + delete this.idx[domain][path][key]; + } + cb(null); +}; + +MemoryCookieStore.prototype.removeCookies = function removeCookies(domain, path, cb) { + if (!this.idx[domain]) { + if (path) { + delete this.idx[domain][path]; + } else { + delete this.idx[domain]; + } + } + return cb(null); +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js new file mode 100644 index 00000000..a7031473 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js @@ -0,0 +1,69 @@ +/**************************************************** + * AUTOMATICALLY GENERATED by generate-pubsuffix.js * + * DO NOT EDIT! * + ****************************************************/ + +module.exports.getPublicSuffix = function getPublicSuffix(domain) { + /* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + if (!domain) return null; + if (domain.match(/^\./)) return null; + + domain = domain.toLowerCase(); + var parts = domain.split('.').reverse(); + + var suffix = ''; + var suffixLen = 0; + for (var i=0; i suffixLen) { + return parts.slice(0,suffixLen+1).reverse().join('.'); + } + + return null; +}; + +// The following generated structure is used under the MPL version 1.1 +// See public-suffix.txt for more information + +var index = module.exports.index = Object.freeze( +{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"marketplace.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"taxi.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"an":true,"com.an":true,"net.an":true,"org.an":true,"edu.an":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"*.ar":true,"congresodelalengua3.ar":false,"educ.ar":false,"gobiernoelectronico.ar":false,"mecon.ar":false,"nacion.ar":false,"nic.ar":false,"promocion.ar":false,"retina.ar":false,"uba.ar":false,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"csiro.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"act.gov.au":true,"nt.gov.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"org.ba":true,"net.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"unsa.ba":true,"unbi.ba":true,"co.ba":true,"com.ba":true,"rs.ba":true,"bb":true,"biz.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"br":true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"can.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mus.br":true,"net.br":true,"nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"gov.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cx":true,"gov.cx":true,"*.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"*.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"org.gg":true,"net.gg":true,"sch.gg":true,"gov.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"gm":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"*.gt":true,"www.gt":false,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"net.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"co.id":true,"go.id":true,"mil.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"*.il":true,"im":true,"co.im":true,"ltd.co.im":true,"plc.co.im":true,"net.im":true,"gov.im":true,"org.im":true,"nic.im":true,"ac.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"agrigento.it":true,"ag.it":true,"alessandria.it":true,"al.it":true,"ancona.it":true,"an.it":true,"aosta.it":true,"aoste.it":true,"ao.it":true,"arezzo.it":true,"ar.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"ap.it":true,"asti.it":true,"at.it":true,"avellino.it":true,"av.it":true,"bari.it":true,"ba.it":true,"andria-barletta-trani.it":true,"andriabarlettatrani.it":true,"trani-barletta-andria.it":true,"tranibarlettaandria.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"andria-trani-barletta.it":true,"andriatranibarletta.it":true,"trani-andria-barletta.it":true,"traniandriabarletta.it":true,"bt.it":true,"belluno.it":true,"bl.it":true,"benevento.it":true,"bn.it":true,"bergamo.it":true,"bg.it":true,"biella.it":true,"bi.it":true,"bologna.it":true,"bo.it":true,"bolzano.it":true,"bozen.it":true,"balsan.it":true,"alto-adige.it":true,"altoadige.it":true,"suedtirol.it":true,"bz.it":true,"brescia.it":true,"bs.it":true,"brindisi.it":true,"br.it":true,"cagliari.it":true,"ca.it":true,"caltanissetta.it":true,"cl.it":true,"campobasso.it":true,"cb.it":true,"carboniaiglesias.it":true,"carbonia-iglesias.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"ci.it":true,"caserta.it":true,"ce.it":true,"catania.it":true,"ct.it":true,"catanzaro.it":true,"cz.it":true,"chieti.it":true,"ch.it":true,"como.it":true,"co.it":true,"cosenza.it":true,"cs.it":true,"cremona.it":true,"cr.it":true,"crotone.it":true,"kr.it":true,"cuneo.it":true,"cn.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"ogliastra.it":true,"og.it":true,"enna.it":true,"en.it":true,"ferrara.it":true,"fe.it":true,"fermo.it":true,"fm.it":true,"firenze.it":true,"florence.it":true,"fi.it":true,"foggia.it":true,"fg.it":true,"forli-cesena.it":true,"forlicesena.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"fc.it":true,"frosinone.it":true,"fr.it":true,"genova.it":true,"genoa.it":true,"ge.it":true,"gorizia.it":true,"go.it":true,"grosseto.it":true,"gr.it":true,"imperia.it":true,"im.it":true,"isernia.it":true,"is.it":true,"laquila.it":true,"aquila.it":true,"aq.it":true,"la-spezia.it":true,"laspezia.it":true,"sp.it":true,"latina.it":true,"lt.it":true,"lecce.it":true,"le.it":true,"lecco.it":true,"lc.it":true,"livorno.it":true,"li.it":true,"lodi.it":true,"lo.it":true,"lucca.it":true,"lu.it":true,"macerata.it":true,"mc.it":true,"mantova.it":true,"mn.it":true,"massa-carrara.it":true,"massacarrara.it":true,"carrara-massa.it":true,"carraramassa.it":true,"ms.it":true,"matera.it":true,"mt.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"vs.it":true,"messina.it":true,"me.it":true,"milano.it":true,"milan.it":true,"mi.it":true,"modena.it":true,"mo.it":true,"monza.it":true,"monza-brianza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"monza-e-della-brianza.it":true,"mb.it":true,"napoli.it":true,"naples.it":true,"na.it":true,"novara.it":true,"no.it":true,"nuoro.it":true,"nu.it":true,"oristano.it":true,"or.it":true,"padova.it":true,"padua.it":true,"pd.it":true,"palermo.it":true,"pa.it":true,"parma.it":true,"pr.it":true,"pavia.it":true,"pv.it":true,"perugia.it":true,"pg.it":true,"pescara.it":true,"pe.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"pu.it":true,"piacenza.it":true,"pc.it":true,"pisa.it":true,"pi.it":true,"pistoia.it":true,"pt.it":true,"pordenone.it":true,"pn.it":true,"potenza.it":true,"pz.it":true,"prato.it":true,"po.it":true,"ragusa.it":true,"rg.it":true,"ravenna.it":true,"ra.it":true,"reggio-calabria.it":true,"reggiocalabria.it":true,"rc.it":true,"reggio-emilia.it":true,"reggioemilia.it":true,"re.it":true,"rieti.it":true,"ri.it":true,"rimini.it":true,"rn.it":true,"roma.it":true,"rome.it":true,"rm.it":true,"rovigo.it":true,"ro.it":true,"salerno.it":true,"sa.it":true,"sassari.it":true,"ss.it":true,"savona.it":true,"sv.it":true,"siena.it":true,"si.it":true,"siracusa.it":true,"sr.it":true,"sondrio.it":true,"so.it":true,"taranto.it":true,"ta.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"ot.it":true,"teramo.it":true,"te.it":true,"terni.it":true,"tr.it":true,"torino.it":true,"turin.it":true,"to.it":true,"trapani.it":true,"tp.it":true,"trento.it":true,"trentino.it":true,"tn.it":true,"treviso.it":true,"tv.it":true,"trieste.it":true,"ts.it":true,"udine.it":true,"ud.it":true,"varese.it":true,"va.it":true,"venezia.it":true,"venice.it":true,"ve.it":true,"verbania.it":true,"vb.it":true,"vercelli.it":true,"vc.it":true,"verona.it":true,"vr.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vv.it":true,"vicenza.it":true,"vi.it":true,"viterbo.it":true,"vt.it":true,"je":true,"co.je":true,"org.je":true,"net.je":true,"sch.je":true,"gov.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"*.aichi.jp":true,"*.akita.jp":true,"*.aomori.jp":true,"*.chiba.jp":true,"*.ehime.jp":true,"*.fukui.jp":true,"*.fukuoka.jp":true,"*.fukushima.jp":true,"*.gifu.jp":true,"*.gunma.jp":true,"*.hiroshima.jp":true,"*.hokkaido.jp":true,"*.hyogo.jp":true,"*.ibaraki.jp":true,"*.ishikawa.jp":true,"*.iwate.jp":true,"*.kagawa.jp":true,"*.kagoshima.jp":true,"*.kanagawa.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.kochi.jp":true,"*.kumamoto.jp":true,"*.kyoto.jp":true,"*.mie.jp":true,"*.miyagi.jp":true,"*.miyazaki.jp":true,"*.nagano.jp":true,"*.nagasaki.jp":true,"*.nagoya.jp":true,"*.nara.jp":true,"*.niigata.jp":true,"*.oita.jp":true,"*.okayama.jp":true,"*.okinawa.jp":true,"*.osaka.jp":true,"*.saga.jp":true,"*.saitama.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.shiga.jp":true,"*.shimane.jp":true,"*.shizuoka.jp":true,"*.tochigi.jp":true,"*.tokushima.jp":true,"*.tokyo.jp":true,"*.tottori.jp":true,"*.toyama.jp":true,"*.wakayama.jp":true,"*.yamagata.jp":true,"*.yamaguchi.jp":true,"*.yamanashi.jp":true,"*.yokohama.jp":true,"metro.tokyo.jp":false,"pref.aichi.jp":false,"pref.akita.jp":false,"pref.aomori.jp":false,"pref.chiba.jp":false,"pref.ehime.jp":false,"pref.fukui.jp":false,"pref.fukuoka.jp":false,"pref.fukushima.jp":false,"pref.gifu.jp":false,"pref.gunma.jp":false,"pref.hiroshima.jp":false,"pref.hokkaido.jp":false,"pref.hyogo.jp":false,"pref.ibaraki.jp":false,"pref.ishikawa.jp":false,"pref.iwate.jp":false,"pref.kagawa.jp":false,"pref.kagoshima.jp":false,"pref.kanagawa.jp":false,"pref.kochi.jp":false,"pref.kumamoto.jp":false,"pref.kyoto.jp":false,"pref.mie.jp":false,"pref.miyagi.jp":false,"pref.miyazaki.jp":false,"pref.nagano.jp":false,"pref.nagasaki.jp":false,"pref.nara.jp":false,"pref.niigata.jp":false,"pref.oita.jp":false,"pref.okayama.jp":false,"pref.okinawa.jp":false,"pref.osaka.jp":false,"pref.saga.jp":false,"pref.saitama.jp":false,"pref.shiga.jp":false,"pref.shimane.jp":false,"pref.shizuoka.jp":false,"pref.tochigi.jp":false,"pref.tokushima.jp":false,"pref.tottori.jp":false,"pref.toyama.jp":false,"pref.wakayama.jp":false,"pref.yamagata.jp":false,"pref.yamaguchi.jp":false,"pref.yamanashi.jp":false,"city.chiba.jp":false,"city.fukuoka.jp":false,"city.hiroshima.jp":false,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.kyoto.jp":false,"city.nagoya.jp":false,"city.niigata.jp":false,"city.okayama.jp":false,"city.osaka.jp":false,"city.saitama.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.shizuoka.jp":false,"city.yokohama.jp":false,"*.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"*.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"*.mz":true,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ac.ng":true,"com.ng":true,"edu.ng":true,"gov.ng":true,"net.ng":true,"org.ng":true,"*.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"*.nz":true,"*.om":true,"mediaphone.om":false,"nawrastelecom.om":false,"nawras.om":false,"omanmobile.om":false,"omanpost.om":false,"omantel.om":false,"rakpetroleum.om":false,"siemens.om":false,"songfest.om":false,"statecouncil.om":false,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"com.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"net.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"org.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"6bone.pl":true,"art.pl":true,"mbone.pl":true,"gov.pl":true,"uw.gov.pl":true,"um.gov.pl":true,"ug.gov.pl":true,"upow.gov.pl":true,"starostwo.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"po.gov.pl":true,"pa.gov.pl":true,"ngo.pl":true,"irc.pl":true,"usenet.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"siedlce.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aca.pro":true,"bar.pro":true,"cpa.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"eng.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"*.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"com.re":true,"asso.re":true,"nom.re":true,"ro":true,"com.ro":true,"org.ro":true,"tm.ro":true,"nt.ro":true,"nom.ro":true,"info.ro":true,"rec.ro":true,"arts.ro":true,"firm.ro":true,"store.ro":true,"www.ro":true,"rs":true,"co.rs":true,"org.rs":true,"edu.rs":true,"ac.rs":true,"gov.rs":true,"in.rs":true,"ru":true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"mosreg.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"pskov.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"magnitka.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"sshn.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"si":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"*.sv":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"*.tr":true,"nic.tr":false,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"ac.tz":true,"co.tz":true,"go.tz":true,"mil.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"chernigov.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"ks.ua":true,"kv.ua":true,"lg.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lviv.ua":true,"mk.ua":true,"nikolaev.ua":true,"od.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rovno.ua":true,"rv.ua":true,"sebastopol.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vn.ua":true,"zaporizhzhe.ua":true,"zp.ua":true,"zhitomir.ua":true,"zt.ua":true,"co.ua":true,"pp.ua":true,"ug":true,"co.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"or.ug":true,"*.uk":true,"*.sch.uk":true,"bl.uk":false,"british-library.uk":false,"icnet.uk":false,"jet.uk":false,"mod.uk":false,"nel.uk":false,"nhs.uk":false,"nic.uk":false,"nls.uk":false,"national-library-scotland.uk":false,"parliament.uk":false,"police.uk":false,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.nd.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.sd.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wv.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.de.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wv.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"*.uy":true,"uz":true,"com.uz":true,"co.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"*.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--54b7fta0cc":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--node":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--mgb9awbf":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"*.za":true,"*.zm":true,"*.zw":true,"biz.at":true,"info.at":true,"priv.at":true,"co.ca":true,"ar.com":true,"br.com":true,"cn.com":true,"de.com":true,"eu.com":true,"gb.com":true,"gr.com":true,"hu.com":true,"jpn.com":true,"kr.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"uk.com":true,"us.com":true,"uy.com":true,"za.com":true,"gb.net":true,"jp.net":true,"se.net":true,"uk.net":true,"ae.org":true,"us.org":true,"com.de":true,"operaunite.com":true,"appspot.com":true,"iki.fi":true,"c.la":true,"za.net":true,"za.org":true,"co.nl":true,"co.no":true,"co.pl":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true}); + +// END of automatically generated file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt new file mode 100644 index 00000000..11dddd00 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt new file mode 100644 index 00000000..97067e54 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json new file mode 100644 index 00000000..69e12ae2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json @@ -0,0 +1,77 @@ +{ + "name": "punycode", + "version": "1.2.3", + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "homepage": "http://mths.be/punycode", + "main": "punycode.js", + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "licenses": [ + { + "type": "MIT", + "url": "http://mths.be/mit" + }, + { + "type": "GPL", + "url": "http://mths.be/gpl" + } + ], + "author": { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "http://mathiasbynens.be/" + }, + "contributors": [ + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "http://mathiasbynens.be/" + }, + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + } + ], + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/bestiejs/punycode.js.git" + }, + "engines": [ + "node", + "rhino" + ], + "directories": { + "doc": "docs", + "test": "tests" + }, + "scripts": { + "test": "node tests/tests.js" + }, + "devDependencies": { + "grunt": "~0.4.1", + "grunt-contrib-uglify": "~0.2.2", + "grunt-shell": "~0.2.2", + "istanbul": "~0.1.37", + "qunit-clib": "~1.3.0", + "qunitjs": "~1.11.0", + "requirejs": "~2.1.6" + }, + "readme": "ERROR: No README data found!", + "_id": "punycode@1.2.3", + "dist": { + "shasum": "b4e304471082d783c73b3bafabf2fd9b6a486266" + }, + "_from": "punycode@>=0.2.0", + "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.2.3.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js new file mode 100644 index 00000000..41803ba4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js @@ -0,0 +1,508 @@ +/*! http://mths.be/punycode v1.2.3 by @mathias */ +;(function(root) { + + /** Detect free variables */ + var freeExports = typeof exports == 'object' && exports; + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /** + * The `punycode` object. + * @name punycode + * @type Object + */ + var punycode, + + /** Highest positive signed 32-bit float value */ + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + /** Bootstring parameters */ + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + /** Regular expressions */ + regexPunycode = /^xn--/, + regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators + + /** Error messages */ + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + while (length--) { + array[length] = fn(array[length]); + } + return array; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings. + * @private + * @param {String} domain The domain name. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + return map(string.split(regexSeparators), fn).join('.'); + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * http://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + length, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols to a Punycode string of ASCII-only + * symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name to Unicode. Only the + * Punycoded parts of the domain name will be converted, i.e. it doesn't + * matter if you call it on a string that has already been converted to + * Unicode. + * @memberOf punycode + * @param {String} domain The Punycode domain name to convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(domain) { + return mapDomain(domain, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name to Punycode. Only the + * non-ASCII parts of the domain name will be converted, i.e. it doesn't + * matter if you call it with a domain that's already in ASCII. + * @memberOf punycode + * @param {String} domain The domain name to convert, as a Unicode string. + * @returns {String} The Punycode representation of the given domain name. + */ + function toASCII(domain) { + return mapDomain(domain, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.2.3', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define(function() { + return punycode; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js new file mode 100644 index 00000000..ac5d914a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js @@ -0,0 +1,2 @@ +/*! http://mths.be/punycode v1.2.3 by @mathias */ +(function(o){function e(o){throw RangeError(L[o])}function n(o,e){for(var n=o.length;n--;)o[n]=e(o[n]);return o}function t(o,e){return n(o.split(S),e).join(".")}function r(o){for(var e,n,t=[],r=0,u=o.length;u>r;)e=o.charCodeAt(r++),e>=55296&&56319>=e&&u>r?(n=o.charCodeAt(r++),56320==(64512&n)?t.push(((1023&e)<<10)+(1023&n)+65536):(t.push(e),r--)):t.push(e);return t}function u(o){return n(o,function(o){var e="";return o>65535&&(o-=65536,e+=R(55296|1023&o>>>10),o=56320|1023&o),e+=R(o)}).join("")}function i(o){return 10>o-48?o-22:26>o-65?o-65:26>o-97?o-97:x}function f(o,e){return o+22+75*(26>o)-((0!=e)<<5)}function c(o,e,n){var t=0;for(o=n?P(o/m):o>>1,o+=P(o/e);o>M*y>>1;t+=x)o=P(o/M);return P(t+(M+1)*o/(o+j))}function l(o){var n,t,r,f,l,d,s,a,p,h,v=[],g=o.length,w=0,j=I,m=A;for(t=o.lastIndexOf(F),0>t&&(t=0),r=0;t>r;++r)o.charCodeAt(r)>=128&&e("not-basic"),v.push(o.charCodeAt(r));for(f=t>0?t+1:0;g>f;){for(l=w,d=1,s=x;f>=g&&e("invalid-input"),a=i(o.charCodeAt(f++)),(a>=x||a>P((b-w)/d))&&e("overflow"),w+=a*d,p=m>=s?C:s>=m+y?y:s-m,!(p>a);s+=x)h=x-p,d>P(b/h)&&e("overflow"),d*=h;n=v.length+1,m=c(w-l,n,0==l),P(w/n)>b-j&&e("overflow"),j+=P(w/n),w%=n,v.splice(w++,0,j)}return u(v)}function d(o){var n,t,u,i,l,d,s,a,p,h,v,g,w,j,m,E=[];for(o=r(o),g=o.length,n=I,t=0,l=A,d=0;g>d;++d)v=o[d],128>v&&E.push(R(v));for(u=i=E.length,i&&E.push(F);g>u;){for(s=b,d=0;g>d;++d)v=o[d],v>=n&&s>v&&(s=v);for(w=u+1,s-n>P((b-t)/w)&&e("overflow"),t+=(s-n)*w,n=s,d=0;g>d;++d)if(v=o[d],n>v&&++t>b&&e("overflow"),v==n){for(a=t,p=x;h=l>=p?C:p>=l+y?y:p-l,!(h>a);p+=x)m=a-h,j=x-h,E.push(R(f(h+m%j,0))),a=P(m/j);E.push(R(f(a,0))),l=c(t,w,u==i),t=0,++u}++t,++n}return E.join("")}function s(o){return t(o,function(o){return E.test(o)?l(o.slice(4).toLowerCase()):o})}function a(o){return t(o,function(o){return O.test(o)?"xn--"+d(o):o})}var p="object"==typeof exports&&exports,h="object"==typeof module&&module&&module.exports==p&&module,v="object"==typeof global&&global;(v.global===v||v.window===v)&&(o=v);var g,w,b=2147483647,x=36,C=1,y=26,j=38,m=700,A=72,I=128,F="-",E=/^xn--/,O=/[^ -~]/,S=/\x2E|\u3002|\uFF0E|\uFF61/g,L={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=x-C,P=Math.floor,R=String.fromCharCode;if(g={version:"1.2.3",ucs2:{decode:r,encode:u},decode:l,encode:d,toASCII:a,toUnicode:s},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return g});else if(p&&!p.nodeType)if(h)h.exports=g;else for(w in g)g.hasOwnProperty(w)&&(p[w]=g[w]);else o.punycode=g})(this); \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt new file mode 100644 index 00000000..a7501f98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright 2011-2013 John-David Dalton + +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md new file mode 100644 index 00000000..fbddce91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md @@ -0,0 +1,35 @@ +# Docdown v1.0.0 + +A simple JSDoc to Markdown documentation generator. + +## Documentation + +The documentation for Docdown can be viewed here: [/doc/README.md](https://github.com/jdalton/docdown/blob/master/doc/README.md#readme) + +For a list of upcoming features, check out our [roadmap](https://github.com/jdalton/docdown/wiki/Roadmap). + +## Installation and usage + +Usage example: + +```php +require("docdown.php"); + +// generate Markdown +$markdown = docdown(array( + "path" => $filepath, + "url" => "https://github.com/username/project/blob/master/my.js" +)); +``` + +## Author + +| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") | +|---| +| [John-David Dalton](http://allyoucanleet.com/) | + +## Contributors + +| [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](http://mathiasbynens.be/) | diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md new file mode 100644 index 00000000..459d36ab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md @@ -0,0 +1,69 @@ +# Docdown v1.0.0 + + + + + + +##
      `docdown` +* [`docdown`](#docdown$optionsarray) + + + + + + + + + + + + +## `docdown` + + + +### `docdown([$options=array()])` +# [Ⓢ](https://github.com/jdalton/docdown/blob/master/docdown.php#L34 "View in source") [Ⓣ][1] + +Generates Markdown from JSDoc entries in a given file. + +#### Arguments +1. `[$options=array()]` *(Array)*: The options array. + +#### Returns +*(String)*: The generated Markdown. + +#### Example +```php +// specify a file path +$markdown = docdown(array( + // path to js file + 'path' => $filepath, + // url used to reference line numbers in code + 'url' => 'https://github.com/username/project/blob/master/my.js' +)); + +// or pass raw js +$markdown = docdown(array( + // raw JavaScript source + 'source' => $rawJS, + // documentation title + 'title' => 'My API Documentation', + // url used to reference line numbers in code + 'url' => 'https://github.com/username/project/blob/master/my.js' +)); +``` + +* * * + + + + + + + + + + + [1]: #docdown "Jump back to the TOC." \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php new file mode 100644 index 00000000..eca8d145 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php @@ -0,0 +1,35 @@ + '../' . $file, + 'title' => 'Docdown v1.0.0', + 'url' => 'https://github.com/jdalton/docdown/blob/master/docdown.php' + )); + + // save to a .md file + file_put_contents($output . '.md', $markdown); + + // print + header('Content-Type: text/plain;charset=utf-8'); + echo $markdown . PHP_EOL; + +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php new file mode 100644 index 00000000..4a786d75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php @@ -0,0 +1,38 @@ + + * Available under MIT license + */ +require(dirname(__FILE__) . '/src/DocDown/Generator.php'); + +/** + * Generates Markdown from JSDoc entries in a given file. + * + * @param {Array} [$options=array()] The options array. + * @returns {String} The generated Markdown. + * @example + * + * // specify a file path + * $markdown = docdown(array( + * // path to js file + * 'path' => $filepath, + * // url used to reference line numbers in code + * 'url' => 'https://github.com/username/project/blob/master/my.js' + * )); + * + * // or pass raw js + * $markdown = docdown(array( + * // raw JavaScript source + * 'source' => $rawJS, + * // documentation title + * 'title' => 'My API Documentation', + * // url used to reference line numbers in code + * 'url' => 'https://github.com/username/project/blob/master/my.js' + * )); + */ +function docdown( $options = array() ) { + $gen = new Generator($options); + return $gen->generate(); +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php new file mode 100644 index 00000000..0a7c552e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php @@ -0,0 +1,226 @@ +owner = $owner; + $this->_name = $name; + $this->_call = $owner->getCall(); + $this->_category = $owner->getCategory(); + $this->_desc = $owner->getDesc(); + $this->_example = $owner->getExample(); + $this->_isCtor = $owner->isCtor(); + $this->_isLicense = $owner->isLicense(); + $this->_isPlugin = $owner->isPlugin(); + $this->_isPrivate = $owner->isPrivate(); + $this->_isStatic = $owner->isStatic(); + $this->_lineNumber = $owner->getLineNumber(); + $this->_members = $owner->getMembers(); + $this->_params = $owner->getParams(); + $this->_returns = $owner->getReturns(); + $this->_type = $owner->getType(); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the entry's `alias` objects. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `alias` objects. + */ + public function getAliases( $index = null ) { + $result = array(); + return $index !== null + ? @$result[$index] + : $result; + } + + /** + * Extracts the function call from the owner entry. + * + * @memberOf Alias + * @returns {String} The function call. + */ + public function getCall() { + return $this->_call; + } + + /** + * Extracts the owner entry's `category` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `category` data. + */ + public function getCategory() { + return $this->_category; + } + + /** + * Extracts the owner entry's description. + * + * @memberOf Alias + * @returns {String} The owner entry's description. + */ + public function getDesc() { + return $this->_desc; + } + + /** + * Extracts the owner entry's `example` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `example` data. + */ + public function getExample() { + return $this->_example; + } + + /** + * Checks if the entry is an alias. + * + * @memberOf Alias + * @returns {Boolean} Returns `true`. + */ + public function isAlias() { + return true; + } + + /** + * Checks if the owner entry is a constructor. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if a constructor, else `false`. + */ + public function isCtor() { + return $this->_isCtor; + } + + /** + * Checks if the owner entry is a license. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if a license, else `false`. + */ + public function isLicense() { + return $this->_isLicense; + } + + /** + * Checks if the owner entry *is* assigned to a prototype. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if assigned to a prototype, else `false`. + */ + public function isPlugin() { + return $this->_isPlugin; + } + + /** + * Checks if the owner entry is private. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if private, else `false`. + */ + public function isPrivate() { + return $this->_isPrivate; + } + + /** + * Checks if the owner entry is *not* assigned to a prototype. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if not assigned to a prototype, else `false`. + */ + public function isStatic() { + return $this->_isStatic; + } + + /** + * Resolves the owner entry's line number. + * + * @memberOf Alias + * @returns {Number} The owner entry's line number. + */ + public function getLineNumber() { + return $this->_lineNumber; + } + + /** + * Extracts the owner entry's `member` data. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The owner entry's `member` data. + */ + public function getMembers( $index = null ) { + return $index !== null + ? @$this->_members[$index] + : $this->_members; + } + + /** + * Extracts the owner entry's `name` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `name` data. + */ + public function getName() { + return $this->_name; + } + + /** + * Extracts the owner entry's `param` data. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array} The owner entry's `param` data. + */ + public function getParams( $index = null ) { + return $index !== null + ? @$this->_params[$index] + : $this->_params; + } + + /** + * Extracts the owner entry's `returns` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `returns` data. + */ + public function getReturns() { + return $this->_returns; + } + + /** + * Extracts the owner entry's `type` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `type` data. + */ + public function getType() { + return $this->_type; + } +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php new file mode 100644 index 00000000..a973d9a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php @@ -0,0 +1,442 @@ +entry = $entry; + $this->lang = $lang; + $this->source = str_replace(PHP_EOL, "\n", $source); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the documentation entries from source code. + * + * @static + * @memberOf Entry + * @param {String} $source The source code. + * @returns {Array} The array of entries. + */ + public static function getEntries( $source ) { + preg_match_all('#/\*\*(?![-!])[\s\S]*?\*/\s*.+#', $source, $result); + return array_pop($result); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Checks if the entry is a function reference. + * + * @private + * @memberOf Entry + * @returns {Boolean} Returns `true` if the entry is a function reference, else `false`. + */ + private function isFunction() { + if (!isset($this->_isFunction)) { + $this->_isFunction = !!( + $this->isCtor() || + count($this->getParams()) || + count($this->getReturns()) || + preg_match('/\*[\t ]*@function\b/', $this->entry) + ); + } + return $this->_isFunction; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the entry's `alias` objects. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `alias` objects. + */ + public function getAliases( $index = null ) { + if (!isset($this->_aliases)) { + preg_match('#\*[\t ]*@alias\s+(.+)#', $this->entry, $result); + + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + $result = preg_split('/,\s*/', $result); + natsort($result); + + foreach ($result as $resultIndex => $value) { + $result[$resultIndex] = new Alias($value, $this); + } + } + $this->_aliases = $result; + } + return $index !== null + ? @$this->_aliases[$index] + : $this->_aliases; + } + + /** + * Extracts the function call from the entry. + * + * @memberOf Entry + * @returns {String} The function call. + */ + public function getCall() { + if (isset($this->_call)) { + return $this->_call; + } + + preg_match('#\*/\s*(?:function ([^(]*)|(.*?)(?=[:=,]|return\b))#', $this->entry, $result); + if ($result = array_pop($result)) { + $result = array_pop(explode('var ', trim(trim(array_pop(explode('.', $result))), "'"))); + } + // resolve name + // avoid $this->getName() because it calls $this->getCall() + preg_match('#\*[\t ]*@name\s+(.+)#', $this->entry, $name); + if (count($name)) { + $name = trim($name[1]); + } else { + $name = $result; + } + // compile function call syntax + if ($this->isFunction()) { + // compose parts + $result = array($result); + $params = $this->getParams(); + foreach ($params as $param) { + $result[] = $param[1]; + } + // format + $result = $name .'('. implode(array_slice($result, 1), ', ') .')'; + $result = str_replace(', [', ' [, ', str_replace('], [', ', ', $result)); + } + + $this->_call = $result ? $result : $name; + return $this->_call; + } + + /** + * Extracts the entry's `category` data. + * + * @memberOf Entry + * @returns {String} The entry's `category` data. + */ + public function getCategory() { + if (isset($this->_category)) { + return $this->_category; + } + + preg_match('#\*[\t ]*@category\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = $this->getType() == 'Function' ? 'Methods' : 'Properties'; + } + $this->_category = $result; + return $result; + } + + /** + * Extracts the entry's description. + * + * @memberOf Entry + * @returns {String} The entry's description. + */ + public function getDesc() { + if (isset($this->_desc)) { + return $this->_desc; + } + + preg_match('#/\*\*(?:\s*\*)?([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $type = $this->getType(); + $result = preg_replace('/:\n[\t ]*\*[\t ]*/', ":
      \n", $result[1]); + $result = preg_replace('/(?:^|\n)[\t ]*\*\n[\t ]*\*[\t ]*/', "\n\n", $result); + $result = preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result); + $result = trim($result); + $result = ($type == 'Function' ? '' : '(' . str_replace('|', ', ', trim($type, '{}')) . '): ') . $result; + } + $this->_desc = $result; + return $result; + } + + /** + * Extracts the entry's `example` data. + * + * @memberOf Entry + * @returns {String} The entry's `example` data. + */ + public function getExample() { + if (isset($this->_example)) { + return $this->_example; + } + + preg_match('#\*[\t ]*@example\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', "\n", $result[1])); + $result = '```' . $this->lang . "\n" . $result . "\n```"; + } + $this->_example = $result; + return $result; + } + + /** + * Checks if the entry is an alias. + * + * @memberOf Entry + * @returns {Boolean} Returns `false`. + */ + public function isAlias() { + return false; + } + + /** + * Checks if the entry is a constructor. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if a constructor, else `false`. + */ + public function isCtor() { + if (!isset($this->_isCtor)) { + $this->_isCtor = !!preg_match('/\*[\t ]*@constructor\b/', $this->entry); + } + return $this->_isCtor; + } + + /** + * Checks if the entry is a license. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if a license, else `false`. + */ + public function isLicense() { + if (!isset($this->_isLicense)) { + $this->_isLicense = !!preg_match('/\*[\t ]*@license\b/', $this->entry); + } + return $this->_isLicense; + } + + /** + * Checks if the entry *is* assigned to a prototype. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if assigned to a prototype, else `false`. + */ + public function isPlugin() { + if (!isset($this->_isPlugin)) { + $this->_isPlugin = !$this->isCtor() && !$this->isPrivate() && !$this->isStatic(); + } + return $this->_isPlugin; + } + + /** + * Checks if the entry is private. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if private, else `false`. + */ + public function isPrivate() { + if (!isset($this->_isPrivate)) { + $this->_isPrivate = $this->isLicense() || !!preg_match('/\*[\t ]*@private\b/', $this->entry) || !preg_match('/\*[\t ]*@[a-z]+\b/', $this->entry); + } + return $this->_isPrivate; + } + + /** + * Checks if the entry is *not* assigned to a prototype. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if not assigned to a prototype, else `false`. + */ + public function isStatic() { + if (isset($this->_isStatic)) { + return $this->_isStatic; + } + + $public = !$this->isPrivate(); + $result = $public && !!preg_match('/\*[\t ]*@static\b/', $this->entry); + + // set in cases where it isn't explicitly stated + if ($public && !$result) { + if ($parent = array_pop(preg_split('/[#.]/', $this->getMembers(0)))) { + foreach (Entry::getEntries($this->source) as $entry) { + $entry = new Entry($entry, $this->source); + if ($entry->getName() == $parent) { + $result = !$entry->isCtor(); + break; + } + } + } else { + $result = true; + } + } + $this->_isStatic = $result; + return $result; + } + + /** + * Resolves the entry's line number. + * + * @memberOf Entry + * @returns {Number} The entry's line number. + */ + public function getLineNumber() { + if (!isset($this->_lineNumber)) { + preg_match_all('/\n/', substr($this->source, 0, strrpos($this->source, $this->entry) + strlen($this->entry)), $lines); + $this->_lineNumber = count(array_pop($lines)) + 1; + } + return $this->_lineNumber; + } + + /** + * Extracts the entry's `member` data. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `member` data. + */ + public function getMembers( $index = null ) { + if (!isset($this->_members)) { + preg_match('#\*[\t ]*@member(?:Of)?\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + $result = preg_split('/,\s*/', $result); + natsort($result); + } + $this->_members = $result; + } + return $index !== null + ? @$this->_members[$index] + : $this->_members; + } + + /** + * Extracts the entry's `name` data. + * + * @memberOf Entry + * @returns {String} The entry's `name` data. + */ + public function getName() { + if (isset($this->_name)) { + return $this->_name; + } + + preg_match('#\*[\t ]*@name\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = array_shift(explode('(', $this->getCall())); + } + $this->_name = $result; + return $result; + } + + /** + * Extracts the entry's `param` data. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array} The entry's `param` data. + */ + public function getParams( $index = null ) { + if (!isset($this->_params)) { + preg_match_all('#\*[\t ]*@param\s+\{([^}]+)\}\s+(\[.+\]|[$\w|]+(?:\[.+\])?)\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#i', $this->entry, $result); + if (count($result = array_filter(array_slice($result, 1)))) { + // repurpose array + foreach ($result as $param) { + foreach ($param as $key => $value) { + if (!is_array($result[0][$key])) { + $result[0][$key] = array(); + } + $result[0][$key][] = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]*/', ' ', $value)); + } + } + $result = $result[0]; + } + $this->_params = $result; + } + return $index !== null + ? @$this->_params[$index] + : $this->_params; + } + + /** + * Extracts the entry's `returns` data. + * + * @memberOf Entry + * @returns {String} The entry's `returns` data. + */ + public function getReturns() { + if (isset($this->_returns)) { + return $this->_returns; + } + + preg_match('#\*[\t ]*@returns\s+\{([^}]+)\}\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $result = array_map('trim', array_slice($result, 1)); + $result[0] = str_replace('|', ', ', $result[0]); + $result[1] = preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1]); + } + $this->_returns = $result; + return $result; + } + + /** + * Extracts the entry's `type` data. + * + * @memberOf Entry + * @returns {String} The entry's `type` data. + */ + public function getType() { + if (isset($this->_type)) { + return $this->_type; + } + + preg_match('#\*[\t ]*@type\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = $this->isFunction() ? 'Function' : 'Unknown'; + } + $this->_type = $result; + return $result; + } +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php new file mode 100644 index 00000000..5dc2583f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php @@ -0,0 +1,563 @@ +\n"; + + /** + * An array of JSDoc entries. + * + * @memberOf Generator + * @type Array + */ + public $entries = array(); + + /** + * The HTML for the open tag. + * + * @static + * @memberOf Generator + * @type String + */ + public $openTag = "\n\n"; + + /** + * An options array used to configure the generator. + * + * @memberOf Generator + * @type Array + */ + public $options = array(); + + /** + * The file's source code. + * + * @memberOf Generator + * @type String + */ + public $source = ''; + + /*--------------------------------------------------------------------------*/ + + /** + * The Generator constructor. + * + * @constructor + * @param {String} $source The source code to parse. + * @param {Array} $options The options array. + */ + public function __construct( $source, $options = array() ) { + // juggle arguments + if (is_array($source)) { + $options = $source; + } else { + $options['source'] = $source; + } + if (isset($options['source']) && realpath($options['source'])) { + $options['path'] = $options['source']; + } + if (isset($options['path'])) { + preg_match('/(?<=\.)[a-z]+$/', $options['path'], $ext); + $options['source'] = file_get_contents($options['path']); + $ext = array_pop($ext); + + if (!isset($options['lang']) && $ext) { + $options['lang'] = $ext; + } + if (!isset($options['title'])) { + $options['title'] = ucfirst(basename($options['path'])) . ' API documentation'; + } + } + if (!isset($options['lang'])) { + $options['lang'] = 'js'; + } + if (!isset($options['toc'])) { + $options['toc'] = 'properties'; + } + + $this->options = $options; + $this->source = str_replace(PHP_EOL, "\n", $options['source']); + $this->entries = Entry::getEntries($this->source); + + foreach ($this->entries as $index => $value) { + $this->entries[$index] = new Entry($value, $this->source, $options['lang']); + } + } + + /*--------------------------------------------------------------------------*/ + + /** + * Performs common string formatting operations. + * + * @private + * @static + * @memberOf Generator + * @param {String} $string The string to format. + * @returns {String} The formatted string. + */ + private static function format( $string ) { + $counter = 0; + + // tokenize inline code snippets + preg_match_all('/`[^`]+`/', $string, $tokenized); + $tokenized = $tokenized[0]; + foreach ($tokenized as $snippet) { + $string = str_replace($snippet, '__token' . ($counter++) .'__', $string); + } + + // italicize parentheses + $string = preg_replace('/(^|\s)(\([^)]+\))/', '$1*$2*', $string); + + // mark numbers as inline code + $string = preg_replace('/[\t ](-?\d+(?:.\d+)?)(?!\.[^\n])/', ' `$1`', $string); + + // detokenize inline code snippets + $counter = 0; + foreach ($tokenized as $snippet) { + $string = str_replace('__token' . ($counter++) . '__', $snippet, $string); + } + + return trim($string); + } + + /** + * Modify a string by replacing named tokens with matching assoc. array values. + * + * @private + * @static + * @memberOf Generator + * @param {String} $string The string to modify. + * @param {Array|Object} $object The template object. + * @returns {String} The modified string. + */ + private static function interpolate( $string, $object ) { + preg_match_all('/#\{([^}]+)\}/', $string, $tokens); + $tokens = array_unique(array_pop($tokens)); + + foreach ($tokens as $token) { + $pattern = '/#\{' . $token . '\}/'; + $replacement = ''; + + if (is_object($object)) { + preg_match('/\(([^)]+?)\)$/', $token, $args); + $args = preg_split('/,\s*/', array_pop($args)); + $method = 'get' . ucfirst(str_replace('/\([^)]+?\)$/', '', $token)); + + if (method_exists($object, $method)) { + $replacement = (string) call_user_func_array(array($object, $method), $args); + } else if (isset($object->{$token})) { + $replacement = (string) $object->{$token}; + } + } else if (isset($object[$token])) { + $replacement = (string) $object[$token]; + } + $string = preg_replace($pattern, trim($replacement), $string); + } + return Generator::format($string); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Adds the given `$entries` to the `$result` array. + * + * @private + * @memberOf Generator + * @param {Array} $result The result array to modify. + * @param {Array} $entries The entries to add to the `$result`. + */ + private function addEntries( &$result, $entries ) { + foreach ($entries as $entry) { + // skip aliases + if ($entry->isAlias()) { + continue; + } + // name and description + array_push( + $result, + $this->openTag, + Generator::interpolate("### `#{member}#{separator}#{call}`\n# [Ⓢ](#{href} \"View in source\") [Ⓣ][1]\n\n#{desc}", $entry) + ); + + // @alias + if (count($aliases = $entry->getAliases())) { + array_push($result, '', '#### Aliases'); + foreach ($aliases as $index => $alias) { + $aliases[$index] = $alias->getName(); + } + $result[] = '*' . implode(', ', $aliases) . '*'; + } + // @param + if (count($params = $entry->getParams())) { + array_push($result, '', '#### Arguments'); + foreach ($params as $index => $param) { + $result[] = Generator::interpolate('#{num}. `#{name}` (#{type}): #{desc}', array( + 'desc' => $param[2], + 'name' => $param[1], + 'num' => $index + 1, + 'type' => $param[0] + )); + } + } + // @returns + if (count($returns = $entry->getReturns())) { + array_push( + $result, '', + '#### Returns', + Generator::interpolate('(#{type}): #{desc}', array('desc' => $returns[1], 'type' => $returns[0])) + ); + } + // @example + if ($example = $entry->getExample()) { + array_push($result, '', '#### Example', $example); + } + array_push($result, "\n* * *", $this->closeTag); + } + } + + /** + * Resolves the entry's hash used to navigate the documentation. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @param {String} $member The name of the member. + * @returns {String} The url hash. + */ + private function getHash( $entry, $member = '' ) { + $entry = is_numeric($entry) ? $this->entries[$entry] : $entry; + $member = !$member ? $entry->getMembers(0) : $member; + $result = ($member ? $member . ($entry->isPlugin() ? 'prototype' : '') : '') . $entry->getCall(); + $result = preg_replace('/\(\[|\[\]/', '', $result); + $result = preg_replace('/[ =|\'"{}.()\]]/', '', $result); + $result = preg_replace('/[[#,]/', '-', $result); + return strtolower($result); + } + + /** + * Resolves the entry's url for the specific line number. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @returns {String} The url. + */ + private function getLineUrl( $entry ) { + $entry = is_numeric($entry) ? $this->entries($entry) : $entry; + return $this->options['url'] . '#L' . $entry->getLineNumber(); + } + + /** + * Extracts the character used to separate the entry's name from its member. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @returns {String} The separator. + */ + private function getSeparator( $entry ) { + $entry = is_numeric($entry) ? $this->entries($entry) : $entry; + return $entry->isPlugin() ? '.prototype.' : '.'; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Generates Markdown from JSDoc entries. + * + * @memberOf Generator + * @returns {String} The rendered Markdown. + */ + public function generate() { + $api = array(); + $byCategory = $this->options['toc'] == 'categories'; + $categories = array(); + $closeTag = $this->closeTag; + $compiling = false; + $openTag = $this->openTag; + $result = array('# ' . $this->options['title']); + $toc = 'toc'; + + // initialize $api array + foreach ($this->entries as $entry) { + // skip invalid or private entries + $name = $entry->getName(); + if (!$name || $entry->isPrivate()) { + continue; + } + + $members = $entry->getMembers(); + $members = count($members) ? $members : array(''); + + foreach ($members as $member) { + // create api category arrays + if ($member && !isset($api[$member])) { + // create temporary entry to be replaced later + $api[$member] = new stdClass; + $api[$member]->static = array(); + $api[$member]->plugin = array(); + } + + // append entry to api member + if (!$member || $entry->isCtor() || ($entry->getType() == 'Object' && + !preg_match('/[=:]\s*(?:null|undefined)\s*[,;]?$/', $entry->entry))) { + + // assign the real entry, replacing the temporary entry if it exist + $member = ($member ? $member . ($entry->isPlugin() ? '#' : '.') : '') . $name; + $entry->static = @$api[$member] ? $api[$member]->static : array(); + $entry->plugin = @$api[$member] ? $api[$member]->plugin : array(); + + $api[$member] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->static[] = $alias; + } + } + else if ($entry->isStatic()) { + $api[$member]->static[] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->static[] = $alias; + } + } + else if (!$entry->isCtor()) { + $api[$member]->plugin[] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->plugin[] = $alias; + } + } + } + } + + // add properties to each entry + foreach ($api as $entry) { + $entry->hash = $this->getHash($entry); + $entry->href = $this->getLineUrl($entry); + + $member = $entry->getMembers(0); + $member = ($member ? $member . ($entry->isPlugin() ? '.prototype.' : '.') : '') . $entry->getName(); + $entry->member = preg_replace('/' . $entry->getName() . '$/', '', $member); + + // add properties to static and plugin sub-entries + foreach (array('static', 'plugin') as $kind) { + foreach ($entry->{$kind} as $subentry) { + $subentry->hash = $this->getHash($subentry); + $subentry->href = $this->getLineUrl($subentry); + $subentry->member = $member; + $subentry->separator = $this->getSeparator($subentry); + } + } + } + + /*------------------------------------------------------------------------*/ + + // custom sort for root level entries + // TODO: see how well it handles deeper namespace traversal + function sortCompare($a, $b) { + $score = array( 'a' => 0, 'b' => 0); + foreach (array( 'a' => $a, 'b' => $b) as $key => $value) { + // capitalized properties are last + if (preg_match('/[#.][A-Z]/', $value)) { + $score[$key] = 0; + } + // lowercase prototype properties are next to last + else if (preg_match('/#[a-z]/', $value)) { + $score[$key] = 1; + } + // lowercase static properties next to first + else if (preg_match('/\.[a-z]/', $value)) { + $score[$key] = 2; + } + // root properties are first + else if (preg_match('/^[^#.]+$/', $value)) { + $score[$key] = 3; + } + } + $score = $score['b'] - $score['a']; + return $score ? $score : strcasecmp($a, $b); + } + + uksort($api, 'sortCompare'); + + // sort static and plugin sub-entries + foreach ($api as $entry) { + foreach (array('static', 'plugin') as $kind) { + $sortBy = array( 'a' => array(), 'b' => array(), 'c' => array() ); + foreach ($entry->{$kind} as $subentry) { + $name = $subentry->getName(); + // functions w/o ALL-CAPs names are last + $sortBy['a'][] = $subentry->getType() == 'Function' && !preg_match('/^[A-Z_]+$/', $name); + // ALL-CAPs properties first + $sortBy['b'][] = preg_match('/^[A-Z_]+$/', $name); + // lowercase alphanumeric sort + $sortBy['c'][] = strtolower($name); + } + array_multisort($sortBy['a'], SORT_ASC, $sortBy['b'], SORT_DESC, $sortBy['c'], SORT_ASC, $entry->{$kind}); + } + } + + /*------------------------------------------------------------------------*/ + + // add categories + foreach ($api as $entry) { + $categories[$entry->getCategory()][] = $entry; + foreach (array('static', 'plugin') as $kind) { + foreach ($entry->{$kind} as $subentry) { + $categories[$subentry->getCategory()][] = $subentry; + } + } + } + + // sort categories + ksort($categories); + + foreach(array('Methods', 'Properties') as $category) { + if (isset($categories[$category])) { + $entries = $categories[$category]; + unset($categories[$category]); + $categories[$category] = $entries; + } + } + + /*------------------------------------------------------------------------*/ + + // compile TOC + $result[] = $openTag; + + // compile TOC by categories + if ($byCategory) { + foreach ($categories as $category => $entries) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + // assign TOC hash + if (count($result) == 2) { + $toc = $category; + } + // add category + array_push( + $result, + $openTag, '## ' . (count($result) == 2 ? '' : '') . '`' . $category . '`' + ); + // add entries + foreach ($entries as $entry) { + $result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $entry); + } + } + } + // compile TOC by namespace + else { + foreach ($api as $entry) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + $member = $entry->member . $entry->getName(); + + // assign TOC hash + if (count($result) == 2) { + $toc = $member; + } + // add root entry + array_push( + $result, + $openTag, '## ' . (count($result) == 2 ? '' : '') . '`' . $member . '`', + Generator::interpolate('* [`' . $member . '`](##{hash})', $entry) + ); + + // add static and plugin sub-entries + foreach (array('static', 'plugin') as $kind) { + if ($kind == 'plugin' && count($entry->plugin)) { + array_push( + $result, + $closeTag, + $openTag, + '## `' . $member . ($entry->isCtor() ? '.prototype`' : '`') + ); + } + foreach ($entry->{$kind} as $subentry) { + $subentry->member = $member; + $result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $subentry); + } + } + } + } + + array_push($result, $closeTag, $closeTag); + + /*------------------------------------------------------------------------*/ + + // compile content + $compiling = false; + $result[] = $openTag; + + if ($byCategory) { + foreach ($categories as $category => $entries) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + if ($category != 'Methods' && $category != 'Properties') { + $category = '“' . $category . '” Methods'; + } + array_push($result, $openTag, '## `' . $category . '`'); + $this->addEntries($result, $entries); + } + } + else { + foreach ($api as $entry) { + // skip aliases + if ($entry->isAlias()) { + continue; + } + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + // add root entry name + $member = $entry->member . $entry->getName(); + array_push($result, $openTag, '## `' . $member . '`'); + + foreach (array($entry, 'static', 'plugin') as $kind) { + $subentries = is_string($kind) ? $entry->{$kind} : array($kind); + + // add sub-entry name + if ($kind != 'static' && $entry->getType() != 'Object' && + count($subentries) && $subentries[0] != $kind) { + if ($kind == 'plugin') { + $result[] = $closeTag; + } + array_push( + $result, + $openTag, + '## `' . $member . ($kind == 'plugin' ? '.prototype`' : '`') + ); + } + $this->addEntries($result, $subentries); + } + } + } + + // close tags add TOC link reference + array_push($result, $closeTag, $closeTag, '', ' [1]: #' . $toc . ' "Jump back to the TOC."'); + + // cleanup whitespace + return trim(preg_replace('/[\t ]+\n/', "\n", join($result, "\n"))); + } +} +?> diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json new file mode 100644 index 00000000..167c7c6a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json @@ -0,0 +1,50 @@ +{ + "author": { + "name": "Jeremy Stashewsky", + "email": "jeremy@goinstant.com", + "url": "https://github.com/stash" + }, + "name": "tough-cookie", + "description": "RFC6265 Cookies and Cookie Jar for node.js", + "keywords": [ + "HTTP", + "cookie", + "cookies", + "set-cookie", + "cookiejar", + "jar", + "RFC6265", + "RFC2965" + ], + "version": "0.9.15", + "homepage": "https://github.com/goinstant/node-cookie", + "repository": { + "type": "git", + "url": "git://github.com/goinstant/node-cookie.git" + }, + "bugs": { + "url": "https://github.com/goinstant/node-cookie/issues" + }, + "main": "./lib/cookie", + "scripts": { + "test": "vows test.js" + }, + "engines": { + "node": ">=0.4.12" + }, + "dependencies": { + "punycode": ">=0.2.0" + }, + "devDependencies": { + "vows": ">=0.6.0", + "async": ">=0.1.12" + }, + "readme": "[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js\n\n![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg)\n\n# Synopsis\n\n``` javascript\nvar cookies = require('tough-cookie'); // note: not 'cookie', 'cookies' or 'node-cookie'\nvar Cookie = cookies.Cookie;\nvar cookie = Cookie.parse(header);\ncookie.value = 'somethingdifferent';\nheader = cookie.toString();\n\nvar cookiejar = new cookies.CookieJar();\ncookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb);\n// ...\ncookiejar.getCookies('http://example.com/otherpath',function(err,cookies) {\n res.headers['cookie'] = cookies.join('; ');\n});\n```\n\n# Installation\n\nIt's _so_ easy!\n\n`npm install tough-cookie`\n\nRequires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default.\n\nWhy the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.\n\n# API\n\ncookies\n=======\n\nFunctions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be \"bound\".\n\nparseDate(string[,strict])\n-----------------\n\nParse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. \"Thu, 01 Jan 1970 00:00:010 GMT\" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid).\n\nformatDate(date)\n----------------\n\nFormat a Date into a RFC1123 string (the RFC6265-recommended format).\n\ncanonicalDomain(str)\n--------------------\n\nTransforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).\n\ndomainMatch(str,domStr[,canonicalize=true])\n-------------------------------------------\n\nAnswers \"does this real domain match the domain in a cookie?\". The `str` is the \"current\" domain-name and the `domStr` is the \"cookie\" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a \"suffix match\".\n\nThe `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.\n\ndefaultPath(path)\n-----------------\n\nGiven a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the \"directory\" of a \"file\" in the path, but is specified by Section 5.1.4 of the RFC.\n\nThe `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output.\n\npathMatch(reqPath,cookiePath)\n-----------------------------\n\nAnswers \"does the request-path path-match a given cookie-path?\" as per RFC6265 Section 5.1.4. Returns a boolean.\n\nThis is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.\n\nparse(header[,strict=false])\n----------------------------\n\nalias for `Cookie.parse(header[,strict])`\n\nfromJSON(string)\n----------------\n\nalias for `Cookie.fromJSON(string)`\n\ngetPublicSuffix(hostname)\n-------------------------\n\nReturns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.\n\nFor example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.\n\nFor further information, see http://publicsuffix.org/. This module derives its list from that site.\n\ncookieCompare(a,b)\n------------------\n\nFor use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest.\n\n``` javascript\nvar cookies = [ /* unsorted array of Cookie objects */ ];\ncookies = cookies.sort(cookieCompare);\n```\n\npermuteDomain(domain)\n---------------------\n\nGenerates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.\n\n\npermutePath(path)\n-----------------\n\nGenerates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.\n\nCookie\n======\n\nCookie.parse(header[,strict=false])\n-----------------------------------\n\nParses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. If in strict mode, returns `undefined` if the cookie doesn't follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off.\n\nHere's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:\n\n``` javascript\nif (res.headers['set-cookie'] instanceof Array)\n cookies = res.headers['set-cookie'].map(Cookie.parse);\nelse\n cookies = [Cookie.parse(res.headers['set-cookie'])];\n```\n\nCookie.fromJSON(string)\n-----------------------\n\nConvert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects.\n\nProperties\n==========\n\n * _key_ - string - the name or key of the cookie (default \"\")\n * _value_ - string - the value of the cookie (default \"\")\n * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `\"Infinity\"`). See `setExpires()`\n * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `\"Infinity\"` and `\"-Infinity\"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`\n * _domain_ - string - the `Domain=` attribute of the cookie\n * _path_ - string - the `Path=` of the cookie\n * _secure_ - boolean - the `Secure` cookie flag\n * _httpOnly_ - boolean - the `HttpOnly` cookie flag\n * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)\n \nAfter a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:\n\n * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)\n * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.\n * _created_ - `Date` - when this cookie was added to the jar\n * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.\n\nConstruction([{options}])\n------------\n\nReceives an options object that can contain any Cookie properties, uses the default for unspecified properties.\n\n.toString()\n-----------\n\nencode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.\n\n.cookieString()\n---------------\n\nencode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '=').\n\n.setExpires(String)\n-------------------\n\nsets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `\"Infinity\"` (a string) is set.\n\n.setMaxAge(number)\n-------------------\n\nsets the maxAge in seconds. Coerces `-Infinity` to `\"-Infinity\"` and `Infinity` to `\"Infinity\"` so it JSON serializes correctly.\n\n.expiryTime([now=Date.now()])\n-----------------------------\n\n.expiryDate([now=Date.now()])\n-----------------------------\n\nexpiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.\n\nMax-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.\n\nIf Expires (`.expires`) is set, that's returned.\n\nOtherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for \"Tue, 19 Jan 2038 03:14:07 GMT\" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).\n\n.TTL([now=Date.now()])\n---------\n\ncompute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.\n\nThe \"number\" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.\n\n.canonicalizedDoman()\n---------------------\n\n.cdomain()\n----------\n\nreturn the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.\n\n.validate()\n-----------\n\nStatus: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.\n\nvalidates cookie attributes for semantic correctness. Useful for \"lint\" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:\n\n``` javascript\nif (cookie.validate() === true) {\n // it's tasty\n} else {\n // yuck!\n}\n```\n\nCookieJar\n=========\n\nConstruction([store = new MemoryCookieStore()][, rejectPublicSuffixes])\n------------\n\nSimply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.\n\n\nAttributes\n----------\n\n * _rejectPublicSuffixes_ - boolean - reject cookies with domains like \"com\" and \"co.uk\" (default: `true`)\n \nSince eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.\n\n.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))\n-------------------------------------------------------------------\n\nAttempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a \"Secure\" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _strict_ - boolean - default `false` - perform extra checks\n * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren't ignored by this option.\n\nAs per the RFC, the `.hostOnly` property is set if there was no \"Domain=\" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).\n\n.storeCookie(cookie, [{options},] cb(err,cookie))\n-------------------------------------------------\n\n__REMOVED__ removed in lieu of the CookieStore API below\n \n.getCookies(currentUrl, [{options},] cb(err,cookies))\n-----------------------------------------------------\n\nRetrieve the list of cookies that can be sent in a Cookie header for the current url.\n\nIf an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a \"Secure\" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).\n * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it).\n\nThe `.lastAccessed` property of the returned cookies will have been updated.\n\n.getCookieString(...)\n---------------------\n\nAccepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.\n\n.getSetCookieStrings(...)\n-------------------------\n\nAccepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`.\n\n# CookieStore API\n\nThe storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.\n\nAll `domain` parameters will have been normalized before calling.\n\nThe Cookie store must have all of the following methods.\n\nstore.findCookie(domain, path, key, cb(err,cookie))\n---------------------------------------------------\n\nRetrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.\n\nCallback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).\n\nstore.findCookies(domain, path, cb(err,cookies))\n------------------------------------------------\n\nLocates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.\n\nIf no cookies are found, the callback MUST be passed an empty array.\n\nThe resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.\n\nAs of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).\n\nstore.putCookie(cookie, cb(err))\n--------------------------------\n\nAdds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.\n\nThe `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.\n\nPass an error if the cookie cannot be stored.\n\nstore.updateCookie(oldCookie, newCookie, cb(err))\n-------------------------------------------------\n\nUpdate an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.\n\nThe `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion).\n\nStores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.\n\nThe `newCookie` and `oldCookie` objects MUST NOT be modified.\n\nPass an error if the newCookie cannot be stored.\n\nstore.removeCookie(domain, path, key, cb(err))\n----------------------------------------------\n\nRemove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).\n\nThe implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie.\n\nstore.removeCookies(domain, path, cb(err))\n------------------------------------------\n\nRemoves matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed.\n\nPass an error ONLY if removing any existing cookies failed.\n\n# TODO\n\n * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()`\n * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891\n * better tests for `validate()`?\n\n# Copyright and License\n\n(tl;dr: MIT with some MPL/1.1)\n\nCopyright GoInstant, Inc. and other contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\nPortions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details.\n", + "readmeFilename": "README.md", + "_id": "tough-cookie@0.9.15", + "dist": { + "shasum": "0fbda7fb5b5bca17e4f97909a0818dc8c2c12588" + }, + "_from": "tough-cookie@~0.9.15", + "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt new file mode 100644 index 00000000..2c201312 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt @@ -0,0 +1,5229 @@ +// ***** BEGIN LICENSE BLOCK ***** +// Version: MPL 1.1/GPL 2.0/LGPL 2.1 +// +// The contents of this file are subject to the Mozilla Public License Version +// 1.1 (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.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the +// License. +// +// The Original Code is the Public Suffix List. +// +// The Initial Developer of the Original Code is +// Jo Hermans . +// Portions created by the Initial Developer are Copyright (C) 2007 +// the Initial Developer. All Rights Reserved. +// +// Contributor(s): +// Ruben Arakelyan +// Gervase Markham +// Pamela Greene +// David Triendl +// Jothan Frakes +// The kind representatives of many TLD registries +// +// Alternatively, the contents of this file may be used under the terms of +// either the GNU General Public License Version 2 or later (the "GPL"), or +// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +// in which case the provisions of the GPL or the LGPL are applicable instead +// of those above. If you wish to allow use of your version of this file only +// under the terms of either the GPL or the LGPL, and not to allow others to +// use your version of this file under the terms of the MPL, indicate your +// decision by deleting the provisions above and replace them with the notice +// and other provisions required by the GPL or the LGPL. If you do not delete +// the provisions above, a recipient may use your version of this file under +// the terms of any one of the MPL, the GPL or the LGPL. +// +// ***** END LICENSE BLOCK ***** + +// ===BEGIN ICANN DOMAINS=== + +// ac : http://en.wikipedia.org/wiki/.ac +ac +com.ac +edu.ac +gov.ac +net.ac +mil.ac +org.ac + +// ad : http://en.wikipedia.org/wiki/.ad +ad +nom.ad + +// ae : http://en.wikipedia.org/wiki/.ae +// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php +ae +co.ae +net.ae +org.ae +sch.ae +ac.ae +gov.ae +mil.ae + +// aero : see http://www.information.aero/index.php?id=66 +aero +accident-investigation.aero +accident-prevention.aero +aerobatic.aero +aeroclub.aero +aerodrome.aero +agents.aero +aircraft.aero +airline.aero +airport.aero +air-surveillance.aero +airtraffic.aero +air-traffic-control.aero +ambulance.aero +amusement.aero +association.aero +author.aero +ballooning.aero +broker.aero +caa.aero +cargo.aero +catering.aero +certification.aero +championship.aero +charter.aero +civilaviation.aero +club.aero +conference.aero +consultant.aero +consulting.aero +control.aero +council.aero +crew.aero +design.aero +dgca.aero +educator.aero +emergency.aero +engine.aero +engineer.aero +entertainment.aero +equipment.aero +exchange.aero +express.aero +federation.aero +flight.aero +freight.aero +fuel.aero +gliding.aero +government.aero +groundhandling.aero +group.aero +hanggliding.aero +homebuilt.aero +insurance.aero +journal.aero +journalist.aero +leasing.aero +logistics.aero +magazine.aero +maintenance.aero +marketplace.aero +media.aero +microlight.aero +modelling.aero +navigation.aero +parachuting.aero +paragliding.aero +passenger-association.aero +pilot.aero +press.aero +production.aero +recreation.aero +repbody.aero +res.aero +research.aero +rotorcraft.aero +safety.aero +scientist.aero +services.aero +show.aero +skydiving.aero +software.aero +student.aero +taxi.aero +trader.aero +trading.aero +trainer.aero +union.aero +workinggroup.aero +works.aero + +// af : http://www.nic.af/help.jsp +af +gov.af +com.af +org.af +net.af +edu.af + +// ag : http://www.nic.ag/prices.htm +ag +com.ag +org.ag +net.ag +co.ag +nom.ag + +// ai : http://nic.com.ai/ +ai +off.ai +com.ai +net.ai +org.ai + +// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31 +al +com.al +edu.al +gov.al +mil.al +net.al +org.al + +// am : http://en.wikipedia.org/wiki/.am +am + +// an : http://www.una.an/an_domreg/default.asp +an +com.an +net.an +org.an +edu.an + +// ao : http://en.wikipedia.org/wiki/.ao +// http://www.dns.ao/REGISTR.DOC +ao +ed.ao +gv.ao +og.ao +co.ao +pb.ao +it.ao + +// aq : http://en.wikipedia.org/wiki/.aq +aq + +// ar : http://en.wikipedia.org/wiki/.ar +*.ar +!congresodelalengua3.ar +!educ.ar +!gobiernoelectronico.ar +!mecon.ar +!nacion.ar +!nic.ar +!promocion.ar +!retina.ar +!uba.ar + +// arpa : http://en.wikipedia.org/wiki/.arpa +// Confirmed by registry 2008-06-18 +e164.arpa +in-addr.arpa +ip6.arpa +iris.arpa +uri.arpa +urn.arpa + +// as : http://en.wikipedia.org/wiki/.as +as +gov.as + +// asia : http://en.wikipedia.org/wiki/.asia +asia + +// at : http://en.wikipedia.org/wiki/.at +// Confirmed by registry 2008-06-17 +at +ac.at +co.at +gv.at +or.at + +// au : http://en.wikipedia.org/wiki/.au +// http://www.auda.org.au/ +// 2LDs +com.au +net.au +org.au +edu.au +gov.au +csiro.au +asn.au +id.au +// Historic 2LDs (closed to new registration, but sites still exist) +info.au +conf.au +oz.au +// CGDNs - http://www.cgdn.org.au/ +act.au +nsw.au +nt.au +qld.au +sa.au +tas.au +vic.au +wa.au +// 3LDs +act.edu.au +nsw.edu.au +nt.edu.au +qld.edu.au +sa.edu.au +tas.edu.au +vic.edu.au +wa.edu.au +act.gov.au +// Removed at request of Shae.Donelan@services.nsw.gov.au, 2010-03-04 +// nsw.gov.au +nt.gov.au +qld.gov.au +sa.gov.au +tas.gov.au +vic.gov.au +wa.gov.au + +// aw : http://en.wikipedia.org/wiki/.aw +aw +com.aw + +// ax : http://en.wikipedia.org/wiki/.ax +ax + +// az : http://en.wikipedia.org/wiki/.az +az +com.az +net.az +int.az +gov.az +org.az +edu.az +info.az +pp.az +mil.az +name.az +pro.az +biz.az + +// ba : http://en.wikipedia.org/wiki/.ba +ba +org.ba +net.ba +edu.ba +gov.ba +mil.ba +unsa.ba +unbi.ba +co.ba +com.ba +rs.ba + +// bb : http://en.wikipedia.org/wiki/.bb +bb +biz.bb +com.bb +edu.bb +gov.bb +info.bb +net.bb +org.bb +store.bb + +// bd : http://en.wikipedia.org/wiki/.bd +*.bd + +// be : http://en.wikipedia.org/wiki/.be +// Confirmed by registry 2008-06-08 +be +ac.be + +// bf : http://en.wikipedia.org/wiki/.bf +bf +gov.bf + +// bg : http://en.wikipedia.org/wiki/.bg +// https://www.register.bg/user/static/rules/en/index.html +bg +a.bg +b.bg +c.bg +d.bg +e.bg +f.bg +g.bg +h.bg +i.bg +j.bg +k.bg +l.bg +m.bg +n.bg +o.bg +p.bg +q.bg +r.bg +s.bg +t.bg +u.bg +v.bg +w.bg +x.bg +y.bg +z.bg +0.bg +1.bg +2.bg +3.bg +4.bg +5.bg +6.bg +7.bg +8.bg +9.bg + +// bh : http://en.wikipedia.org/wiki/.bh +bh +com.bh +edu.bh +net.bh +org.bh +gov.bh + +// bi : http://en.wikipedia.org/wiki/.bi +// http://whois.nic.bi/ +bi +co.bi +com.bi +edu.bi +or.bi +org.bi + +// biz : http://en.wikipedia.org/wiki/.biz +biz + +// bj : http://en.wikipedia.org/wiki/.bj +bj +asso.bj +barreau.bj +gouv.bj + +// bm : http://www.bermudanic.bm/dnr-text.txt +bm +com.bm +edu.bm +gov.bm +net.bm +org.bm + +// bn : http://en.wikipedia.org/wiki/.bn +*.bn + +// bo : http://www.nic.bo/ +bo +com.bo +edu.bo +gov.bo +gob.bo +int.bo +org.bo +net.bo +mil.bo +tv.bo + +// br : http://registro.br/dominio/dpn.html +// Updated by registry 2011-03-01 +br +adm.br +adv.br +agr.br +am.br +arq.br +art.br +ato.br +b.br +bio.br +blog.br +bmd.br +can.br +cim.br +cng.br +cnt.br +com.br +coop.br +ecn.br +edu.br +emp.br +eng.br +esp.br +etc.br +eti.br +far.br +flog.br +fm.br +fnd.br +fot.br +fst.br +g12.br +ggf.br +gov.br +imb.br +ind.br +inf.br +jor.br +jus.br +lel.br +mat.br +med.br +mil.br +mus.br +net.br +nom.br +not.br +ntr.br +odo.br +org.br +ppg.br +pro.br +psc.br +psi.br +qsl.br +radio.br +rec.br +slg.br +srv.br +taxi.br +teo.br +tmp.br +trd.br +tur.br +tv.br +vet.br +vlog.br +wiki.br +zlg.br + +// bs : http://www.nic.bs/rules.html +bs +com.bs +net.bs +org.bs +edu.bs +gov.bs + +// bt : http://en.wikipedia.org/wiki/.bt +bt +com.bt +edu.bt +gov.bt +net.bt +org.bt + +// bv : No registrations at this time. +// Submitted by registry 2006-06-16 + +// bw : http://en.wikipedia.org/wiki/.bw +// http://www.gobin.info/domainname/bw.doc +// list of other 2nd level tlds ? +bw +co.bw +org.bw + +// by : http://en.wikipedia.org/wiki/.by +// http://tld.by/rules_2006_en.html +// list of other 2nd level tlds ? +by +gov.by +mil.by +// Official information does not indicate that com.by is a reserved +// second-level domain, but it's being used as one (see www.google.com.by and +// www.yahoo.com.by, for example), so we list it here for safety's sake. +com.by + +// http://hoster.by/ +of.by + +// bz : http://en.wikipedia.org/wiki/.bz +// http://www.belizenic.bz/ +bz +com.bz +net.bz +org.bz +edu.bz +gov.bz + +// ca : http://en.wikipedia.org/wiki/.ca +ca +// ca geographical names +ab.ca +bc.ca +mb.ca +nb.ca +nf.ca +nl.ca +ns.ca +nt.ca +nu.ca +on.ca +pe.ca +qc.ca +sk.ca +yk.ca +// gc.ca: http://en.wikipedia.org/wiki/.gc.ca +// see also: http://registry.gc.ca/en/SubdomainFAQ +gc.ca + +// cat : http://en.wikipedia.org/wiki/.cat +cat + +// cc : http://en.wikipedia.org/wiki/.cc +cc + +// cd : http://en.wikipedia.org/wiki/.cd +// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1 +cd +gov.cd + +// cf : http://en.wikipedia.org/wiki/.cf +cf + +// cg : http://en.wikipedia.org/wiki/.cg +cg + +// ch : http://en.wikipedia.org/wiki/.ch +ch + +// ci : http://en.wikipedia.org/wiki/.ci +// http://www.nic.ci/index.php?page=charte +ci +org.ci +or.ci +com.ci +co.ci +edu.ci +ed.ci +ac.ci +net.ci +go.ci +asso.ci +aéroport.ci +int.ci +presse.ci +md.ci +gouv.ci + +// ck : http://en.wikipedia.org/wiki/.ck +*.ck +!www.ck + +// cl : http://en.wikipedia.org/wiki/.cl +cl +gov.cl +gob.cl +co.cl +mil.cl + +// cm : http://en.wikipedia.org/wiki/.cm +cm +gov.cm + +// cn : http://en.wikipedia.org/wiki/.cn +// Submitted by registry 2008-06-11 +cn +ac.cn +com.cn +edu.cn +gov.cn +net.cn +org.cn +mil.cn +公司.cn +网络.cn +網絡.cn +// cn geographic names +ah.cn +bj.cn +cq.cn +fj.cn +gd.cn +gs.cn +gz.cn +gx.cn +ha.cn +hb.cn +he.cn +hi.cn +hl.cn +hn.cn +jl.cn +js.cn +jx.cn +ln.cn +nm.cn +nx.cn +qh.cn +sc.cn +sd.cn +sh.cn +sn.cn +sx.cn +tj.cn +xj.cn +xz.cn +yn.cn +zj.cn +hk.cn +mo.cn +tw.cn + +// co : http://en.wikipedia.org/wiki/.co +// Submitted by registry 2008-06-11 +co +arts.co +com.co +edu.co +firm.co +gov.co +info.co +int.co +mil.co +net.co +nom.co +org.co +rec.co +web.co + +// com : http://en.wikipedia.org/wiki/.com +com + +// coop : http://en.wikipedia.org/wiki/.coop +coop + +// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do +cr +ac.cr +co.cr +ed.cr +fi.cr +go.cr +or.cr +sa.cr + +// cu : http://en.wikipedia.org/wiki/.cu +cu +com.cu +edu.cu +org.cu +net.cu +gov.cu +inf.cu + +// cv : http://en.wikipedia.org/wiki/.cv +cv + +// cx : http://en.wikipedia.org/wiki/.cx +// list of other 2nd level tlds ? +cx +gov.cx + +// cy : http://en.wikipedia.org/wiki/.cy +*.cy + +// cz : http://en.wikipedia.org/wiki/.cz +cz + +// de : http://en.wikipedia.org/wiki/.de +// Confirmed by registry (with technical +// reservations) 2008-07-01 +de + +// dj : http://en.wikipedia.org/wiki/.dj +dj + +// dk : http://en.wikipedia.org/wiki/.dk +// Confirmed by registry 2008-06-17 +dk + +// dm : http://en.wikipedia.org/wiki/.dm +dm +com.dm +net.dm +org.dm +edu.dm +gov.dm + +// do : http://en.wikipedia.org/wiki/.do +do +art.do +com.do +edu.do +gob.do +gov.do +mil.do +net.do +org.do +sld.do +web.do + +// dz : http://en.wikipedia.org/wiki/.dz +dz +com.dz +org.dz +net.dz +gov.dz +edu.dz +asso.dz +pol.dz +art.dz + +// ec : http://www.nic.ec/reg/paso1.asp +// Submitted by registry 2008-07-04 +ec +com.ec +info.ec +net.ec +fin.ec +k12.ec +med.ec +pro.ec +org.ec +edu.ec +gov.ec +gob.ec +mil.ec + +// edu : http://en.wikipedia.org/wiki/.edu +edu + +// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B +ee +edu.ee +gov.ee +riik.ee +lib.ee +med.ee +com.ee +pri.ee +aip.ee +org.ee +fie.ee + +// eg : http://en.wikipedia.org/wiki/.eg +eg +com.eg +edu.eg +eun.eg +gov.eg +mil.eg +name.eg +net.eg +org.eg +sci.eg + +// er : http://en.wikipedia.org/wiki/.er +*.er + +// es : https://www.nic.es/site_ingles/ingles/dominios/index.html +es +com.es +nom.es +org.es +gob.es +edu.es + +// et : http://en.wikipedia.org/wiki/.et +*.et + +// eu : http://en.wikipedia.org/wiki/.eu +eu + +// fi : http://en.wikipedia.org/wiki/.fi +fi +// aland.fi : http://en.wikipedia.org/wiki/.ax +// This domain is being phased out in favor of .ax. As there are still many +// domains under aland.fi, we still keep it on the list until aland.fi is +// completely removed. +// TODO: Check for updates (expected to be phased out around Q1/2009) +aland.fi + +// fj : http://en.wikipedia.org/wiki/.fj +*.fj + +// fk : http://en.wikipedia.org/wiki/.fk +*.fk + +// fm : http://en.wikipedia.org/wiki/.fm +fm + +// fo : http://en.wikipedia.org/wiki/.fo +fo + +// fr : http://www.afnic.fr/ +// domaines descriptifs : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-descriptifs +fr +com.fr +asso.fr +nom.fr +prd.fr +presse.fr +tm.fr +// domaines sectoriels : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-sectoriels +aeroport.fr +assedic.fr +avocat.fr +avoues.fr +cci.fr +chambagri.fr +chirurgiens-dentistes.fr +experts-comptables.fr +geometre-expert.fr +gouv.fr +greta.fr +huissier-justice.fr +medecin.fr +notaires.fr +pharmacien.fr +port.fr +veterinaire.fr + +// ga : http://en.wikipedia.org/wiki/.ga +ga + +// gb : This registry is effectively dormant +// Submitted by registry 2008-06-12 + +// gd : http://en.wikipedia.org/wiki/.gd +gd + +// ge : http://www.nic.net.ge/policy_en.pdf +ge +com.ge +edu.ge +gov.ge +org.ge +mil.ge +net.ge +pvt.ge + +// gf : http://en.wikipedia.org/wiki/.gf +gf + +// gg : http://www.channelisles.net/applic/avextn.shtml +gg +co.gg +org.gg +net.gg +sch.gg +gov.gg + +// gh : http://en.wikipedia.org/wiki/.gh +// see also: http://www.nic.gh/reg_now.php +// Although domains directly at second level are not possible at the moment, +// they have been possible for some time and may come back. +gh +com.gh +edu.gh +gov.gh +org.gh +mil.gh + +// gi : http://www.nic.gi/rules.html +gi +com.gi +ltd.gi +gov.gi +mod.gi +edu.gi +org.gi + +// gl : http://en.wikipedia.org/wiki/.gl +// http://nic.gl +gl + +// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm +gm + +// gn : http://psg.com/dns/gn/gn.txt +// Submitted by registry 2008-06-17 +ac.gn +com.gn +edu.gn +gov.gn +org.gn +net.gn + +// gov : http://en.wikipedia.org/wiki/.gov +gov + +// gp : http://www.nic.gp/index.php?lang=en +gp +com.gp +net.gp +mobi.gp +edu.gp +org.gp +asso.gp + +// gq : http://en.wikipedia.org/wiki/.gq +gq + +// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html +// Submitted by registry 2008-06-09 +gr +com.gr +edu.gr +net.gr +org.gr +gov.gr + +// gs : http://en.wikipedia.org/wiki/.gs +gs + +// gt : http://www.gt/politicas.html +*.gt +!www.gt + +// gu : http://gadao.gov.gu/registration.txt +*.gu + +// gw : http://en.wikipedia.org/wiki/.gw +gw + +// gy : http://en.wikipedia.org/wiki/.gy +// http://registry.gy/ +gy +co.gy +com.gy +net.gy + +// hk : https://www.hkdnr.hk +// Submitted by registry 2008-06-11 +hk +com.hk +edu.hk +gov.hk +idv.hk +net.hk +org.hk +公司.hk +教育.hk +敎育.hk +政府.hk +個人.hk +个人.hk +箇人.hk +網络.hk +网络.hk +组織.hk +網絡.hk +网絡.hk +组织.hk +組織.hk +組织.hk + +// hm : http://en.wikipedia.org/wiki/.hm +hm + +// hn : http://www.nic.hn/politicas/ps02,,05.html +hn +com.hn +edu.hn +org.hn +net.hn +mil.hn +gob.hn + +// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf +hr +iz.hr +from.hr +name.hr +com.hr + +// ht : http://www.nic.ht/info/charte.cfm +ht +com.ht +shop.ht +firm.ht +info.ht +adult.ht +net.ht +pro.ht +org.ht +med.ht +art.ht +coop.ht +pol.ht +asso.ht +edu.ht +rel.ht +gouv.ht +perso.ht + +// hu : http://www.domain.hu/domain/English/sld.html +// Confirmed by registry 2008-06-12 +hu +co.hu +info.hu +org.hu +priv.hu +sport.hu +tm.hu +2000.hu +agrar.hu +bolt.hu +casino.hu +city.hu +erotica.hu +erotika.hu +film.hu +forum.hu +games.hu +hotel.hu +ingatlan.hu +jogasz.hu +konyvelo.hu +lakas.hu +media.hu +news.hu +reklam.hu +sex.hu +shop.hu +suli.hu +szex.hu +tozsde.hu +utazas.hu +video.hu + +// id : http://en.wikipedia.org/wiki/.id +// see also: https://register.pandi.or.id/ +id +ac.id +co.id +go.id +mil.id +net.id +or.id +sch.id +web.id + +// ie : http://en.wikipedia.org/wiki/.ie +ie +gov.ie + +// il : http://en.wikipedia.org/wiki/.il +*.il + +// im : https://www.nic.im/pdfs/imfaqs.pdf +im +co.im +ltd.co.im +plc.co.im +net.im +gov.im +org.im +nic.im +ac.im + +// in : http://en.wikipedia.org/wiki/.in +// see also: http://www.inregistry.in/policies/ +// Please note, that nic.in is not an offical eTLD, but used by most +// government institutions. +in +co.in +firm.in +net.in +org.in +gen.in +ind.in +nic.in +ac.in +edu.in +res.in +gov.in +mil.in + +// info : http://en.wikipedia.org/wiki/.info +info + +// int : http://en.wikipedia.org/wiki/.int +// Confirmed by registry 2008-06-18 +int +eu.int + +// io : http://www.nic.io/rules.html +// list of other 2nd level tlds ? +io +com.io + +// iq : http://www.cmc.iq/english/iq/iqregister1.htm +iq +gov.iq +edu.iq +mil.iq +com.iq +org.iq +net.iq + +// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules +// Also see http://www.nic.ir/Internationalized_Domain_Names +// Two .ir entries added at request of , 2010-04-16 +ir +ac.ir +co.ir +gov.ir +id.ir +net.ir +org.ir +sch.ir +// xn--mgba3a4f16a.ir (.ir, Persian YEH) +ایران.ir +// xn--mgba3a4fra.ir (.ir, Arabic YEH) +ايران.ir + +// is : http://www.isnic.is/domain/rules.php +// Confirmed by registry 2008-12-06 +is +net.is +com.is +edu.is +gov.is +org.is +int.is + +// it : http://en.wikipedia.org/wiki/.it +it +gov.it +edu.it +// list of reserved geo-names : +// http://www.nic.it/documenti/regolamenti-e-linee-guida/regolamento-assegnazione-versione-6.0.pdf +// (There is also a list of reserved geo-names corresponding to Italian +// municipalities : http://www.nic.it/documenti/appendice-c.pdf , but it is +// not included here.) +agrigento.it +ag.it +alessandria.it +al.it +ancona.it +an.it +aosta.it +aoste.it +ao.it +arezzo.it +ar.it +ascoli-piceno.it +ascolipiceno.it +ap.it +asti.it +at.it +avellino.it +av.it +bari.it +ba.it +andria-barletta-trani.it +andriabarlettatrani.it +trani-barletta-andria.it +tranibarlettaandria.it +barletta-trani-andria.it +barlettatraniandria.it +andria-trani-barletta.it +andriatranibarletta.it +trani-andria-barletta.it +traniandriabarletta.it +bt.it +belluno.it +bl.it +benevento.it +bn.it +bergamo.it +bg.it +biella.it +bi.it +bologna.it +bo.it +bolzano.it +bozen.it +balsan.it +alto-adige.it +altoadige.it +suedtirol.it +bz.it +brescia.it +bs.it +brindisi.it +br.it +cagliari.it +ca.it +caltanissetta.it +cl.it +campobasso.it +cb.it +carboniaiglesias.it +carbonia-iglesias.it +iglesias-carbonia.it +iglesiascarbonia.it +ci.it +caserta.it +ce.it +catania.it +ct.it +catanzaro.it +cz.it +chieti.it +ch.it +como.it +co.it +cosenza.it +cs.it +cremona.it +cr.it +crotone.it +kr.it +cuneo.it +cn.it +dell-ogliastra.it +dellogliastra.it +ogliastra.it +og.it +enna.it +en.it +ferrara.it +fe.it +fermo.it +fm.it +firenze.it +florence.it +fi.it +foggia.it +fg.it +forli-cesena.it +forlicesena.it +cesena-forli.it +cesenaforli.it +fc.it +frosinone.it +fr.it +genova.it +genoa.it +ge.it +gorizia.it +go.it +grosseto.it +gr.it +imperia.it +im.it +isernia.it +is.it +laquila.it +aquila.it +aq.it +la-spezia.it +laspezia.it +sp.it +latina.it +lt.it +lecce.it +le.it +lecco.it +lc.it +livorno.it +li.it +lodi.it +lo.it +lucca.it +lu.it +macerata.it +mc.it +mantova.it +mn.it +massa-carrara.it +massacarrara.it +carrara-massa.it +carraramassa.it +ms.it +matera.it +mt.it +medio-campidano.it +mediocampidano.it +campidano-medio.it +campidanomedio.it +vs.it +messina.it +me.it +milano.it +milan.it +mi.it +modena.it +mo.it +monza.it +monza-brianza.it +monzabrianza.it +monzaebrianza.it +monzaedellabrianza.it +monza-e-della-brianza.it +mb.it +napoli.it +naples.it +na.it +novara.it +no.it +nuoro.it +nu.it +oristano.it +or.it +padova.it +padua.it +pd.it +palermo.it +pa.it +parma.it +pr.it +pavia.it +pv.it +perugia.it +pg.it +pescara.it +pe.it +pesaro-urbino.it +pesarourbino.it +urbino-pesaro.it +urbinopesaro.it +pu.it +piacenza.it +pc.it +pisa.it +pi.it +pistoia.it +pt.it +pordenone.it +pn.it +potenza.it +pz.it +prato.it +po.it +ragusa.it +rg.it +ravenna.it +ra.it +reggio-calabria.it +reggiocalabria.it +rc.it +reggio-emilia.it +reggioemilia.it +re.it +rieti.it +ri.it +rimini.it +rn.it +roma.it +rome.it +rm.it +rovigo.it +ro.it +salerno.it +sa.it +sassari.it +ss.it +savona.it +sv.it +siena.it +si.it +siracusa.it +sr.it +sondrio.it +so.it +taranto.it +ta.it +tempio-olbia.it +tempioolbia.it +olbia-tempio.it +olbiatempio.it +ot.it +teramo.it +te.it +terni.it +tr.it +torino.it +turin.it +to.it +trapani.it +tp.it +trento.it +trentino.it +tn.it +treviso.it +tv.it +trieste.it +ts.it +udine.it +ud.it +varese.it +va.it +venezia.it +venice.it +ve.it +verbania.it +vb.it +vercelli.it +vc.it +verona.it +vr.it +vibo-valentia.it +vibovalentia.it +vv.it +vicenza.it +vi.it +viterbo.it +vt.it + +// je : http://www.channelisles.net/applic/avextn.shtml +je +co.je +org.je +net.je +sch.je +gov.je + +// jm : http://www.com.jm/register.html +*.jm + +// jo : http://www.dns.jo/Registration_policy.aspx +jo +com.jo +org.jo +net.jo +edu.jo +sch.jo +gov.jo +mil.jo +name.jo + +// jobs : http://en.wikipedia.org/wiki/.jobs +jobs + +// jp : http://en.wikipedia.org/wiki/.jp +// http://jprs.co.jp/en/jpdomain.html +// Submitted by registry 2008-06-11 +// Updated by registry 2008-12-04 +jp +// jp organizational type names +ac.jp +ad.jp +co.jp +ed.jp +go.jp +gr.jp +lg.jp +ne.jp +or.jp +// jp geographic type names +// http://jprs.jp/doc/rule/saisoku-1.html +*.aichi.jp +*.akita.jp +*.aomori.jp +*.chiba.jp +*.ehime.jp +*.fukui.jp +*.fukuoka.jp +*.fukushima.jp +*.gifu.jp +*.gunma.jp +*.hiroshima.jp +*.hokkaido.jp +*.hyogo.jp +*.ibaraki.jp +*.ishikawa.jp +*.iwate.jp +*.kagawa.jp +*.kagoshima.jp +*.kanagawa.jp +*.kawasaki.jp +*.kitakyushu.jp +*.kobe.jp +*.kochi.jp +*.kumamoto.jp +*.kyoto.jp +*.mie.jp +*.miyagi.jp +*.miyazaki.jp +*.nagano.jp +*.nagasaki.jp +*.nagoya.jp +*.nara.jp +*.niigata.jp +*.oita.jp +*.okayama.jp +*.okinawa.jp +*.osaka.jp +*.saga.jp +*.saitama.jp +*.sapporo.jp +*.sendai.jp +*.shiga.jp +*.shimane.jp +*.shizuoka.jp +*.tochigi.jp +*.tokushima.jp +*.tokyo.jp +*.tottori.jp +*.toyama.jp +*.wakayama.jp +*.yamagata.jp +*.yamaguchi.jp +*.yamanashi.jp +*.yokohama.jp +!metro.tokyo.jp +!pref.aichi.jp +!pref.akita.jp +!pref.aomori.jp +!pref.chiba.jp +!pref.ehime.jp +!pref.fukui.jp +!pref.fukuoka.jp +!pref.fukushima.jp +!pref.gifu.jp +!pref.gunma.jp +!pref.hiroshima.jp +!pref.hokkaido.jp +!pref.hyogo.jp +!pref.ibaraki.jp +!pref.ishikawa.jp +!pref.iwate.jp +!pref.kagawa.jp +!pref.kagoshima.jp +!pref.kanagawa.jp +!pref.kochi.jp +!pref.kumamoto.jp +!pref.kyoto.jp +!pref.mie.jp +!pref.miyagi.jp +!pref.miyazaki.jp +!pref.nagano.jp +!pref.nagasaki.jp +!pref.nara.jp +!pref.niigata.jp +!pref.oita.jp +!pref.okayama.jp +!pref.okinawa.jp +!pref.osaka.jp +!pref.saga.jp +!pref.saitama.jp +!pref.shiga.jp +!pref.shimane.jp +!pref.shizuoka.jp +!pref.tochigi.jp +!pref.tokushima.jp +!pref.tottori.jp +!pref.toyama.jp +!pref.wakayama.jp +!pref.yamagata.jp +!pref.yamaguchi.jp +!pref.yamanashi.jp +!city.chiba.jp +!city.fukuoka.jp +!city.hiroshima.jp +!city.kawasaki.jp +!city.kitakyushu.jp +!city.kobe.jp +!city.kyoto.jp +!city.nagoya.jp +!city.niigata.jp +!city.okayama.jp +!city.osaka.jp +!city.saitama.jp +!city.sapporo.jp +!city.sendai.jp +!city.shizuoka.jp +!city.yokohama.jp + +// ke : http://www.kenic.or.ke/index.php?option=com_content&task=view&id=117&Itemid=145 +*.ke + +// kg : http://www.domain.kg/dmn_n.html +kg +org.kg +net.kg +com.kg +edu.kg +gov.kg +mil.kg + +// kh : http://www.mptc.gov.kh/dns_registration.htm +*.kh + +// ki : http://www.ki/dns/index.html +ki +edu.ki +biz.ki +net.ki +org.ki +gov.ki +info.ki +com.ki + +// km : http://en.wikipedia.org/wiki/.km +// http://www.domaine.km/documents/charte.doc +km +org.km +nom.km +gov.km +prd.km +tm.km +edu.km +mil.km +ass.km +com.km +// These are only mentioned as proposed suggestions at domaine.km, but +// http://en.wikipedia.org/wiki/.km says they're available for registration: +coop.km +asso.km +presse.km +medecin.km +notaires.km +pharmaciens.km +veterinaire.km +gouv.km + +// kn : http://en.wikipedia.org/wiki/.kn +// http://www.dot.kn/domainRules.html +kn +net.kn +org.kn +edu.kn +gov.kn + +// kp : http://www.kcce.kp/en_index.php +com.kp +edu.kp +gov.kp +org.kp +rep.kp +tra.kp + +// kr : http://en.wikipedia.org/wiki/.kr +// see also: http://domain.nida.or.kr/eng/registration.jsp +kr +ac.kr +co.kr +es.kr +go.kr +hs.kr +kg.kr +mil.kr +ms.kr +ne.kr +or.kr +pe.kr +re.kr +sc.kr +// kr geographical names +busan.kr +chungbuk.kr +chungnam.kr +daegu.kr +daejeon.kr +gangwon.kr +gwangju.kr +gyeongbuk.kr +gyeonggi.kr +gyeongnam.kr +incheon.kr +jeju.kr +jeonbuk.kr +jeonnam.kr +seoul.kr +ulsan.kr + +// kw : http://en.wikipedia.org/wiki/.kw +*.kw + +// ky : http://www.icta.ky/da_ky_reg_dom.php +// Confirmed by registry 2008-06-17 +ky +edu.ky +gov.ky +com.ky +org.ky +net.ky + +// kz : http://en.wikipedia.org/wiki/.kz +// see also: http://www.nic.kz/rules/index.jsp +kz +org.kz +edu.kz +net.kz +gov.kz +mil.kz +com.kz + +// la : http://en.wikipedia.org/wiki/.la +// Submitted by registry 2008-06-10 +la +int.la +net.la +info.la +edu.la +gov.la +per.la +com.la +org.la + +// lb : http://en.wikipedia.org/wiki/.lb +// Submitted by registry 2008-06-17 +com.lb +edu.lb +gov.lb +net.lb +org.lb + +// lc : http://en.wikipedia.org/wiki/.lc +// see also: http://www.nic.lc/rules.htm +lc +com.lc +net.lc +co.lc +org.lc +edu.lc +gov.lc + +// li : http://en.wikipedia.org/wiki/.li +li + +// lk : http://www.nic.lk/seclevpr.html +lk +gov.lk +sch.lk +net.lk +int.lk +com.lk +org.lk +edu.lk +ngo.lk +soc.lk +web.lk +ltd.lk +assn.lk +grp.lk +hotel.lk + +// lr : http://psg.com/dns/lr/lr.txt +// Submitted by registry 2008-06-17 +com.lr +edu.lr +gov.lr +org.lr +net.lr + +// ls : http://en.wikipedia.org/wiki/.ls +ls +co.ls +org.ls + +// lt : http://en.wikipedia.org/wiki/.lt +lt +// gov.lt : http://www.gov.lt/index_en.php +gov.lt + +// lu : http://www.dns.lu/en/ +lu + +// lv : http://www.nic.lv/DNS/En/generic.php +lv +com.lv +edu.lv +gov.lv +org.lv +mil.lv +id.lv +net.lv +asn.lv +conf.lv + +// ly : http://www.nic.ly/regulations.php +ly +com.ly +net.ly +gov.ly +plc.ly +edu.ly +sch.ly +med.ly +org.ly +id.ly + +// ma : http://en.wikipedia.org/wiki/.ma +// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf +ma +co.ma +net.ma +gov.ma +org.ma +ac.ma +press.ma + +// mc : http://www.nic.mc/ +mc +tm.mc +asso.mc + +// md : http://en.wikipedia.org/wiki/.md +md + +// me : http://en.wikipedia.org/wiki/.me +me +co.me +net.me +org.me +edu.me +ac.me +gov.me +its.me +priv.me + +// mg : http://www.nic.mg/tarif.htm +mg +org.mg +nom.mg +gov.mg +prd.mg +tm.mg +edu.mg +mil.mg +com.mg + +// mh : http://en.wikipedia.org/wiki/.mh +mh + +// mil : http://en.wikipedia.org/wiki/.mil +mil + +// mk : http://en.wikipedia.org/wiki/.mk +// see also: http://dns.marnet.net.mk/postapka.php +mk +com.mk +org.mk +net.mk +edu.mk +gov.mk +inf.mk +name.mk + +// ml : http://www.gobin.info/domainname/ml-template.doc +// see also: http://en.wikipedia.org/wiki/.ml +ml +com.ml +edu.ml +gouv.ml +gov.ml +net.ml +org.ml +presse.ml + +// mm : http://en.wikipedia.org/wiki/.mm +*.mm + +// mn : http://en.wikipedia.org/wiki/.mn +mn +gov.mn +edu.mn +org.mn + +// mo : http://www.monic.net.mo/ +mo +com.mo +net.mo +org.mo +edu.mo +gov.mo + +// mobi : http://en.wikipedia.org/wiki/.mobi +mobi + +// mp : http://www.dot.mp/ +// Confirmed by registry 2008-06-17 +mp + +// mq : http://en.wikipedia.org/wiki/.mq +mq + +// mr : http://en.wikipedia.org/wiki/.mr +mr +gov.mr + +// ms : http://en.wikipedia.org/wiki/.ms +ms + +// mt : https://www.nic.org.mt/dotmt/ +*.mt + +// mu : http://en.wikipedia.org/wiki/.mu +mu +com.mu +net.mu +org.mu +gov.mu +ac.mu +co.mu +or.mu + +// museum : http://about.museum/naming/ +// http://index.museum/ +museum +academy.museum +agriculture.museum +air.museum +airguard.museum +alabama.museum +alaska.museum +amber.museum +ambulance.museum +american.museum +americana.museum +americanantiques.museum +americanart.museum +amsterdam.museum +and.museum +annefrank.museum +anthro.museum +anthropology.museum +antiques.museum +aquarium.museum +arboretum.museum +archaeological.museum +archaeology.museum +architecture.museum +art.museum +artanddesign.museum +artcenter.museum +artdeco.museum +arteducation.museum +artgallery.museum +arts.museum +artsandcrafts.museum +asmatart.museum +assassination.museum +assisi.museum +association.museum +astronomy.museum +atlanta.museum +austin.museum +australia.museum +automotive.museum +aviation.museum +axis.museum +badajoz.museum +baghdad.museum +bahn.museum +bale.museum +baltimore.museum +barcelona.museum +baseball.museum +basel.museum +baths.museum +bauern.museum +beauxarts.museum +beeldengeluid.museum +bellevue.museum +bergbau.museum +berkeley.museum +berlin.museum +bern.museum +bible.museum +bilbao.museum +bill.museum +birdart.museum +birthplace.museum +bonn.museum +boston.museum +botanical.museum +botanicalgarden.museum +botanicgarden.museum +botany.museum +brandywinevalley.museum +brasil.museum +bristol.museum +british.museum +britishcolumbia.museum +broadcast.museum +brunel.museum +brussel.museum +brussels.museum +bruxelles.museum +building.museum +burghof.museum +bus.museum +bushey.museum +cadaques.museum +california.museum +cambridge.museum +can.museum +canada.museum +capebreton.museum +carrier.museum +cartoonart.museum +casadelamoneda.museum +castle.museum +castres.museum +celtic.museum +center.museum +chattanooga.museum +cheltenham.museum +chesapeakebay.museum +chicago.museum +children.museum +childrens.museum +childrensgarden.museum +chiropractic.museum +chocolate.museum +christiansburg.museum +cincinnati.museum +cinema.museum +circus.museum +civilisation.museum +civilization.museum +civilwar.museum +clinton.museum +clock.museum +coal.museum +coastaldefence.museum +cody.museum +coldwar.museum +collection.museum +colonialwilliamsburg.museum +coloradoplateau.museum +columbia.museum +columbus.museum +communication.museum +communications.museum +community.museum +computer.museum +computerhistory.museum +comunicações.museum +contemporary.museum +contemporaryart.museum +convent.museum +copenhagen.museum +corporation.museum +correios-e-telecomunicações.museum +corvette.museum +costume.museum +countryestate.museum +county.museum +crafts.museum +cranbrook.museum +creation.museum +cultural.museum +culturalcenter.museum +culture.museum +cyber.museum +cymru.museum +dali.museum +dallas.museum +database.museum +ddr.museum +decorativearts.museum +delaware.museum +delmenhorst.museum +denmark.museum +depot.museum +design.museum +detroit.museum +dinosaur.museum +discovery.museum +dolls.museum +donostia.museum +durham.museum +eastafrica.museum +eastcoast.museum +education.museum +educational.museum +egyptian.museum +eisenbahn.museum +elburg.museum +elvendrell.museum +embroidery.museum +encyclopedic.museum +england.museum +entomology.museum +environment.museum +environmentalconservation.museum +epilepsy.museum +essex.museum +estate.museum +ethnology.museum +exeter.museum +exhibition.museum +family.museum +farm.museum +farmequipment.museum +farmers.museum +farmstead.museum +field.museum +figueres.museum +filatelia.museum +film.museum +fineart.museum +finearts.museum +finland.museum +flanders.museum +florida.museum +force.museum +fortmissoula.museum +fortworth.museum +foundation.museum +francaise.museum +frankfurt.museum +franziskaner.museum +freemasonry.museum +freiburg.museum +fribourg.museum +frog.museum +fundacio.museum +furniture.museum +gallery.museum +garden.museum +gateway.museum +geelvinck.museum +gemological.museum +geology.museum +georgia.museum +giessen.museum +glas.museum +glass.museum +gorge.museum +grandrapids.museum +graz.museum +guernsey.museum +halloffame.museum +hamburg.museum +handson.museum +harvestcelebration.museum +hawaii.museum +health.museum +heimatunduhren.museum +hellas.museum +helsinki.museum +hembygdsforbund.museum +heritage.museum +histoire.museum +historical.museum +historicalsociety.museum +historichouses.museum +historisch.museum +historisches.museum +history.museum +historyofscience.museum +horology.museum +house.museum +humanities.museum +illustration.museum +imageandsound.museum +indian.museum +indiana.museum +indianapolis.museum +indianmarket.museum +intelligence.museum +interactive.museum +iraq.museum +iron.museum +isleofman.museum +jamison.museum +jefferson.museum +jerusalem.museum +jewelry.museum +jewish.museum +jewishart.museum +jfk.museum +journalism.museum +judaica.museum +judygarland.museum +juedisches.museum +juif.museum +karate.museum +karikatur.museum +kids.museum +koebenhavn.museum +koeln.museum +kunst.museum +kunstsammlung.museum +kunstunddesign.museum +labor.museum +labour.museum +lajolla.museum +lancashire.museum +landes.museum +lans.museum +läns.museum +larsson.museum +lewismiller.museum +lincoln.museum +linz.museum +living.museum +livinghistory.museum +localhistory.museum +london.museum +losangeles.museum +louvre.museum +loyalist.museum +lucerne.museum +luxembourg.museum +luzern.museum +mad.museum +madrid.museum +mallorca.museum +manchester.museum +mansion.museum +mansions.museum +manx.museum +marburg.museum +maritime.museum +maritimo.museum +maryland.museum +marylhurst.museum +media.museum +medical.museum +medizinhistorisches.museum +meeres.museum +memorial.museum +mesaverde.museum +michigan.museum +midatlantic.museum +military.museum +mill.museum +miners.museum +mining.museum +minnesota.museum +missile.museum +missoula.museum +modern.museum +moma.museum +money.museum +monmouth.museum +monticello.museum +montreal.museum +moscow.museum +motorcycle.museum +muenchen.museum +muenster.museum +mulhouse.museum +muncie.museum +museet.museum +museumcenter.museum +museumvereniging.museum +music.museum +national.museum +nationalfirearms.museum +nationalheritage.museum +nativeamerican.museum +naturalhistory.museum +naturalhistorymuseum.museum +naturalsciences.museum +nature.museum +naturhistorisches.museum +natuurwetenschappen.museum +naumburg.museum +naval.museum +nebraska.museum +neues.museum +newhampshire.museum +newjersey.museum +newmexico.museum +newport.museum +newspaper.museum +newyork.museum +niepce.museum +norfolk.museum +north.museum +nrw.museum +nuernberg.museum +nuremberg.museum +nyc.museum +nyny.museum +oceanographic.museum +oceanographique.museum +omaha.museum +online.museum +ontario.museum +openair.museum +oregon.museum +oregontrail.museum +otago.museum +oxford.museum +pacific.museum +paderborn.museum +palace.museum +paleo.museum +palmsprings.museum +panama.museum +paris.museum +pasadena.museum +pharmacy.museum +philadelphia.museum +philadelphiaarea.museum +philately.museum +phoenix.museum +photography.museum +pilots.museum +pittsburgh.museum +planetarium.museum +plantation.museum +plants.museum +plaza.museum +portal.museum +portland.museum +portlligat.museum +posts-and-telecommunications.museum +preservation.museum +presidio.museum +press.museum +project.museum +public.museum +pubol.museum +quebec.museum +railroad.museum +railway.museum +research.museum +resistance.museum +riodejaneiro.museum +rochester.museum +rockart.museum +roma.museum +russia.museum +saintlouis.museum +salem.museum +salvadordali.museum +salzburg.museum +sandiego.museum +sanfrancisco.museum +santabarbara.museum +santacruz.museum +santafe.museum +saskatchewan.museum +satx.museum +savannahga.museum +schlesisches.museum +schoenbrunn.museum +schokoladen.museum +school.museum +schweiz.museum +science.museum +scienceandhistory.museum +scienceandindustry.museum +sciencecenter.museum +sciencecenters.museum +science-fiction.museum +sciencehistory.museum +sciences.museum +sciencesnaturelles.museum +scotland.museum +seaport.museum +settlement.museum +settlers.museum +shell.museum +sherbrooke.museum +sibenik.museum +silk.museum +ski.museum +skole.museum +society.museum +sologne.museum +soundandvision.museum +southcarolina.museum +southwest.museum +space.museum +spy.museum +square.museum +stadt.museum +stalbans.museum +starnberg.museum +state.museum +stateofdelaware.museum +station.museum +steam.museum +steiermark.museum +stjohn.museum +stockholm.museum +stpetersburg.museum +stuttgart.museum +suisse.museum +surgeonshall.museum +surrey.museum +svizzera.museum +sweden.museum +sydney.museum +tank.museum +tcm.museum +technology.museum +telekommunikation.museum +television.museum +texas.museum +textile.museum +theater.museum +time.museum +timekeeping.museum +topology.museum +torino.museum +touch.museum +town.museum +transport.museum +tree.museum +trolley.museum +trust.museum +trustee.museum +uhren.museum +ulm.museum +undersea.museum +university.museum +usa.museum +usantiques.museum +usarts.museum +uscountryestate.museum +usculture.museum +usdecorativearts.museum +usgarden.museum +ushistory.museum +ushuaia.museum +uslivinghistory.museum +utah.museum +uvic.museum +valley.museum +vantaa.museum +versailles.museum +viking.museum +village.museum +virginia.museum +virtual.museum +virtuel.museum +vlaanderen.museum +volkenkunde.museum +wales.museum +wallonie.museum +war.museum +washingtondc.museum +watchandclock.museum +watch-and-clock.museum +western.museum +westfalen.museum +whaling.museum +wildlife.museum +williamsburg.museum +windmill.museum +workshop.museum +york.museum +yorkshire.museum +yosemite.museum +youth.museum +zoological.museum +zoology.museum +ירושלים.museum +иком.museum + +// mv : http://en.wikipedia.org/wiki/.mv +// "mv" included because, contra Wikipedia, google.mv exists. +mv +aero.mv +biz.mv +com.mv +coop.mv +edu.mv +gov.mv +info.mv +int.mv +mil.mv +museum.mv +name.mv +net.mv +org.mv +pro.mv + +// mw : http://www.registrar.mw/ +mw +ac.mw +biz.mw +co.mw +com.mw +coop.mw +edu.mw +gov.mw +int.mw +museum.mw +net.mw +org.mw + +// mx : http://www.nic.mx/ +// Submitted by registry 2008-06-19 +mx +com.mx +org.mx +gob.mx +edu.mx +net.mx + +// my : http://www.mynic.net.my/ +my +com.my +net.my +org.my +gov.my +edu.my +mil.my +name.my + +// mz : http://www.gobin.info/domainname/mz-template.doc +*.mz + +// na : http://www.na-nic.com.na/ +// http://www.info.na/domain/ +na +info.na +pro.na +name.na +school.na +or.na +dr.na +us.na +mx.na +ca.na +in.na +cc.na +tv.na +ws.na +mobi.na +co.na +com.na +org.na + +// name : has 2nd-level tlds, but there's no list of them +name + +// nc : http://www.cctld.nc/ +nc +asso.nc + +// ne : http://en.wikipedia.org/wiki/.ne +ne + +// net : http://en.wikipedia.org/wiki/.net +net + +// nf : http://en.wikipedia.org/wiki/.nf +nf +com.nf +net.nf +per.nf +rec.nf +web.nf +arts.nf +firm.nf +info.nf +other.nf +store.nf + +// ng : http://psg.com/dns/ng/ +// Submitted by registry 2008-06-17 +ac.ng +com.ng +edu.ng +gov.ng +net.ng +org.ng + +// ni : http://www.nic.ni/dominios.htm +*.ni + +// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html +// Confirmed by registry (with technical +// reservations) 2008-06-08 +nl + +// BV.nl will be a registry for dutch BV's (besloten vennootschap) +bv.nl + +// no : http://www.norid.no/regelverk/index.en.html +// The Norwegian registry has declined to notify us of updates. The web pages +// referenced below are the official source of the data. There is also an +// announce mailing list: +// https://postlister.uninett.no/sympa/info/norid-diskusjon +no +// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html +fhs.no +vgs.no +fylkesbibl.no +folkebibl.no +museum.no +idrett.no +priv.no +// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html +mil.no +stat.no +dep.no +kommune.no +herad.no +// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html +// counties +aa.no +ah.no +bu.no +fm.no +hl.no +hm.no +jan-mayen.no +mr.no +nl.no +nt.no +of.no +ol.no +oslo.no +rl.no +sf.no +st.no +svalbard.no +tm.no +tr.no +va.no +vf.no +// primary and lower secondary schools per county +gs.aa.no +gs.ah.no +gs.bu.no +gs.fm.no +gs.hl.no +gs.hm.no +gs.jan-mayen.no +gs.mr.no +gs.nl.no +gs.nt.no +gs.of.no +gs.ol.no +gs.oslo.no +gs.rl.no +gs.sf.no +gs.st.no +gs.svalbard.no +gs.tm.no +gs.tr.no +gs.va.no +gs.vf.no +// cities +akrehamn.no +åkrehamn.no +algard.no +ålgård.no +arna.no +brumunddal.no +bryne.no +bronnoysund.no +brønnøysund.no +drobak.no +drøbak.no +egersund.no +fetsund.no +floro.no +florø.no +fredrikstad.no +hokksund.no +honefoss.no +hønefoss.no +jessheim.no +jorpeland.no +jørpeland.no +kirkenes.no +kopervik.no +krokstadelva.no +langevag.no +langevåg.no +leirvik.no +mjondalen.no +mjøndalen.no +mo-i-rana.no +mosjoen.no +mosjøen.no +nesoddtangen.no +orkanger.no +osoyro.no +osøyro.no +raholt.no +råholt.no +sandnessjoen.no +sandnessjøen.no +skedsmokorset.no +slattum.no +spjelkavik.no +stathelle.no +stavern.no +stjordalshalsen.no +stjørdalshalsen.no +tananger.no +tranby.no +vossevangen.no +// communities +afjord.no +åfjord.no +agdenes.no +al.no +ål.no +alesund.no +ålesund.no +alstahaug.no +alta.no +áltá.no +alaheadju.no +álaheadju.no +alvdal.no +amli.no +åmli.no +amot.no +åmot.no +andebu.no +andoy.no +andøy.no +andasuolo.no +ardal.no +årdal.no +aremark.no +arendal.no +ås.no +aseral.no +åseral.no +asker.no +askim.no +askvoll.no +askoy.no +askøy.no +asnes.no +åsnes.no +audnedaln.no +aukra.no +aure.no +aurland.no +aurskog-holand.no +aurskog-høland.no +austevoll.no +austrheim.no +averoy.no +averøy.no +balestrand.no +ballangen.no +balat.no +bálát.no +balsfjord.no +bahccavuotna.no +báhccavuotna.no +bamble.no +bardu.no +beardu.no +beiarn.no +bajddar.no +bájddar.no +baidar.no +báidár.no +berg.no +bergen.no +berlevag.no +berlevåg.no +bearalvahki.no +bearalváhki.no +bindal.no +birkenes.no +bjarkoy.no +bjarkøy.no +bjerkreim.no +bjugn.no +bodo.no +bodø.no +badaddja.no +bådåddjå.no +budejju.no +bokn.no +bremanger.no +bronnoy.no +brønnøy.no +bygland.no +bykle.no +barum.no +bærum.no +bo.telemark.no +bø.telemark.no +bo.nordland.no +bø.nordland.no +bievat.no +bievát.no +bomlo.no +bømlo.no +batsfjord.no +båtsfjord.no +bahcavuotna.no +báhcavuotna.no +dovre.no +drammen.no +drangedal.no +dyroy.no +dyrøy.no +donna.no +dønna.no +eid.no +eidfjord.no +eidsberg.no +eidskog.no +eidsvoll.no +eigersund.no +elverum.no +enebakk.no +engerdal.no +etne.no +etnedal.no +evenes.no +evenassi.no +evenášši.no +evje-og-hornnes.no +farsund.no +fauske.no +fuossko.no +fuoisku.no +fedje.no +fet.no +finnoy.no +finnøy.no +fitjar.no +fjaler.no +fjell.no +flakstad.no +flatanger.no +flekkefjord.no +flesberg.no +flora.no +fla.no +flå.no +folldal.no +forsand.no +fosnes.no +frei.no +frogn.no +froland.no +frosta.no +frana.no +fræna.no +froya.no +frøya.no +fusa.no +fyresdal.no +forde.no +førde.no +gamvik.no +gangaviika.no +gáŋgaviika.no +gaular.no +gausdal.no +gildeskal.no +gildeskål.no +giske.no +gjemnes.no +gjerdrum.no +gjerstad.no +gjesdal.no +gjovik.no +gjøvik.no +gloppen.no +gol.no +gran.no +grane.no +granvin.no +gratangen.no +grimstad.no +grong.no +kraanghke.no +kråanghke.no +grue.no +gulen.no +hadsel.no +halden.no +halsa.no +hamar.no +hamaroy.no +habmer.no +hábmer.no +hapmir.no +hápmir.no +hammerfest.no +hammarfeasta.no +hámmárfeasta.no +haram.no +hareid.no +harstad.no +hasvik.no +aknoluokta.no +ákŋoluokta.no +hattfjelldal.no +aarborte.no +haugesund.no +hemne.no +hemnes.no +hemsedal.no +heroy.more-og-romsdal.no +herøy.møre-og-romsdal.no +heroy.nordland.no +herøy.nordland.no +hitra.no +hjartdal.no +hjelmeland.no +hobol.no +hobøl.no +hof.no +hol.no +hole.no +holmestrand.no +holtalen.no +holtålen.no +hornindal.no +horten.no +hurdal.no +hurum.no +hvaler.no +hyllestad.no +hagebostad.no +hægebostad.no +hoyanger.no +høyanger.no +hoylandet.no +høylandet.no +ha.no +hå.no +ibestad.no +inderoy.no +inderøy.no +iveland.no +jevnaker.no +jondal.no +jolster.no +jølster.no +karasjok.no +karasjohka.no +kárášjohka.no +karlsoy.no +galsa.no +gálsá.no +karmoy.no +karmøy.no +kautokeino.no +guovdageaidnu.no +klepp.no +klabu.no +klæbu.no +kongsberg.no +kongsvinger.no +kragero.no +kragerø.no +kristiansand.no +kristiansund.no +krodsherad.no +krødsherad.no +kvalsund.no +rahkkeravju.no +ráhkkerávju.no +kvam.no +kvinesdal.no +kvinnherad.no +kviteseid.no +kvitsoy.no +kvitsøy.no +kvafjord.no +kvæfjord.no +giehtavuoatna.no +kvanangen.no +kvænangen.no +navuotna.no +návuotna.no +kafjord.no +kåfjord.no +gaivuotna.no +gáivuotna.no +larvik.no +lavangen.no +lavagis.no +loabat.no +loabát.no +lebesby.no +davvesiida.no +leikanger.no +leirfjord.no +leka.no +leksvik.no +lenvik.no +leangaviika.no +leaŋgaviika.no +lesja.no +levanger.no +lier.no +lierne.no +lillehammer.no +lillesand.no +lindesnes.no +lindas.no +lindås.no +lom.no +loppa.no +lahppi.no +láhppi.no +lund.no +lunner.no +luroy.no +lurøy.no +luster.no +lyngdal.no +lyngen.no +ivgu.no +lardal.no +lerdal.no +lærdal.no +lodingen.no +lødingen.no +lorenskog.no +lørenskog.no +loten.no +løten.no +malvik.no +masoy.no +måsøy.no +muosat.no +muosát.no +mandal.no +marker.no +marnardal.no +masfjorden.no +meland.no +meldal.no +melhus.no +meloy.no +meløy.no +meraker.no +meråker.no +moareke.no +moåreke.no +midsund.no +midtre-gauldal.no +modalen.no +modum.no +molde.no +moskenes.no +moss.no +mosvik.no +malselv.no +målselv.no +malatvuopmi.no +málatvuopmi.no +namdalseid.no +aejrie.no +namsos.no +namsskogan.no +naamesjevuemie.no +nååmesjevuemie.no +laakesvuemie.no +nannestad.no +narvik.no +narviika.no +naustdal.no +nedre-eiker.no +nes.akershus.no +nes.buskerud.no +nesna.no +nesodden.no +nesseby.no +unjarga.no +unjárga.no +nesset.no +nissedal.no +nittedal.no +nord-aurdal.no +nord-fron.no +nord-odal.no +norddal.no +nordkapp.no +davvenjarga.no +davvenjárga.no +nordre-land.no +nordreisa.no +raisa.no +ráisa.no +nore-og-uvdal.no +notodden.no +naroy.no +nærøy.no +notteroy.no +nøtterøy.no +odda.no +oksnes.no +øksnes.no +oppdal.no +oppegard.no +oppegård.no +orkdal.no +orland.no +ørland.no +orskog.no +ørskog.no +orsta.no +ørsta.no +os.hedmark.no +os.hordaland.no +osen.no +osteroy.no +osterøy.no +ostre-toten.no +østre-toten.no +overhalla.no +ovre-eiker.no +øvre-eiker.no +oyer.no +øyer.no +oygarden.no +øygarden.no +oystre-slidre.no +øystre-slidre.no +porsanger.no +porsangu.no +porsáŋgu.no +porsgrunn.no +radoy.no +radøy.no +rakkestad.no +rana.no +ruovat.no +randaberg.no +rauma.no +rendalen.no +rennebu.no +rennesoy.no +rennesøy.no +rindal.no +ringebu.no +ringerike.no +ringsaker.no +rissa.no +risor.no +risør.no +roan.no +rollag.no +rygge.no +ralingen.no +rælingen.no +rodoy.no +rødøy.no +romskog.no +rømskog.no +roros.no +røros.no +rost.no +røst.no +royken.no +røyken.no +royrvik.no +røyrvik.no +rade.no +råde.no +salangen.no +siellak.no +saltdal.no +salat.no +sálát.no +sálat.no +samnanger.no +sande.more-og-romsdal.no +sande.møre-og-romsdal.no +sande.vestfold.no +sandefjord.no +sandnes.no +sandoy.no +sandøy.no +sarpsborg.no +sauda.no +sauherad.no +sel.no +selbu.no +selje.no +seljord.no +sigdal.no +siljan.no +sirdal.no +skaun.no +skedsmo.no +ski.no +skien.no +skiptvet.no +skjervoy.no +skjervøy.no +skierva.no +skiervá.no +skjak.no +skjåk.no +skodje.no +skanland.no +skånland.no +skanit.no +skánit.no +smola.no +smøla.no +snillfjord.no +snasa.no +snåsa.no +snoasa.no +snaase.no +snåase.no +sogndal.no +sokndal.no +sola.no +solund.no +songdalen.no +sortland.no +spydeberg.no +stange.no +stavanger.no +steigen.no +steinkjer.no +stjordal.no +stjørdal.no +stokke.no +stor-elvdal.no +stord.no +stordal.no +storfjord.no +omasvuotna.no +strand.no +stranda.no +stryn.no +sula.no +suldal.no +sund.no +sunndal.no +surnadal.no +sveio.no +svelvik.no +sykkylven.no +sogne.no +søgne.no +somna.no +sømna.no +sondre-land.no +søndre-land.no +sor-aurdal.no +sør-aurdal.no +sor-fron.no +sør-fron.no +sor-odal.no +sør-odal.no +sor-varanger.no +sør-varanger.no +matta-varjjat.no +mátta-várjjat.no +sorfold.no +sørfold.no +sorreisa.no +sørreisa.no +sorum.no +sørum.no +tana.no +deatnu.no +time.no +tingvoll.no +tinn.no +tjeldsund.no +dielddanuorri.no +tjome.no +tjøme.no +tokke.no +tolga.no +torsken.no +tranoy.no +tranøy.no +tromso.no +tromsø.no +tromsa.no +romsa.no +trondheim.no +troandin.no +trysil.no +trana.no +træna.no +trogstad.no +trøgstad.no +tvedestrand.no +tydal.no +tynset.no +tysfjord.no +divtasvuodna.no +divttasvuotna.no +tysnes.no +tysvar.no +tysvær.no +tonsberg.no +tønsberg.no +ullensaker.no +ullensvang.no +ulvik.no +utsira.no +vadso.no +vadsø.no +cahcesuolo.no +čáhcesuolo.no +vaksdal.no +valle.no +vang.no +vanylven.no +vardo.no +vardø.no +varggat.no +várggát.no +vefsn.no +vaapste.no +vega.no +vegarshei.no +vegårshei.no +vennesla.no +verdal.no +verran.no +vestby.no +vestnes.no +vestre-slidre.no +vestre-toten.no +vestvagoy.no +vestvågøy.no +vevelstad.no +vik.no +vikna.no +vindafjord.no +volda.no +voss.no +varoy.no +værøy.no +vagan.no +vågan.no +voagat.no +vagsoy.no +vågsøy.no +vaga.no +vågå.no +valer.ostfold.no +våler.østfold.no +valer.hedmark.no +våler.hedmark.no + +// np : http://www.mos.com.np/register.html +*.np + +// nr : http://cenpac.net.nr/dns/index.html +// Confirmed by registry 2008-06-17 +nr +biz.nr +info.nr +gov.nr +edu.nr +org.nr +net.nr +com.nr + +// nu : http://en.wikipedia.org/wiki/.nu +nu + +// nz : http://en.wikipedia.org/wiki/.nz +*.nz + +// om : http://en.wikipedia.org/wiki/.om +*.om +!mediaphone.om +!nawrastelecom.om +!nawras.om +!omanmobile.om +!omanpost.om +!omantel.om +!rakpetroleum.om +!siemens.om +!songfest.om +!statecouncil.om + +// org : http://en.wikipedia.org/wiki/.org +org + +// pa : http://www.nic.pa/ +// Some additional second level "domains" resolve directly as hostnames, such as +// pannet.pa, so we add a rule for "pa". +pa +ac.pa +gob.pa +com.pa +org.pa +sld.pa +edu.pa +net.pa +ing.pa +abo.pa +med.pa +nom.pa + +// pe : https://www.nic.pe/InformeFinalComision.pdf +pe +edu.pe +gob.pe +nom.pe +mil.pe +org.pe +com.pe +net.pe + +// pf : http://www.gobin.info/domainname/formulaire-pf.pdf +pf +com.pf +org.pf +edu.pf + +// pg : http://en.wikipedia.org/wiki/.pg +*.pg + +// ph : http://www.domains.ph/FAQ2.asp +// Submitted by registry 2008-06-13 +ph +com.ph +net.ph +org.ph +gov.ph +edu.ph +ngo.ph +mil.ph +i.ph + +// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK +pk +com.pk +net.pk +edu.pk +org.pk +fam.pk +biz.pk +web.pk +gov.pk +gob.pk +gok.pk +gon.pk +gop.pk +gos.pk +info.pk + +// pl : http://www.dns.pl/english/ +pl +// NASK functional domains (nask.pl / dns.pl) : http://www.dns.pl/english/dns-funk.html +aid.pl +agro.pl +atm.pl +auto.pl +biz.pl +com.pl +edu.pl +gmina.pl +gsm.pl +info.pl +mail.pl +miasta.pl +media.pl +mil.pl +net.pl +nieruchomosci.pl +nom.pl +org.pl +pc.pl +powiat.pl +priv.pl +realestate.pl +rel.pl +sex.pl +shop.pl +sklep.pl +sos.pl +szkola.pl +targi.pl +tm.pl +tourism.pl +travel.pl +turystyka.pl +// ICM functional domains (icm.edu.pl) +6bone.pl +art.pl +mbone.pl +// Government domains (administred by ippt.gov.pl) +gov.pl +uw.gov.pl +um.gov.pl +ug.gov.pl +upow.gov.pl +starostwo.gov.pl +so.gov.pl +sr.gov.pl +po.gov.pl +pa.gov.pl +// other functional domains +ngo.pl +irc.pl +usenet.pl +// NASK geographical domains : http://www.dns.pl/english/dns-regiony.html +augustow.pl +babia-gora.pl +bedzin.pl +beskidy.pl +bialowieza.pl +bialystok.pl +bielawa.pl +bieszczady.pl +boleslawiec.pl +bydgoszcz.pl +bytom.pl +cieszyn.pl +czeladz.pl +czest.pl +dlugoleka.pl +elblag.pl +elk.pl +glogow.pl +gniezno.pl +gorlice.pl +grajewo.pl +ilawa.pl +jaworzno.pl +jelenia-gora.pl +jgora.pl +kalisz.pl +kazimierz-dolny.pl +karpacz.pl +kartuzy.pl +kaszuby.pl +katowice.pl +kepno.pl +ketrzyn.pl +klodzko.pl +kobierzyce.pl +kolobrzeg.pl +konin.pl +konskowola.pl +kutno.pl +lapy.pl +lebork.pl +legnica.pl +lezajsk.pl +limanowa.pl +lomza.pl +lowicz.pl +lubin.pl +lukow.pl +malbork.pl +malopolska.pl +mazowsze.pl +mazury.pl +mielec.pl +mielno.pl +mragowo.pl +naklo.pl +nowaruda.pl +nysa.pl +olawa.pl +olecko.pl +olkusz.pl +olsztyn.pl +opoczno.pl +opole.pl +ostroda.pl +ostroleka.pl +ostrowiec.pl +ostrowwlkp.pl +pila.pl +pisz.pl +podhale.pl +podlasie.pl +polkowice.pl +pomorze.pl +pomorskie.pl +prochowice.pl +pruszkow.pl +przeworsk.pl +pulawy.pl +radom.pl +rawa-maz.pl +rybnik.pl +rzeszow.pl +sanok.pl +sejny.pl +siedlce.pl +slask.pl +slupsk.pl +sosnowiec.pl +stalowa-wola.pl +skoczow.pl +starachowice.pl +stargard.pl +suwalki.pl +swidnica.pl +swiebodzin.pl +swinoujscie.pl +szczecin.pl +szczytno.pl +tarnobrzeg.pl +tgory.pl +turek.pl +tychy.pl +ustka.pl +walbrzych.pl +warmia.pl +warszawa.pl +waw.pl +wegrow.pl +wielun.pl +wlocl.pl +wloclawek.pl +wodzislaw.pl +wolomin.pl +wroclaw.pl +zachpomor.pl +zagan.pl +zarow.pl +zgora.pl +zgorzelec.pl +// TASK geographical domains (www.task.gda.pl/uslugi/dns) +gda.pl +gdansk.pl +gdynia.pl +med.pl +sopot.pl +// other geographical domains +gliwice.pl +krakow.pl +poznan.pl +wroc.pl +zakopane.pl + +// pm : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +pm + +// pn : http://www.government.pn/PnRegistry/policies.htm +pn +gov.pn +co.pn +org.pn +edu.pn +net.pn + +// pr : http://www.nic.pr/index.asp?f=1 +pr +com.pr +net.pr +org.pr +gov.pr +edu.pr +isla.pr +pro.pr +biz.pr +info.pr +name.pr +// these aren't mentioned on nic.pr, but on http://en.wikipedia.org/wiki/.pr +est.pr +prof.pr +ac.pr + +// pro : http://www.nic.pro/support_faq.htm +pro +aca.pro +bar.pro +cpa.pro +jur.pro +law.pro +med.pro +eng.pro + +// ps : http://en.wikipedia.org/wiki/.ps +// http://www.nic.ps/registration/policy.html#reg +ps +edu.ps +gov.ps +sec.ps +plo.ps +com.ps +org.ps +net.ps + +// pt : http://online.dns.pt/dns/start_dns +pt +net.pt +gov.pt +org.pt +edu.pt +int.pt +publ.pt +com.pt +nome.pt + +// pw : http://en.wikipedia.org/wiki/.pw +pw +co.pw +ne.pw +or.pw +ed.pw +go.pw +belau.pw + +// py : http://www.nic.py/faq_a.html#faq_b +*.py + +// qa : http://domains.qa/en/ +qa +com.qa +edu.qa +gov.qa +mil.qa +name.qa +net.qa +org.qa +sch.qa + +// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs +re +com.re +asso.re +nom.re + +// ro : http://www.rotld.ro/ +ro +com.ro +org.ro +tm.ro +nt.ro +nom.ro +info.ro +rec.ro +arts.ro +firm.ro +store.ro +www.ro + +// rs : http://en.wikipedia.org/wiki/.rs +rs +co.rs +org.rs +edu.rs +ac.rs +gov.rs +in.rs + +// ru : http://www.cctld.ru/ru/docs/aktiv_8.php +// Industry domains +ru +ac.ru +com.ru +edu.ru +int.ru +net.ru +org.ru +pp.ru +// Geographical domains +adygeya.ru +altai.ru +amur.ru +arkhangelsk.ru +astrakhan.ru +bashkiria.ru +belgorod.ru +bir.ru +bryansk.ru +buryatia.ru +cbg.ru +chel.ru +chelyabinsk.ru +chita.ru +chukotka.ru +chuvashia.ru +dagestan.ru +dudinka.ru +e-burg.ru +grozny.ru +irkutsk.ru +ivanovo.ru +izhevsk.ru +jar.ru +joshkar-ola.ru +kalmykia.ru +kaluga.ru +kamchatka.ru +karelia.ru +kazan.ru +kchr.ru +kemerovo.ru +khabarovsk.ru +khakassia.ru +khv.ru +kirov.ru +koenig.ru +komi.ru +kostroma.ru +krasnoyarsk.ru +kuban.ru +kurgan.ru +kursk.ru +lipetsk.ru +magadan.ru +mari.ru +mari-el.ru +marine.ru +mordovia.ru +mosreg.ru +msk.ru +murmansk.ru +nalchik.ru +nnov.ru +nov.ru +novosibirsk.ru +nsk.ru +omsk.ru +orenburg.ru +oryol.ru +palana.ru +penza.ru +perm.ru +pskov.ru +ptz.ru +rnd.ru +ryazan.ru +sakhalin.ru +samara.ru +saratov.ru +simbirsk.ru +smolensk.ru +spb.ru +stavropol.ru +stv.ru +surgut.ru +tambov.ru +tatarstan.ru +tom.ru +tomsk.ru +tsaritsyn.ru +tsk.ru +tula.ru +tuva.ru +tver.ru +tyumen.ru +udm.ru +udmurtia.ru +ulan-ude.ru +vladikavkaz.ru +vladimir.ru +vladivostok.ru +volgograd.ru +vologda.ru +voronezh.ru +vrn.ru +vyatka.ru +yakutia.ru +yamal.ru +yaroslavl.ru +yekaterinburg.ru +yuzhno-sakhalinsk.ru +// More geographical domains +amursk.ru +baikal.ru +cmw.ru +fareast.ru +jamal.ru +kms.ru +k-uralsk.ru +kustanai.ru +kuzbass.ru +magnitka.ru +mytis.ru +nakhodka.ru +nkz.ru +norilsk.ru +oskol.ru +pyatigorsk.ru +rubtsovsk.ru +snz.ru +syzran.ru +vdonsk.ru +zgrad.ru +// State domains +gov.ru +mil.ru +// Technical domains +test.ru + +// rw : http://www.nic.rw/cgi-bin/policy.pl +rw +gov.rw +net.rw +edu.rw +ac.rw +com.rw +co.rw +int.rw +mil.rw +gouv.rw + +// sa : http://www.nic.net.sa/ +sa +com.sa +net.sa +org.sa +gov.sa +med.sa +pub.sa +edu.sa +sch.sa + +// sb : http://www.sbnic.net.sb/ +// Submitted by registry 2008-06-08 +sb +com.sb +edu.sb +gov.sb +net.sb +org.sb + +// sc : http://www.nic.sc/ +sc +com.sc +gov.sc +net.sc +org.sc +edu.sc + +// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm +// Submitted by registry 2008-06-17 +sd +com.sd +net.sd +org.sd +edu.sd +med.sd +gov.sd +info.sd + +// se : http://en.wikipedia.org/wiki/.se +// Submitted by registry 2008-06-24 +se +a.se +ac.se +b.se +bd.se +brand.se +c.se +d.se +e.se +f.se +fh.se +fhsk.se +fhv.se +g.se +h.se +i.se +k.se +komforb.se +kommunalforbund.se +komvux.se +l.se +lanbib.se +m.se +n.se +naturbruksgymn.se +o.se +org.se +p.se +parti.se +pp.se +press.se +r.se +s.se +sshn.se +t.se +tm.se +u.se +w.se +x.se +y.se +z.se + +// sg : http://www.nic.net.sg/sub_policies_agreement/2ld.html +sg +com.sg +net.sg +org.sg +gov.sg +edu.sg +per.sg + +// sh : http://www.nic.sh/rules.html +// list of 2nd level domains ? +sh + +// si : http://en.wikipedia.org/wiki/.si +si + +// sj : No registrations at this time. +// Submitted by registry 2008-06-16 + +// sk : http://en.wikipedia.org/wiki/.sk +// list of 2nd level domains ? +sk + +// sl : http://www.nic.sl +// Submitted by registry 2008-06-12 +sl +com.sl +net.sl +edu.sl +gov.sl +org.sl + +// sm : http://en.wikipedia.org/wiki/.sm +sm + +// sn : http://en.wikipedia.org/wiki/.sn +sn +art.sn +com.sn +edu.sn +gouv.sn +org.sn +perso.sn +univ.sn + +// so : http://www.soregistry.com/ +so +com.so +net.so +org.so + +// sr : http://en.wikipedia.org/wiki/.sr +sr + +// st : http://www.nic.st/html/policyrules/ +st +co.st +com.st +consulado.st +edu.st +embaixada.st +gov.st +mil.st +net.st +org.st +principe.st +saotome.st +store.st + +// su : http://en.wikipedia.org/wiki/.su +su + +// sv : http://www.svnet.org.sv/svpolicy.html +*.sv + +// sy : http://en.wikipedia.org/wiki/.sy +// see also: http://www.gobin.info/domainname/sy.doc +sy +edu.sy +gov.sy +net.sy +mil.sy +com.sy +org.sy + +// sz : http://en.wikipedia.org/wiki/.sz +// http://www.sispa.org.sz/ +sz +co.sz +ac.sz +org.sz + +// tc : http://en.wikipedia.org/wiki/.tc +tc + +// td : http://en.wikipedia.org/wiki/.td +td + +// tel: http://en.wikipedia.org/wiki/.tel +// http://www.telnic.org/ +tel + +// tf : http://en.wikipedia.org/wiki/.tf +tf + +// tg : http://en.wikipedia.org/wiki/.tg +// http://www.nic.tg/nictg/index.php implies no reserved 2nd-level domains, +// although this contradicts wikipedia. +tg + +// th : http://en.wikipedia.org/wiki/.th +// Submitted by registry 2008-06-17 +th +ac.th +co.th +go.th +in.th +mi.th +net.th +or.th + +// tj : http://www.nic.tj/policy.htm +tj +ac.tj +biz.tj +co.tj +com.tj +edu.tj +go.tj +gov.tj +int.tj +mil.tj +name.tj +net.tj +nic.tj +org.tj +test.tj +web.tj + +// tk : http://en.wikipedia.org/wiki/.tk +tk + +// tl : http://en.wikipedia.org/wiki/.tl +tl +gov.tl + +// tm : http://www.nic.tm/rules.html +// list of 2nd level tlds ? +tm + +// tn : http://en.wikipedia.org/wiki/.tn +// http://whois.ati.tn/ +tn +com.tn +ens.tn +fin.tn +gov.tn +ind.tn +intl.tn +nat.tn +net.tn +org.tn +info.tn +perso.tn +tourism.tn +edunet.tn +rnrt.tn +rns.tn +rnu.tn +mincom.tn +agrinet.tn +defense.tn +turen.tn + +// to : http://en.wikipedia.org/wiki/.to +// Submitted by registry 2008-06-17 +to +com.to +gov.to +net.to +org.to +edu.to +mil.to + +// tr : http://en.wikipedia.org/wiki/.tr +*.tr +!nic.tr +// Used by government in the TRNC +// http://en.wikipedia.org/wiki/.nc.tr +gov.nc.tr + +// travel : http://en.wikipedia.org/wiki/.travel +travel + +// tt : http://www.nic.tt/ +tt +co.tt +com.tt +org.tt +net.tt +biz.tt +info.tt +pro.tt +int.tt +coop.tt +jobs.tt +mobi.tt +travel.tt +museum.tt +aero.tt +name.tt +gov.tt +edu.tt + +// tv : http://en.wikipedia.org/wiki/.tv +// Not listing any 2LDs as reserved since none seem to exist in practice, +// Wikipedia notwithstanding. +tv + +// tw : http://en.wikipedia.org/wiki/.tw +tw +edu.tw +gov.tw +mil.tw +com.tw +net.tw +org.tw +idv.tw +game.tw +ebiz.tw +club.tw +網路.tw +組織.tw +商業.tw + +// tz : http://en.wikipedia.org/wiki/.tz +// Submitted by registry 2008-06-17 +// Updated from http://www.tznic.or.tz/index.php/domains.html 2010-10-25 +ac.tz +co.tz +go.tz +mil.tz +ne.tz +or.tz +sc.tz + +// ua : http://www.nic.net.ua/ +ua +com.ua +edu.ua +gov.ua +in.ua +net.ua +org.ua +// ua geo-names +cherkassy.ua +chernigov.ua +chernovtsy.ua +ck.ua +cn.ua +crimea.ua +cv.ua +dn.ua +dnepropetrovsk.ua +donetsk.ua +dp.ua +if.ua +ivano-frankivsk.ua +kh.ua +kharkov.ua +kherson.ua +khmelnitskiy.ua +kiev.ua +kirovograd.ua +km.ua +kr.ua +ks.ua +kv.ua +lg.ua +lugansk.ua +lutsk.ua +lviv.ua +mk.ua +nikolaev.ua +od.ua +odessa.ua +pl.ua +poltava.ua +rovno.ua +rv.ua +sebastopol.ua +sumy.ua +te.ua +ternopil.ua +uzhgorod.ua +vinnica.ua +vn.ua +zaporizhzhe.ua +zp.ua +zhitomir.ua +zt.ua + +// Private registries in .ua +co.ua +pp.ua + +// ug : http://www.registry.co.ug/ +ug +co.ug +ac.ug +sc.ug +go.ug +ne.ug +or.ug + +// uk : http://en.wikipedia.org/wiki/.uk +*.uk +*.sch.uk +!bl.uk +!british-library.uk +!icnet.uk +!jet.uk +!mod.uk +!nel.uk +!nhs.uk +!nic.uk +!nls.uk +!national-library-scotland.uk +!parliament.uk +!police.uk + +// us : http://en.wikipedia.org/wiki/.us +us +dni.us +fed.us +isa.us +kids.us +nsn.us +// us geographic names +ak.us +al.us +ar.us +as.us +az.us +ca.us +co.us +ct.us +dc.us +de.us +fl.us +ga.us +gu.us +hi.us +ia.us +id.us +il.us +in.us +ks.us +ky.us +la.us +ma.us +md.us +me.us +mi.us +mn.us +mo.us +ms.us +mt.us +nc.us +nd.us +ne.us +nh.us +nj.us +nm.us +nv.us +ny.us +oh.us +ok.us +or.us +pa.us +pr.us +ri.us +sc.us +sd.us +tn.us +tx.us +ut.us +vi.us +vt.us +va.us +wa.us +wi.us +wv.us +wy.us +// The registrar notes several more specific domains available in each state, +// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat +// haphazard; in some states these domains resolve as addresses, while in others +// only subdomains are available, or even nothing at all. We include the +// most common ones where it's clear that different sites are different +// entities. +k12.ak.us +k12.al.us +k12.ar.us +k12.as.us +k12.az.us +k12.ca.us +k12.co.us +k12.ct.us +k12.dc.us +k12.de.us +k12.fl.us +k12.ga.us +k12.gu.us +// k12.hi.us Hawaii has a state-wide DOE login: bug 614565 +k12.ia.us +k12.id.us +k12.il.us +k12.in.us +k12.ks.us +k12.ky.us +k12.la.us +k12.ma.us +k12.md.us +k12.me.us +k12.mi.us +k12.mn.us +k12.mo.us +k12.ms.us +k12.mt.us +k12.nc.us +k12.nd.us +k12.ne.us +k12.nh.us +k12.nj.us +k12.nm.us +k12.nv.us +k12.ny.us +k12.oh.us +k12.ok.us +k12.or.us +k12.pa.us +k12.pr.us +k12.ri.us +k12.sc.us +k12.sd.us +k12.tn.us +k12.tx.us +k12.ut.us +k12.vi.us +k12.vt.us +k12.va.us +k12.wa.us +k12.wi.us +k12.wv.us +k12.wy.us + +cc.ak.us +cc.al.us +cc.ar.us +cc.as.us +cc.az.us +cc.ca.us +cc.co.us +cc.ct.us +cc.dc.us +cc.de.us +cc.fl.us +cc.ga.us +cc.gu.us +cc.hi.us +cc.ia.us +cc.id.us +cc.il.us +cc.in.us +cc.ks.us +cc.ky.us +cc.la.us +cc.ma.us +cc.md.us +cc.me.us +cc.mi.us +cc.mn.us +cc.mo.us +cc.ms.us +cc.mt.us +cc.nc.us +cc.nd.us +cc.ne.us +cc.nh.us +cc.nj.us +cc.nm.us +cc.nv.us +cc.ny.us +cc.oh.us +cc.ok.us +cc.or.us +cc.pa.us +cc.pr.us +cc.ri.us +cc.sc.us +cc.sd.us +cc.tn.us +cc.tx.us +cc.ut.us +cc.vi.us +cc.vt.us +cc.va.us +cc.wa.us +cc.wi.us +cc.wv.us +cc.wy.us + +lib.ak.us +lib.al.us +lib.ar.us +lib.as.us +lib.az.us +lib.ca.us +lib.co.us +lib.ct.us +lib.dc.us +lib.de.us +lib.fl.us +lib.ga.us +lib.gu.us +lib.hi.us +lib.ia.us +lib.id.us +lib.il.us +lib.in.us +lib.ks.us +lib.ky.us +lib.la.us +lib.ma.us +lib.md.us +lib.me.us +lib.mi.us +lib.mn.us +lib.mo.us +lib.ms.us +lib.mt.us +lib.nc.us +lib.nd.us +lib.ne.us +lib.nh.us +lib.nj.us +lib.nm.us +lib.nv.us +lib.ny.us +lib.oh.us +lib.ok.us +lib.or.us +lib.pa.us +lib.pr.us +lib.ri.us +lib.sc.us +lib.sd.us +lib.tn.us +lib.tx.us +lib.ut.us +lib.vi.us +lib.vt.us +lib.va.us +lib.wa.us +lib.wi.us +lib.wv.us +lib.wy.us + +// k12.ma.us contains school districts in Massachusetts. The 4LDs are +// managed indepedently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated dorectly to the +// 5LD operators. +pvt.k12.ma.us +chtr.k12.ma.us +paroch.k12.ma.us + +// uy : http://www.antel.com.uy/ +*.uy + +// uz : http://www.reg.uz/registerr.html +// are there other 2nd level tlds ? +uz +com.uz +co.uz + +// va : http://en.wikipedia.org/wiki/.va +va + +// vc : http://en.wikipedia.org/wiki/.vc +// Submitted by registry 2008-06-13 +vc +com.vc +net.vc +org.vc +gov.vc +mil.vc +edu.vc + +// ve : http://registro.nic.ve/nicve/registro/index.html +*.ve + +// vg : http://en.wikipedia.org/wiki/.vg +vg + +// vi : http://www.nic.vi/newdomainform.htm +// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other +// TLDs are "reserved", such as edu.vi and gov.vi, but doesn't actually say they +// are available for registration (which they do not seem to be). +vi +co.vi +com.vi +k12.vi +net.vi +org.vi + +// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp +vn +com.vn +net.vn +org.vn +edu.vn +gov.vn +int.vn +ac.vn +biz.vn +info.vn +name.vn +pro.vn +health.vn + +// vu : http://en.wikipedia.org/wiki/.vu +// list of 2nd level tlds ? +vu + +// wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +wf + +// ws : http://en.wikipedia.org/wiki/.ws +// http://samoanic.ws/index.dhtml +ws +com.ws +net.ws +org.ws +gov.ws +edu.ws + +// yt : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +yt + +// IDN ccTLDs +// Please sort by ISO 3166 ccTLD, then punicode string +// when submitting patches and follow this format: +// ("" ) : +// [optional sponsoring org] +// + +// xn--mgbaam7a8h ("Emerat" Arabic) : AE +//http://nic.ae/english/arabicdomain/rules.jsp +امارات + +// xn--54b7fta0cc ("Bangla" Bangla) : BD +বাংলা + +// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhonggou>) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中国 + +// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhonggou>) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中國 + +// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ +الجزائر + +// xn--wgbh1c ("Egypt" Arabic .masr) : EG +// http://www.dotmasr.eg/ +مصر + +// xn--node ("ge" Georgian (Mkhedruli)) : GE +გე + +// xn--j6w193g ("Hong Kong" Chinese-Han) : HK +// https://www2.hkirc.hk/register/rules.jsp +香港 + +// xn--h2brj9c ("Bharat" Devanagari) : IN +// India +भारत + +// xn--mgbbh1a71e ("Bharat" Arabic) : IN +// India +بھارت + +// xn--fpcrj9c3d ("Bharat" Telugu) : IN +// India +భారత్ + +// xn--gecrj9c ("Bharat" Gujarati) : IN +// India +ભારત + +// xn--s9brj9c ("Bharat" Gurmukhi) : IN +// India +ਭਾਰਤ + +// xn--45brj9c ("Bharat" Bengali) : IN +// India +ভারত + +// xn--xkc2dl3a5ee0h ("India" Tamil) : IN +// India +இந்தியா + +// xn--mgba3a4f16a ("Iran" Persian) : IR +ایران + +// xn--mgba3a4fra ("Iran" Arabic) : IR +ايران + +//xn--mgbayh7gpa ("al-Ordon" Arabic) JO +//National Information Technology Center (NITC) +//Royal Scientific Society, Al-Jubeiha +الاردن + +// xn--3e0b707e ("Republic of Korea" Hangul) : KR +한국 + +// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK +// http://nic.lk +ලංකා + +// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK +// http://nic.lk +இலங்கை + +// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA +المغرب + +// xn--mgb9awbf ("Oman" Arabic) : OM +عمان + +// xn--ygbi2ammx ("Falasteen" Arabic) : PS +// The Palestinian National Internet Naming Authority (PNINA) +// http://www.pnina.ps +فلسطين + +// xn--90a3ac ("srb" Cyrillic) : RS +срб + +// xn--p1ai ("rf" Russian-Cyrillic) : RU +// http://www.cctld.ru/en/docs/rulesrf.php +рф + +// xn--wgbl6a ("Qatar" Arabic) : QA +// http://www.ict.gov.qa/ +قطر + +// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA +// http://www.nic.net.sa/ +السعودية + +// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA +السعودیة + +// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA +السعودیۃ + +// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA +السعوديه + +// xn--ogbpf8fl ("Syria" Arabic) : SY +سورية + +// xn--mgbtf8fl ("Syria" Arabic) variant : SY +سوريا + +// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG +新加坡 + +// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG +சிங்கப்பூர் + +// xn--o3cw4h ("Thai" Thai) : TH +// http://www.thnic.co.th +ไทย + +// xn--pgbs0dh ("Tunis") : TN +// http://nic.tn +تونس + +// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台灣 + +// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台湾 + +// xn--nnx388a ("Taiwan") variant : TW +臺灣 + +// xn--j1amh ("ukr" Cyrillic) : UA +укр + +// xn--mgb2ddes ("AlYemen" Arabic) : YE +اليمن + +// xxx : http://icmregistry.com +xxx + +// ye : http://www.y.net.ye/services/domain_name.htm +*.ye + +// za : http://www.zadna.org.za/slds.html +*.za + +// zm : http://en.wikipedia.org/wiki/.zm +*.zm + +// zw : http://en.wikipedia.org/wiki/.zw +*.zw + +// ===END ICANN DOMAINS=== +// ===BEGIN PRIVATE DOMAINS=== + +// info.at : http://www.info.at/ +biz.at +info.at + +// priv.at : http://www.nic.priv.at/ +// Submitted by registry 2008-06-09 +priv.at + +// co.ca : http://registry.co.ca +co.ca + +// CentralNic : http://www.centralnic.com/names/domains +// Confirmed by registry 2008-06-09 +ar.com +br.com +cn.com +de.com +eu.com +gb.com +gr.com +hu.com +jpn.com +kr.com +no.com +qc.com +ru.com +sa.com +se.com +uk.com +us.com +uy.com +za.com +gb.net +jp.net +se.net +uk.net +ae.org +us.org +com.de + +// Opera Software, A.S.A. +// Requested by Yngve Pettersen 2009-11-26 +operaunite.com + +// Google, Inc. +// Requested by Eduardo Vela 2010-09-06 +appspot.com + +// iki.fi : Submitted by Hannu Aronsson 2009-11-05 +iki.fi + +// c.la : http://www.c.la/ +c.la + +// ZaNiC : http://www.za.net/ +// Confirmed by registry 2009-10-03 +za.net +za.org + +// CoDNS B.V. +// Added 2010-05-23. +co.nl +co.no + +// Mainseek Sp. z o.o. : http://www.co.pl/ +co.pl + +// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ +dyndns-at-home.com +dyndns-at-work.com +dyndns-blog.com +dyndns-free.com +dyndns-home.com +dyndns-ip.com +dyndns-mail.com +dyndns-office.com +dyndns-pics.com +dyndns-remote.com +dyndns-server.com +dyndns-web.com +dyndns-wiki.com +dyndns-work.com +dyndns.biz +dyndns.info +dyndns.org +dyndns.tv +at-band-camp.net +ath.cx +barrel-of-knowledge.info +barrell-of-knowledge.info +better-than.tv +blogdns.com +blogdns.net +blogdns.org +blogsite.org +boldlygoingnowhere.org +broke-it.net +buyshouses.net +cechire.com +dnsalias.com +dnsalias.net +dnsalias.org +dnsdojo.com +dnsdojo.net +dnsdojo.org +does-it.net +doesntexist.com +doesntexist.org +dontexist.com +dontexist.net +dontexist.org +doomdns.com +doomdns.org +dvrdns.org +dyn-o-saur.com +dynalias.com +dynalias.net +dynalias.org +dynathome.net +dyndns.ws +endofinternet.net +endofinternet.org +endoftheinternet.org +est-a-la-maison.com +est-a-la-masion.com +est-le-patron.com +est-mon-blogueur.com +for-better.biz +for-more.biz +for-our.info +for-some.biz +for-the.biz +forgot.her.name +forgot.his.name +from-ak.com +from-al.com +from-ar.com +from-az.net +from-ca.com +from-co.net +from-ct.com +from-dc.com +from-de.com +from-fl.com +from-ga.com +from-hi.com +from-ia.com +from-id.com +from-il.com +from-in.com +from-ks.com +from-ky.com +from-la.net +from-ma.com +from-md.com +from-me.org +from-mi.com +from-mn.com +from-mo.com +from-ms.com +from-mt.com +from-nc.com +from-nd.com +from-ne.com +from-nh.com +from-nj.com +from-nm.com +from-nv.com +from-ny.net +from-oh.com +from-ok.com +from-or.com +from-pa.com +from-pr.com +from-ri.com +from-sc.com +from-sd.com +from-tn.com +from-tx.com +from-ut.com +from-va.com +from-vt.com +from-wa.com +from-wi.com +from-wv.com +from-wy.com +ftpaccess.cc +fuettertdasnetz.de +game-host.org +game-server.cc +getmyip.com +gets-it.net +go.dyndns.org +gotdns.com +gotdns.org +groks-the.info +groks-this.info +ham-radio-op.net +here-for-more.info +hobby-site.com +hobby-site.org +home.dyndns.org +homedns.org +homeftp.net +homeftp.org +homeip.net +homelinux.com +homelinux.net +homelinux.org +homeunix.com +homeunix.net +homeunix.org +iamallama.com +in-the-band.net +is-a-anarchist.com +is-a-blogger.com +is-a-bookkeeper.com +is-a-bruinsfan.org +is-a-bulls-fan.com +is-a-candidate.org +is-a-caterer.com +is-a-celticsfan.org +is-a-chef.com +is-a-chef.net +is-a-chef.org +is-a-conservative.com +is-a-cpa.com +is-a-cubicle-slave.com +is-a-democrat.com +is-a-designer.com +is-a-doctor.com +is-a-financialadvisor.com +is-a-geek.com +is-a-geek.net +is-a-geek.org +is-a-green.com +is-a-guru.com +is-a-hard-worker.com +is-a-hunter.com +is-a-knight.org +is-a-landscaper.com +is-a-lawyer.com +is-a-liberal.com +is-a-libertarian.com +is-a-linux-user.org +is-a-llama.com +is-a-musician.com +is-a-nascarfan.com +is-a-nurse.com +is-a-painter.com +is-a-patsfan.org +is-a-personaltrainer.com +is-a-photographer.com +is-a-player.com +is-a-republican.com +is-a-rockstar.com +is-a-socialist.com +is-a-soxfan.org +is-a-student.com +is-a-teacher.com +is-a-techie.com +is-a-therapist.com +is-an-accountant.com +is-an-actor.com +is-an-actress.com +is-an-anarchist.com +is-an-artist.com +is-an-engineer.com +is-an-entertainer.com +is-by.us +is-certified.com +is-found.org +is-gone.com +is-into-anime.com +is-into-cars.com +is-into-cartoons.com +is-into-games.com +is-leet.com +is-lost.org +is-not-certified.com +is-saved.org +is-slick.com +is-uberleet.com +is-very-bad.org +is-very-evil.org +is-very-good.org +is-very-nice.org +is-very-sweet.org +is-with-theband.com +isa-geek.com +isa-geek.net +isa-geek.org +isa-hockeynut.com +issmarterthanyou.com +isteingeek.de +istmein.de +kicks-ass.net +kicks-ass.org +knowsitall.info +land-4-sale.us +lebtimnetz.de +leitungsen.de +likes-pie.com +likescandy.com +merseine.nu +mine.nu +misconfused.org +mypets.ws +myphotos.cc +neat-url.com +office-on-the.net +on-the-web.tv +podzone.net +podzone.org +readmyblog.org +saves-the-whales.com +scrapper-site.net +scrapping.cc +selfip.biz +selfip.com +selfip.info +selfip.net +selfip.org +sells-for-less.com +sells-for-u.com +sells-it.net +sellsyourhome.org +servebbs.com +servebbs.net +servebbs.org +serveftp.net +serveftp.org +servegame.org +shacknet.nu +simple-url.com +space-to-rent.com +stuff-4-sale.org +stuff-4-sale.us +teaches-yoga.com +thruhere.net +traeumtgerade.de +webhop.biz +webhop.info +webhop.net +webhop.org +worse-than.tv +writesthisblog.com + +// ===END PRIVATE DOMAINS=== diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js new file mode 100644 index 00000000..3cce815e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js @@ -0,0 +1,1340 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +var vows = require('vows'); +var assert = require('assert'); +var async = require('async'); + +// NOTE use require("tough-cookie") in your own code: +var tough = require('./lib/cookie'); +var Cookie = tough.Cookie; +var CookieJar = tough.CookieJar; + + +function dateVows(table) { + var theVows = { }; + var keys = Object.keys(table).forEach(function(date) { + var expect = table[date]; + theVows[date] = function() { + var got = tough.parseDate(date) ? 'valid' : 'invalid'; + assert.equal(got, expect ? 'valid' : 'invalid'); + }; + }); + return { "date parsing": theVows }; +} + +function matchVows(func,table) { + var theVows = {}; + table.forEach(function(item) { + var str = item[0]; + var dom = item[1]; + var expect = item[2]; + var label = str+(expect?" matches ":" doesn't match ")+dom; + theVows[label] = function() { + assert.equal(func(str,dom),expect); + }; + }); + return theVows; +} + +function defaultPathVows(table) { + var theVows = {}; + table.forEach(function(item) { + var str = item[0]; + var expect = item[1]; + var label = str+" gives "+expect; + theVows[label] = function() { + assert.equal(tough.defaultPath(str),expect); + }; + }); + return theVows; +} + +var atNow = Date.now(); +function at(offset) { return {now: new Date(atNow+offset)} } + +vows.describe('Cookie Jar') +.addBatch({ + "all defined": function() { + assert.ok(Cookie); + assert.ok(CookieJar); + }, +}) +.addBatch( + dateVows({ + "Wed, 09 Jun 2021 10:18:14 GMT": true, + "Wed, 09 Jun 2021 22:18:14 GMT": true, + "Tue, 18 Oct 2011 07:42:42.123 GMT": true, + "18 Oct 2011 07:42:42 GMT": true, + "8 Oct 2011 7:42:42 GMT": true, + "8 Oct 2011 7:2:42 GMT": false, + "Oct 18 2011 07:42:42 GMT": true, + "Tue Oct 18 2011 07:05:03 GMT+0000 (GMT)": true, + "09 Jun 2021 10:18:14 GMT": true, + "99 Jix 3038 48:86:72 ZMT": false, + '01 Jan 1970 00:00:00 GMT': true, + '01 Jan 1600 00:00:00 GMT': false, // before 1601 + '01 Jan 1601 00:00:00 GMT': true, + '10 Feb 81 13:00:00 GMT': true, // implicit year + 'Thu, 01 Jan 1970 00:00:010 GMT': true, // strange time, non-strict OK + 'Thu, 17-Apr-2014 02:12:29 GMT': true, // dashes + 'Thu, 17-Apr-2014 02:12:29 UTC': true, // dashes and UTC + }) +) +.addBatch({ + "strict date parse of Thu, 01 Jan 1970 00:00:010 GMT": { + topic: function() { + return tough.parseDate('Thu, 01 Jan 1970 00:00:010 GMT', true) ? true : false; + }, + "invalid": function(date) { + assert.equal(date,false); + }, + } +}) +.addBatch({ + "formatting": { + "a simple cookie": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b'); + }, + }, + "a cookie with spaces in the value": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'beta gamma'; + return c; + }, + "doesn't validate": function(c) { + assert.ok(!c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a="beta gamma"'); + }, + }, + "with an empty value and HttpOnly": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.httpOnly = true; + return c; + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=; HttpOnly'); + } + }, + "with an expiry": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT'); + }, + "to short string": function(c) { + assert.equal(c.cookieString(), 'a=b'); + }, + }, + "with a max-age": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + c.maxAge = 12345; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); // mabe this one *shouldn't*? + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Max-Age=12345'); + }, + }, + "with a bunch of things": function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + c.maxAge = 12345; + c.domain = 'example.com'; + c.path = '/foo'; + c.secure = true; + c.httpOnly = true; + c.extensions = ['MyExtension']; + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Max-Age=12345; Domain=example.com; Path=/foo; Secure; HttpOnly; MyExtension'); + }, + "a host-only cookie": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.hostOnly = true; + c.domain = 'shouldnt-stringify.example.com'; + c.path = '/should-stringify'; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Path=/should-stringify'); + }, + }, + "minutes are '10'": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.expires = new Date(1284113410000); + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + var str = c.toString(); + assert.notEqual(str, 'a=b; Expires=Fri, 010 Sep 2010 010:010:010 GMT'); + assert.equal(str, 'a=b; Expires=Fri, 10 Sep 2010 10:10:10 GMT'); + }, + } + } +}) +.addBatch({ + "TTL with max-age": function() { + var c = new Cookie(); + c.maxAge = 123; + assert.equal(c.TTL(), 123000); + assert.equal(c.expiryTime(new Date(9000000)), 9123000); + }, + "TTL with zero max-age": function() { + var c = new Cookie(); + c.key = 'a'; c.value = 'b'; + c.maxAge = 0; // should be treated as "earliest representable" + assert.equal(c.TTL(), 0); + assert.equal(c.expiryTime(new Date(9000000)), -Infinity); + assert.ok(!c.validate()); // not valid, really: non-zero-digit *DIGIT + }, + "TTL with negative max-age": function() { + var c = new Cookie(); + c.key = 'a'; c.value = 'b'; + c.maxAge = -1; // should be treated as "earliest representable" + assert.equal(c.TTL(), 0); + assert.equal(c.expiryTime(new Date(9000000)), -Infinity); + assert.ok(!c.validate()); // not valid, really: non-zero-digit *DIGIT + }, + "TTL with max-age and expires": function() { + var c = new Cookie(); + c.maxAge = 123; + c.expires = new Date(Date.now()+9000); + assert.equal(c.TTL(), 123000); + assert.ok(c.isPersistent()); + }, + "TTL with expires": function() { + var c = new Cookie(); + var now = Date.now(); + c.expires = new Date(now+9000); + assert.equal(c.TTL(now), 9000); + assert.equal(c.expiryTime(), c.expires.getTime()); + }, + "TTL with old expires": function() { + var c = new Cookie(); + c.setExpires('17 Oct 2010 00:00:00 GMT'); + assert.ok(c.TTL() < 0); + assert.ok(c.isPersistent()); + }, + "default TTL": { + topic: function() { return new Cookie() }, + "is Infinite-future": function(c) { assert.equal(c.TTL(), Infinity) }, + "is a 'session' cookie": function(c) { assert.ok(!c.isPersistent()) }, + }, +}).addBatch({ + "Parsing": { + "simple": { + topic: function() { + return Cookie.parse('a=bcd',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'a') }, + "value": function(c) { assert.equal(c.value, 'bcd') }, + "no path": function(c) { assert.equal(c.path, null) }, + "no domain": function(c) { assert.equal(c.domain, null) }, + "no extensions": function(c) { assert.ok(!c.extensions) }, + }, + "with expiry": { + topic: function() { + return Cookie.parse('a=bcd; Expires=Tue, 18 Oct 2011 07:05:03 GMT',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'a') }, + "value": function(c) { assert.equal(c.value, 'bcd') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + }, + "with expiry and path": { + topic: function() { + return Cookie.parse('abc="xyzzy!"; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Path=/aBc',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'abc') }, + "value": function(c) { assert.equal(c.value, 'xyzzy!') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + "has path": function(c) { assert.equal(c.path, '/aBc'); }, + "no httponly or secure": function(c) { + assert.ok(!c.httpOnly); + assert.ok(!c.secure); + }, + }, + "with everything": { + topic: function() { + return Cookie.parse('abc="xyzzy!"; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Path=/aBc; Domain=example.com; Secure; HTTPOnly; Max-Age=1234; Foo=Bar; Baz', true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'abc') }, + "value": function(c) { assert.equal(c.value, 'xyzzy!') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + "has path": function(c) { assert.equal(c.path, '/aBc'); }, + "has domain": function(c) { assert.equal(c.domain, 'example.com'); }, + "has httponly": function(c) { assert.equal(c.httpOnly, true); }, + "has secure": function(c) { assert.equal(c.secure, true); }, + "has max-age": function(c) { assert.equal(c.maxAge, 1234); }, + "has extensions": function(c) { + assert.ok(c.extensions); + assert.equal(c.extensions[0], 'Foo=Bar'); + assert.equal(c.extensions[1], 'Baz'); + }, + }, + "invalid expires": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Expires=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Expires=xyzzy"); + assert.ok(c); + assert.equal(c.expires, Infinity); + }, + }, + "zero max-age": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Max-Age=0", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Max-Age=0"); + assert.ok(c); + assert.equal(c.maxAge, 0); + }, + }, + "negative max-age": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Max-Age=-1", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Max-Age=-1"); + assert.ok(c); + assert.equal(c.maxAge, -1); + }, + }, + "empty domain": { + "strict": function() { assert.ok(!Cookie.parse("a=b; domain=", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; domain="); + assert.ok(c); + assert.equal(c.domain, null); + }, + }, + "dot domain": { + "strict": function() { assert.ok(!Cookie.parse("a=b; domain=.", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; domain=."); + assert.ok(c); + assert.equal(c.domain, null); + }, + }, + "uppercase domain": { + "strict lowercases": function() { + var c = Cookie.parse("a=b; domain=EXAMPLE.COM"); + assert.ok(c); + assert.equal(c.domain, 'example.com'); + }, + "non-strict lowercases": function() { + var c = Cookie.parse("a=b; domain=EXAMPLE.COM"); + assert.ok(c); + assert.equal(c.domain, 'example.com'); + }, + }, + "trailing dot in domain": { + topic: function() { + return Cookie.parse("a=b; Domain=example.com.", true) || null; + }, + "has the domain": function(c) { assert.equal(c.domain,"example.com.") }, + "but doesn't validate": function(c) { assert.equal(c.validate(),false) }, + }, + "empty path": { + "strict": function() { assert.ok(!Cookie.parse("a=b; path=", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; path="); + assert.ok(c); + assert.equal(c.path, null); + }, + }, + "no-slash path": { + "strict": function() { assert.ok(!Cookie.parse("a=b; path=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; path=xyzzy"); + assert.ok(c); + assert.equal(c.path, null); + }, + }, + "trailing semi-colons after path": { + topic: function () { + return [ + "a=b; path=/;", + "c=d;;;;" + ]; + }, + "strict": function (t) { + assert.ok(!Cookie.parse(t[0], true)); + assert.ok(!Cookie.parse(t[1], true)); + }, + "non-strict": function (t) { + var c1 = Cookie.parse(t[0]); + var c2 = Cookie.parse(t[1]); + assert.ok(c1); + assert.ok(c2); + assert.equal(c1.path, '/'); + } + }, + "secure-with-value": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Secure=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Secure=xyzzy"); + assert.ok(c); + assert.equal(c.secure, true); + }, + }, + "httponly-with-value": { + "strict": function() { assert.ok(!Cookie.parse("a=b; HttpOnly=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; HttpOnly=xyzzy"); + assert.ok(c); + assert.equal(c.httpOnly, true); + }, + }, + "garbage": { + topic: function() { + return Cookie.parse("\x08", true) || null; + }, + "doesn't parse": function(c) { assert.equal(c,null) }, + }, + "public suffix domain": { + topic: function() { + return Cookie.parse("a=b; domain=kyoto.jp", true) || null; + }, + "parses fine": function(c) { + assert.ok(c); + assert.equal(c.domain, 'kyoto.jp'); + }, + "but fails validation": function(c) { + assert.ok(c); + assert.ok(!c.validate()); + }, + }, + "Ironically, Google 'GAPS' cookie has very little whitespace": { + topic: function() { + return Cookie.parse("GAPS=1:A1aaaaAaAAa1aaAaAaaAAAaaa1a11a:aaaAaAaAa-aaaA1-;Path=/;Expires=Thu, 17-Apr-2014 02:12:29 GMT;Secure;HttpOnly"); + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'GAPS') }, + "value": function(c) { assert.equal(c.value, '1:A1aaaaAaAAa1aaAaAaaAAAaaa1a11a:aaaAaAaAa-aaaA1-') }, + "path": function(c) { + assert.notEqual(c.path, '/;Expires'); // BUG + assert.equal(c.path, '/'); + }, + "expires": function(c) { + assert.notEqual(c.expires, Infinity); + assert.equal(c.expires.getTime(), 1397700749000); + }, + "secure": function(c) { assert.ok(c.secure) }, + "httponly": function(c) { assert.ok(c.httpOnly) }, + }, + "lots of equal signs": { + topic: function() { + return Cookie.parse("queryPref=b=c&d=e; Path=/f=g; Expires=Thu, 17 Apr 2014 02:12:29 GMT; HttpOnly"); + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'queryPref') }, + "value": function(c) { assert.equal(c.value, 'b=c&d=e') }, + "path": function(c) { + assert.equal(c.path, '/f=g'); + }, + "expires": function(c) { + assert.notEqual(c.expires, Infinity); + assert.equal(c.expires.getTime(), 1397700749000); + }, + "httponly": function(c) { assert.ok(c.httpOnly) }, + } + } +}) +.addBatch({ + "domain normalization": { + "simple": function() { + var c = new Cookie(); + c.domain = "EXAMPLE.com"; + assert.equal(c.canonicalizedDomain(), "example.com"); + }, + "extra dots": function() { + var c = new Cookie(); + c.domain = ".EXAMPLE.com"; + assert.equal(c.cdomain(), "example.com"); + }, + "weird trailing dot": function() { + var c = new Cookie(); + c.domain = "EXAMPLE.ca."; + assert.equal(c.canonicalizedDomain(), "example.ca."); + }, + "weird internal dots": function() { + var c = new Cookie(); + c.domain = "EXAMPLE...ca."; + assert.equal(c.canonicalizedDomain(), "example...ca."); + }, + "IDN": function() { + var c = new Cookie(); + c.domain = "δοκιμή.δοκιμή"; // "test.test" in greek + assert.equal(c.canonicalizedDomain(), "xn--jxalpdlp.xn--jxalpdlp"); + } + } +}) +.addBatch({ + "Domain Match":matchVows(tough.domainMatch, [ + // str, dom, expect + ["example.com", "example.com", true], + ["eXaMpLe.cOm", "ExAmPlE.CoM", true], + ["no.ca", "yes.ca", false], + ["wwwexample.com", "example.com", false], + ["www.example.com", "example.com", true], + ["example.com", "www.example.com", false], + ["www.subdom.example.com", "example.com", true], + ["www.subdom.example.com", "subdom.example.com", true], + ["example.com", "example.com.", false], // RFC6265 S4.1.2.3 + ["192.168.0.1", "168.0.1", false], // S5.1.3 "The string is a host name" + [null, "example.com", null], + ["example.com", null, null], + [null, null, null], + [undefined, undefined, null], + ]) +}) +.addBatch({ + "default-path": defaultPathVows([ + [null,"/"], + ["/","/"], + ["/file","/"], + ["/dir/file","/dir"], + ["noslash","/"], + ]) +}) +.addBatch({ + "Path-Match": matchVows(tough.pathMatch, [ + // request, cookie, match + ["/","/",true], + ["/dir","/",true], + ["/","/dir",false], + ["/dir/","/dir/", true], + ["/dir/file","/dir/",true], + ["/dir/file","/dir",true], + ["/directory","/dir",false], + ]) +}) +.addBatch({ + "Cookie Sorting": { + topic: function() { + var cookies = []; + var now = Date.now(); + cookies.push(Cookie.parse("a=0; Domain=example.com")); + cookies.push(Cookie.parse("b=1; Domain=www.example.com")); + cookies.push(Cookie.parse("c=2; Domain=example.com; Path=/pathA")); + cookies.push(Cookie.parse("d=3; Domain=www.example.com; Path=/pathA")); + cookies.push(Cookie.parse("e=4; Domain=example.com; Path=/pathA/pathB")); + cookies.push(Cookie.parse("f=5; Domain=www.example.com; Path=/pathA/pathB")); + + // force a stable creation time consistent with the order above since + // some may have been created at now + 1ms. + var i = cookies.length; + cookies.forEach(function(cookie) { + cookie.creation = new Date(now - 100*(i--)); + }); + + // weak shuffle: + cookies = cookies.sort(function(){return Math.random()-0.5}); + + cookies = cookies.sort(tough.cookieCompare); + return cookies; + }, + "got": function(cookies) { + assert.lengthOf(cookies, 6); + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['e','f','c','d','a','b']); + }, + } +}) +.addBatch({ + "CookieJar": { + "Setting a basic cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "works": function(c) { assert.instanceOf(c,Cookie) }, // C is for Cookie, good enough for me + "gets timestamped": function(c) { + assert.ok(c.creation); + assert.ok(Date.now() - c.creation.getTime() < 5000); // recently stamped + assert.ok(c.lastAccessed); + assert.equal(c.creation, c.lastAccessed); + assert.equal(c.TTL(), Infinity); + assert.ok(!c.isPersistent()); + }, + }, + "Setting a no-path cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "domain": function(c) { assert.equal(c.domain, 'example.com') }, + "path is /": function(c) { assert.equal(c.path, '/') }, + "path was derived": function(c) { assert.strictEqual(c.pathIsDefault, true) }, + }, + "Setting a cookie already marked as host-only": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + c.hostOnly = true; + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "domain": function(c) { assert.equal(c.domain, 'example.com') }, + "still hostOnly": function(c) { assert.strictEqual(c.hostOnly, true) }, + }, + "Setting a session cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b"); + assert.strictEqual(c.path, null); + cj.setCookie(c, 'http://www.example.com/dir/index.html', this.callback); + }, + "works": function(c) { assert.instanceOf(c,Cookie) }, + "gets the domain": function(c) { assert.equal(c.domain, 'www.example.com') }, + "gets the default path": function(c) { assert.equal(c.path, '/dir') }, + "is 'hostOnly'": function(c) { assert.ok(c.hostOnly) }, + }, + "Setting wrong domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=fooxample.com; Path=/"); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "fails": function(err,c) { + assert.ok(err.message.match(/domain/i)); + assert.ok(!c); + }, + }, + "Setting sub-domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=www.example.com; Path=/"); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "fails": function(err,c) { + assert.ok(err.message.match(/domain/i)); + assert.ok(!c); + }, + }, + "Setting super-domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/"); + cj.setCookie(c, 'http://www.app.example.com/index.html', this.callback); + }, + "success": function(err,c) { + assert.ok(!err); + assert.equal(c.domain, 'example.com'); + }, + }, + "Setting HttpOnly cookie over non-HTTP API": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/; HttpOnly"); + cj.setCookie(c, 'http://example.com/index.html', {http:false}, this.callback); + }, + "fails": function(err,c) { + assert.match(err.message, /HttpOnly/i); + assert.ok(!c); + }, + }, + }, + "Cookie Jar store eight cookies": { + topic: function() { + var cj = new CookieJar(); + var ex = 'http://example.com/index.html'; + var tasks = []; + tasks.push(function(next) { + cj.setCookie('a=1; Domain=example.com; Path=/',ex,at(0),next); + }); + tasks.push(function(next) { + cj.setCookie('b=2; Domain=example.com; Path=/; HttpOnly',ex,at(1000),next); + }); + tasks.push(function(next) { + cj.setCookie('c=3; Domain=example.com; Path=/; Secure',ex,at(2000),next); + }); + tasks.push(function(next) { // path + cj.setCookie('d=4; Domain=example.com; Path=/foo',ex,at(3000),next); + }); + tasks.push(function(next) { // host only + cj.setCookie('e=5',ex,at(4000),next); + }); + tasks.push(function(next) { // other domain + cj.setCookie('f=6; Domain=nodejs.org; Path=/','http://nodejs.org',at(5000),next); + }); + tasks.push(function(next) { // expired + cj.setCookie('g=7; Domain=example.com; Path=/; Expires=Tue, 18 Oct 2011 00:00:00 GMT',ex,at(6000),next); + }); + tasks.push(function(next) { // expired via Max-Age + cj.setCookie('h=8; Domain=example.com; Path=/; Max-Age=1',ex,next); + }); + var cb = this.callback; + async.parallel(tasks, function(err,results){ + setTimeout(function() { + cb(err,cj,results); + }, 2000); // so that 'h=8' expires + }); + }, + "setup ok": function(err,cj,results) { + assert.ok(1); + }, + "then retrieving for http://nodejs.org": { + topic: function(cj,results) { + cj.getCookies('http://nodejs.org',this.callback); + }, + "get a nodejs cookie": function(cookies) { + assert.lengthOf(cookies, 1); + var cookie = cookies[0]; + assert.equal(cookie.domain, 'nodejs.org'); + }, + }, + "then retrieving for https://example.com": { + topic: function(cj,results) { + cj.getCookies('https://example.com',{secure:true},this.callback); + }, + "get a secure example cookie with others": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','c','e']); + }, + }, + "then retrieving for https://example.com (missing options)": { + topic: function(cj,results) { + cj.getCookies('https://example.com',this.callback); + }, + "get a secure example cookie with others": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','c','e']); + }, + }, + "then retrieving for http://example.com": { + topic: function(cj,results) { + cj.getCookies('http://example.com',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','e']); + }, + }, + "then retrieving for http://EXAMPlE.com": { + topic: function(cj,results) { + cj.getCookies('http://EXAMPlE.com',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','e']); + }, + }, + "then retrieving for http://example.com, non-HTTP": { + topic: function(cj,results) { + cj.getCookies('http://example.com',{http:false},this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','e']); + }, + }, + "then retrieving for http://example.com/foo/bar": { + topic: function(cj,results) { + cj.getCookies('http://example.com/foo/bar',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['d','a','b','e']); + }, + }, + "then retrieving for http://example.com as a string": { + topic: function(cj,results) { + cj.getCookieString('http://example.com',this.callback); + }, + "get a single string": function(cookieHeader) { + assert.equal(cookieHeader, "a=1; b=2; e=5"); + }, + }, + "then retrieving for http://example.com as a set-cookie header": { + topic: function(cj,results) { + cj.getSetCookieStrings('http://example.com',this.callback); + }, + "get a single string": function(cookieHeaders) { + assert.lengthOf(cookieHeaders, 3); + assert.equal(cookieHeaders[0], "a=1; Domain=example.com; Path=/"); + assert.equal(cookieHeaders[1], "b=2; Domain=example.com; Path=/; HttpOnly"); + assert.equal(cookieHeaders[2], "e=5; Path=/"); + }, + }, + "then retrieving for http://www.example.com/": { + topic: function(cj,results) { + cj.getCookies('http://www.example.com/foo/bar',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['d','a','b']); // note lack of 'e' + }, + }, + }, + "Repeated names": { + topic: function() { + var cb = this.callback; + var cj = new CookieJar(); + var ex = 'http://www.example.com/'; + var sc = cj.setCookie; + var tasks = []; + var now = Date.now(); + tasks.push(sc.bind(cj,'aaaa=xxxx',ex,at(0))); + tasks.push(sc.bind(cj,'aaaa=1111; Domain=www.example.com',ex,at(1000))); + tasks.push(sc.bind(cj,'aaaa=2222; Domain=example.com',ex,at(2000))); + tasks.push(sc.bind(cj,'aaaa=3333; Domain=www.example.com; Path=/pathA',ex,at(3000))); + async.series(tasks,function(err,results) { + results = results.filter(function(e) {return e !== undefined}); + cb(err,{cj:cj, cookies:results, now:now}); + }); + }, + "all got set": function(err,t) { + assert.lengthOf(t.cookies,4); + }, + "then getting 'em back": { + topic: function(t) { + var cj = t.cj; + cj.getCookies('http://www.example.com/pathA',this.callback); + }, + "there's just three": function (err,cookies) { + var vals = cookies.map(function(c) {return c.value}); + // may break with sorting; sorting should put 3333 first due to longest path: + assert.deepEqual(vals, ['3333','1111','2222']); + } + }, + }, + "CookieJar setCookie errors": { + "public-suffix domain": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('i=9; Domain=kyoto.jp; Path=/','kyoto.jp',this.callback); + }, + "errors": function(err,cookie) { + assert.ok(err); + assert.ok(!cookie); + assert.match(err.message, /public suffix/i); + }, + }, + "wrong domain": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('j=10; Domain=google.com; Path=/','google.ca',this.callback); + }, + "errors": function(err,cookie) { + assert.ok(err); + assert.ok(!cookie); + assert.match(err.message, /not in this host's domain/i); + }, + }, + "old cookie is HttpOnly": { + topic: function() { + var cb = this.callback; + var next = function (err,c) { + return cb(err,cj); + }; + var cj = new CookieJar(); + cj.setCookie('k=11; Domain=example.ca; Path=/; HttpOnly','http://example.ca',{http:true},next); + }, + "initial cookie is set": function(err,cj) { + assert.ok(!err); + }, + "but when trying to overwrite": { + topic: function(cj) { + var cb = this.callback; + cj.setCookie('k=12; Domain=example.ca; Path=/','http://example.ca',{http:false},function(err,c) {cb(null,err)}); + }, + "it's an error": function(err) { + assert.ok(err); + }, + "then, checking the original": { + topic: function(ignored,cj) { + assert.ok(cj instanceof CookieJar); + cj.getCookies('http://example.ca',{http:true},this.callback); + }, + "cookie has original value": function(err,cookies) { + assert.equal(err,null); + assert.lengthOf(cookies, 1); + assert.equal(cookies[0].value,11); + }, + }, + }, + }, + }, +}) +.addBatch({ + "JSON": { + "serialization": { + topic: function() { + var c = Cookie.parse('alpha=beta; Domain=example.com; Path=/foo; Expires=Tue, 19 Jan 2038 03:14:07 GMT; HttpOnly'); + return JSON.stringify(c); + }, + "gives a string": function(str) { + assert.equal(typeof str, "string"); + }, + "date is in ISO format": function(str) { + assert.match(str, /"expires":"2038-01-19T03:14:07\.000Z"/, 'expires is in ISO format'); + }, + }, + "deserialization": { + topic: function() { + var json = '{"key":"alpha","value":"beta","domain":"example.com","path":"/foo","expires":"2038-01-19T03:14:07.000Z","httpOnly":true,"lastAccessed":2000000000123}'; + return Cookie.fromJSON(json); + }, + "works": function(c) { + assert.ok(c); + }, + "key": function(c) { assert.equal(c.key, "alpha") }, + "value": function(c) { assert.equal(c.value, "beta") }, + "domain": function(c) { assert.equal(c.domain, "example.com") }, + "path": function(c) { assert.equal(c.path, "/foo") }, + "httpOnly": function(c) { assert.strictEqual(c.httpOnly, true) }, + "secure": function(c) { assert.strictEqual(c.secure, false) }, + "hostOnly": function(c) { assert.strictEqual(c.hostOnly, null) }, + "expires is a date object": function(c) { + assert.equal(c.expires.getTime(), 2147483647000); + }, + "lastAccessed is a date object": function(c) { + assert.equal(c.lastAccessed.getTime(), 2000000000123); + }, + "creation defaulted": function(c) { + assert.ok(c.creation.getTime()); + } + }, + "null deserialization": { + topic: function() { + return Cookie.fromJSON(null); + }, + "is null": function(cookie) { + assert.equal(cookie,null); + }, + }, + }, + "expiry deserialization": { + "Infinity": { + topic: Cookie.fromJSON.bind(null, '{"expires":"Infinity"}'), + "is infinite": function(c) { + assert.strictEqual(c.expires, "Infinity"); + assert.equal(c.expires, Infinity); + }, + }, + }, + "maxAge serialization": { + topic: function() { + return function(toSet) { + var c = new Cookie(); + c.key = 'foo'; c.value = 'bar'; + c.setMaxAge(toSet); + return JSON.stringify(c); + }; + }, + "zero": { + topic: function(f) { return f(0) }, + "looks good": function(str) { + assert.match(str, /"maxAge":0/); + }, + }, + "Infinity": { + topic: function(f) { return f(Infinity) }, + "looks good": function(str) { + assert.match(str, /"maxAge":"Infinity"/); + }, + }, + "-Infinity": { + topic: function(f) { return f(-Infinity) }, + "looks good": function(str) { + assert.match(str, /"maxAge":"-Infinity"/); + }, + }, + "null": { + topic: function(f) { return f(null) }, + "looks good": function(str) { + assert.match(str, /"maxAge":null/); + }, + }, + }, + "maxAge deserialization": { + "number": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":123}'), + "is the number": function(c) { + assert.strictEqual(c.maxAge, 123); + }, + }, + "null": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":null}'), + "is null": function(c) { + assert.strictEqual(c.maxAge, null); + }, + }, + "less than zero": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":-123}'), + "is -123": function(c) { + assert.strictEqual(c.maxAge, -123); + }, + }, + "Infinity": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":"Infinity"}'), + "is inf-as-string": function(c) { + assert.strictEqual(c.maxAge, "Infinity"); + }, + }, + "-Infinity": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":"-Infinity"}'), + "is inf-as-string": function(c) { + assert.strictEqual(c.maxAge, "-Infinity"); + }, + }, + } +}) +.addBatch({ + "permuteDomain": { + "base case": { + topic: tough.permuteDomain.bind(null,'example.com'), + "got the domain": function(list) { + assert.deepEqual(list, ['example.com']); + }, + }, + "two levels": { + topic: tough.permuteDomain.bind(null,'foo.bar.example.com'), + "got three things": function(list) { + assert.deepEqual(list, ['example.com','bar.example.com','foo.bar.example.com']); + }, + }, + "invalid domain": { + topic: tough.permuteDomain.bind(null,'foo.bar.example.localduhmain'), + "got three things": function(list) { + assert.equal(list, null); + }, + }, + }, + "permutePath": { + "base case": { + topic: tough.permutePath.bind(null,'/'), + "just slash": function(list) { + assert.deepEqual(list,['/']); + }, + }, + "single case": { + topic: tough.permutePath.bind(null,'/foo'), + "two things": function(list) { + assert.deepEqual(list,['/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo',e)); + }); + }, + }, + "double case": { + topic: tough.permutePath.bind(null,'/foo/bar'), + "four things": function(list) { + assert.deepEqual(list,['/foo/bar','/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo/bar',e)); + }); + }, + }, + "trailing slash": { + topic: tough.permutePath.bind(null,'/foo/bar/'), + "three things": function(list) { + assert.deepEqual(list,['/foo/bar','/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo/bar/',e)); + }); + }, + }, + } +}) +.addBatch({ + "Issue 1": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('hello=world; path=/some/path/', 'http://domain/some/path/file', function(err,cookie) { + this.callback(err,{cj:cj, cookie:cookie}); + }.bind(this)); + }, + "stored a cookie": function(t) { + assert.ok(t.cookie); + }, + "cookie's path was modified to remove unnecessary slash": function(t) { + assert.equal(t.cookie.path, '/some/path'); + }, + "getting it back": { + topic: function(t) { + t.cj.getCookies('http://domain/some/path/file', function(err,cookies) { + this.callback(err, {cj:t.cj, cookies:cookies||[]}); + }.bind(this)); + }, + "got one cookie": function(t) { + assert.lengthOf(t.cookies, 1); + }, + "it's the right one": function(t) { + var c = t.cookies[0]; + assert.equal(c.key, 'hello'); + assert.equal(c.value, 'world'); + }, + } + } +}) +.addBatch({ + "expiry option": { + topic: function() { + var cb = this.callback; + var cj = new CookieJar(); + cj.setCookie('near=expiry; Domain=example.com; Path=/; Max-Age=1','http://www.example.com',at(-1), function(err,cookie) { + + cb(err, {cj:cj, cookie:cookie}); + }); + }, + "set the cookie": function(t) { + assert.ok(t.cookie, "didn't set?!"); + assert.equal(t.cookie.key, 'near'); + }, + "then, retrieving": { + topic: function(t) { + var cb = this.callback; + setTimeout(function() { + t.cj.getCookies('http://www.example.com', {http:true, expire:false}, function(err,cookies) { + t.cookies = cookies; + cb(err,t); + }); + },2000); + }, + "got the cookie": function(t) { + assert.lengthOf(t.cookies, 1); + assert.equal(t.cookies[0].key, 'near'); + }, + } + } +}) +.addBatch({ + "trailing semi-colon set into cj": { + topic: function () { + var cb = this.callback; + var cj = new CookieJar(); + var ex = 'http://www.example.com'; + var tasks = []; + tasks.push(function(next) { + cj.setCookie('broken_path=testme; path=/;',ex,at(-1),next); + }); + tasks.push(function(next) { + cj.setCookie('b=2; Path=/;;;;',ex,at(-1),next); + }); + async.parallel(tasks, function (err, cookies) { + cb(null, { + cj: cj, + cookies: cookies + }); + }); + }, + "check number of cookies": function (t) { + assert.lengthOf(t.cookies, 2, "didn't set"); + }, + "check *broken_path* was set properly": function (t) { + assert.equal(t.cookies[0].key, "broken_path"); + assert.equal(t.cookies[0].value, "testme"); + assert.equal(t.cookies[0].path, "/"); + }, + "check *b* was set properly": function (t) { + assert.equal(t.cookies[1].key, "b"); + assert.equal(t.cookies[1].value, "2"); + assert.equal(t.cookies[1].path, "/"); + }, + "retrieve the cookie": { + topic: function (t) { + var cb = this.callback; + t.cj.getCookies('http://www.example.com', {}, function (err, cookies) { + t.cookies = cookies; + cb(err, t); + }); + }, + "get the cookie": function(t) { + assert.lengthOf(t.cookies, 2); + assert.equal(t.cookies[0].key, 'broken_path'); + assert.equal(t.cookies[0].value, 'testme'); + assert.equal(t.cookies[1].key, "b"); + assert.equal(t.cookies[1].value, "2"); + assert.equal(t.cookies[1].path, "/"); + }, + }, + } +}) +.addBatch({ + "Constructor":{ + topic: function () { + return new Cookie({ + key: 'test', + value: 'b', + maxAge: 60 + }); + }, + 'check for key property': function (c) { + assert.ok(c); + assert.equal(c.key, 'test'); + }, + 'check for value property': function (c) { + assert.equal(c.value, 'b'); + }, + 'check for maxAge': function (c) { + assert.equal(c.maxAge, 60); + }, + 'check for default values for unspecified properties': function (c) { + assert.equal(c.expires, "Infinity"); + assert.equal(c.secure, false); + assert.equal(c.httpOnly, false); + } + } +}) +.addBatch({ + "allPaths option": { + topic: function() { + var cj = new CookieJar(); + var tasks = []; + tasks.push(cj.setCookie.bind(cj, 'nopath_dom=qq; Path=/; Domain=example.com', 'http://example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'path_dom=qq; Path=/foo; Domain=example.com', 'http://example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'nopath_host=qq; Path=/', 'http://www.example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'path_host=qq; Path=/foo', 'http://www.example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'other=qq; Path=/', 'http://other.example.com/', {})); + tasks.push(cj.setCookie.bind(cj, 'other2=qq; Path=/foo', 'http://other.example.com/foo', {})); + var cb = this.callback; + async.parallel(tasks, function(err,results) { + cb(err, {cj:cj, cookies: results}); + }); + }, + "all set": function(t) { + assert.equal(t.cookies.length, 6); + assert.ok(t.cookies.every(function(c) { return !!c })); + }, + "getting without allPaths": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/', {}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found just two cookies": function(t) { + assert.equal(t.cookies.length, 2); + }, + "all are path=/": function(t) { + assert.ok(t.cookies.every(function(c) { return c.path === '/' })); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + "getting without allPaths for /foo": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/foo', {}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found four cookies": function(t) { + assert.equal(t.cookies.length, 4); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + "getting with allPaths:true": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/', {allPaths:true}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found four cookies": function(t) { + assert.equal(t.cookies.length, 4); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + } +}) +.export(module); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE @@ -0,0 +1,55 @@ +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +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 + +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 \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md new file mode 100644 index 00000000..bb533d56 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md @@ -0,0 +1,4 @@ +tunnel-agent +============ + +HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js new file mode 100644 index 00000000..3f7bbb90 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js @@ -0,0 +1,227 @@ +'use strict' + +var net = require('net') + , tls = require('tls') + , http = require('http') + , https = require('https') + , events = require('events') + , assert = require('assert') + , util = require('util') + ; + +exports.httpOverHttp = httpOverHttp +exports.httpsOverHttp = httpsOverHttp +exports.httpOverHttps = httpOverHttps +exports.httpsOverHttps = httpsOverHttps + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + return agent +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + agent.createSocket = createSecureSocket + return agent +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + return agent +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + agent.createSocket = createSecureSocket + return agent +} + + +function TunnelingAgent(options) { + var self = this + self.options = options || {} + self.proxyOptions = self.options.proxy || {} + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets + self.requests = [] + self.sockets = [] + + self.on('free', function onFree(socket, host, port) { + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i] + if (pending.host === host && pending.port === port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1) + pending.request.onSocket(socket) + return + } + } + socket.destroy() + self.removeSocket(socket) + }) +} +util.inherits(TunnelingAgent, events.EventEmitter) + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port) { + var self = this + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push({host: host, port: port, request: req}) + return + } + + // If we are under maxSockets create a new one. + self.createSocket({host: host, port: port, request: req}, function(socket) { + socket.on('free', onFree) + socket.on('close', onCloseOrRemove) + socket.on('agentRemove', onCloseOrRemove) + req.onSocket(socket) + + function onFree() { + self.emit('free', socket, host, port) + } + + function onCloseOrRemove(err) { + self.removeSocket() + socket.removeListener('free', onFree) + socket.removeListener('close', onCloseOrRemove) + socket.removeListener('agentRemove', onCloseOrRemove) + } + }) +} + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this + var placeholder = {} + self.sockets.push(placeholder) + + var connectOptions = mergeOptions({}, self.proxyOptions, + { method: 'CONNECT' + , path: options.host + ':' + options.port + , agent: false + } + ) + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {} + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64') + } + + debug('making CONNECT request') + var connectReq = self.request(connectOptions) + connectReq.useChunkedEncodingByDefault = false // for v0.6 + connectReq.once('response', onResponse) // for v0.6 + connectReq.once('upgrade', onUpgrade) // for v0.6 + connectReq.once('connect', onConnect) // for v0.7 or later + connectReq.once('error', onError) + connectReq.end() + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head) + }) + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners() + socket.removeAllListeners() + + if (res.statusCode === 200) { + assert.equal(head.length, 0) + debug('tunneling connection has established') + self.sockets[self.sockets.indexOf(placeholder)] = socket + cb(socket) + } else { + debug('tunneling socket could not be established, statusCode=%d', res.statusCode) + var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } + } + + function onError(cause) { + connectReq.removeAllListeners() + + debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack) + var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } +} + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) return + + this.sockets.splice(pos, 1) + + var pending = this.requests.shift() + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket) + }) + } +} + +function createSecureSocket(options, cb) { + var self = this + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, mergeOptions({}, self.options, + { servername: options.host + , socket: socket + } + )) + cb(secureSocket) + }) +} + + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i] + if (typeof overrides === 'object') { + var keys = Object.keys(overrides) + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j] + if (overrides[k] !== undefined) { + target[k] = overrides[k] + } + } + } + } + return target +} + + +var debug +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments) + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0] + } else { + args.unshift('TUNNEL:') + } + console.error.apply(console, args) + } +} else { + debug = function() {} +} +exports.debug = debug // for test diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json new file mode 100644 index 00000000..acfa6e1c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json @@ -0,0 +1,32 @@ +{ + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "name": "tunnel-agent", + "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", + "version": "0.3.0", + "repository": { + "url": "https://github.com/mikeal/tunnel-agent" + }, + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "readme": "tunnel-agent\n============\n\nHTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/mikeal/tunnel-agent/issues" + }, + "homepage": "https://github.com/mikeal/tunnel-agent", + "_id": "tunnel-agent@0.3.0", + "dist": { + "shasum": "ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + }, + "_from": "tunnel-agent@~0.3.0", + "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json new file mode 100755 index 00000000..57c99c02 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json @@ -0,0 +1,61 @@ +{ + "name": "request", + "description": "Simplified HTTP request client.", + "tags": [ + "http", + "simple", + "util", + "utility" + ], + "version": "2.31.0", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com" + }, + "repository": { + "type": "git", + "url": "http://github.com/mikeal/request.git" + }, + "bugs": { + "url": "http://github.com/mikeal/request/issues" + }, + "engines": [ + "node >= 0.8.0" + ], + "main": "index.js", + "dependencies": { + "qs": "~0.6.0", + "json-stringify-safe": "~5.0.0", + "forever-agent": "~0.5.0", + "node-uuid": "~1.4.0", + "mime": "~1.2.9", + "tough-cookie": "~0.9.15", + "form-data": "~0.1.0", + "tunnel-agent": "~0.3.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "hawk": "~1.0.0", + "aws-sign2": "~0.5.0" + }, + "optionalDependencies": { + "tough-cookie": "~0.9.15", + "form-data": "~0.1.0", + "tunnel-agent": "~0.3.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "hawk": "~1.0.0", + "aws-sign2": "~0.5.0" + }, + "scripts": { + "test": "node tests/run.js" + }, + "readme": "# Request -- Simplified HTTP client\n\n[![NPM](https://nodei.co/npm/request.png)](https://nodei.co/npm/request/)\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require('request');\nrequest('http://www.google.com', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Print the google web page.\n }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one).\n\n```javascript\nfs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json'))\n```\n\nRequest can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers.\n\n```javascript\nrequest.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))\n```\n\nNow let’s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n if (req.method === 'PUT') {\n req.pipe(request.put('http://mysite.com/doodle.png'))\n } else if (req.method === 'GET' || req.method === 'HEAD') {\n request.get('http://mysite.com/doodle.png').pipe(resp)\n }\n }\n})\n```\n\nYou can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don't really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n var x = request('http://mysite.com/doodle.png')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :)\n\n```javascript\nreq.pipe(request('http://mysite.com/doodle.png')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({'proxy':'http://localproxy.com'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n r.get('http://google.com/doodle.png').pipe(resp)\n }\n})\n```\n\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nURL-encoded forms are simple.\n\n```javascript\nrequest.post('http://service.com/upload', {form:{key:'value'}})\n// or\nrequest.post('http://service.com/upload').form({key:'value'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don’t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post('http://service.com/upload')\nvar form = r.form()\nform.append('my_field', 'my_value')\nform.append('my_buffer', new Buffer([1, 2, 3]))\nform.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png'))\nform.append('remote_file', request('http://google.com/doodle.png'))\n```\n\n## HTTP Authentication\n\n```javascript\nrequest.get('http://some.server.com/').auth('username', 'password', false);\n// or\nrequest.get('http://some.server.com/', {\n 'auth': {\n 'user': 'username',\n 'pass': 'password',\n 'sendImmediately': false\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`.\n\n`sendImmediately` defaults to `true`, which causes a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a `401` response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method).\n\nDigest authentication is supported, but it only works with `sendImmediately` set to `false`; otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail.\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require('querystring')\n , oauth =\n { callback: 'http://mysite.com/callback/'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = 'https://api.twitter.com/oauth/request_token'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has\n // verified with twitter that they are authorizing your app.\n var access_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: access_token.oauth_token\n , verifier: access_token.oauth_verifier\n }\n , url = 'https://api.twitter.com/oauth/access_token'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n var perm_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_token.oauth_token\n , token_secret: perm_token.oauth_token_secret\n }\n , url = 'https://api.twitter.com/1.1/users/show.json?'\n , params =\n { screen_name: perm_token.screen_name\n , user_id: perm_token.user_id\n }\n ;\n url += qs.stringify(params)\n request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\n### Custom HTTP Headers\n\nHTTP Headers, such as `User-Agent`, can be set in the `options` object.\nIn the example below, we call the github API to find out the number\nof stars and forks for the request repository. This requires a\ncustom `User-Agent` header as well as https.\n\n```javascript\nvar request = require('request');\n\nvar options = {\n\turl: 'https://api.github.com/repos/mikeal/request',\n\theaders: {\n\t\t'User-Agent': 'request'\n\t}\n};\n\nfunction callback(error, response, body) {\n\tif (!error && response.statusCode == 200) {\n\t\tvar info = JSON.parse(body);\n\t\tconsole.log(info.stargazers_count + \" Stars\");\n\t\tconsole.log(info.forks_count + \" Forks\");\n\t}\n}\n\nrequest(options, callback);\n```\n\n### request(options, callback)\n\nThe first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n* `qs` - object containing querystring values to be appended to the `uri`\n* `method` - http method (default: `\"GET\"`)\n* `headers` - http headers (default: `{}`)\n* `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer` or `String`.\n* `form` - when passed an object, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no options, a `FormData` instance is returned (and is piped to request).\n* `auth` - A hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). See documentation above.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`)\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`)\n* `maxRedirects` - the maximum number of redirects to follow (default: `10`)\n* `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`.\n* `pool` - A hash object containing the agents for these requests. If omitted, the request will use the global pool (which is set to node's default `maxSockets`)\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\n* `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`)\n* `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above.\n* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n* `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option.\n* `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section)\n* `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services)\n* `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent's library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n* `localAddress` - Local interface to bind for network connections.\n\n\nThe callback argument gets 3 arguments: \n\n1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object)\n2. An [`http.IncomingMessage`](http://nodejs.org/api/http.html#http_http_incomingmessage) object\n3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied)\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options)\n\nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as `request()`, but defaults to `method: \"PUT\"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.patch\n\nSame as `request()`, but defaults to `method: \"PATCH\"`.\n\n```javascript\nrequest.patch(url)\n```\n\n### request.post\n\nSame as `request()`, but defaults to `method: \"POST\"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: \"HEAD\"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as `request()`, but defaults to `method: \"DELETE\"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nSame as `request()` (for uniformity).\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie('cookie_string_here')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n var request = require('request')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: 'PUT'\n , uri: 'http://mikeal.iriscouch.com/testjs/' + rand\n , multipart:\n [ { 'content-type': 'application/json'\n , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})\n }\n , { body: 'I am an attachment' }\n ]\n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand)\n } else {\n console.log('error: '+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\n\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`).\n\n```javascript\nvar request = request.defaults({jar: true})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\n\nTo use a custom cookie jar (instead `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`)\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\nOR\n\nNote that `setCookie` requires at least three parameters, and the last is required to be a callback.\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie('your_cookie_here')\nj.setCookie(cookie, uri, function (err, cookie){})\nrequest({url: 'http://www.google.com', jar: j}, function () {\n request('http://images.google.com')\n})\n```\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/mikeal/request", + "_id": "request@2.31.0", + "dist": { + "shasum": "4c8ac967c9a4b9410cb4ba1a61fdb644267eeeff" + }, + "_from": "request@~2.31.0", + "_resolved": "https://registry.npmjs.org/request/-/request-2.31.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js new file mode 100644 index 00000000..3c03c47d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js @@ -0,0 +1,1260 @@ +var optional = require('./lib/optional') + , http = require('http') + , https = optional('https') + , tls = optional('tls') + , url = require('url') + , util = require('util') + , stream = require('stream') + , qs = require('qs') + , querystring = require('querystring') + , crypto = require('crypto') + + , oauth = optional('oauth-sign') + , hawk = optional('hawk') + , aws = optional('aws-sign') + , httpSignature = optional('http-signature') + , uuid = require('node-uuid') + , mime = require('mime') + , tunnel = optional('tunnel-agent') + , _safeStringify = require('json-stringify-safe') + + , ForeverAgent = require('forever-agent') + , FormData = optional('form-data') + + , Cookie = optional('tough-cookie') + , CookieJar = Cookie && Cookie.CookieJar + , cookieJar = CookieJar && new CookieJar + + , copy = require('./lib/copy') + , debug = require('./lib/debug') + , getSafe = require('./lib/getSafe') + ; + +function safeStringify (obj) { + var ret + try { ret = JSON.stringify(obj) } + catch (e) { ret = _safeStringify(obj) } + return ret +} + +var globalPool = {} +var isUrl = /^https?:/i + + +// Hacky fix for pre-0.4.4 https +if (https && !https.Agent) { + https.Agent = function (options) { + http.Agent.call(this, options) + } + util.inherits(https.Agent, http.Agent) + https.Agent.prototype._getConnection = function (host, port, cb) { + var s = tls.connect(port, host, this.options, function () { + // do other checks here? + if (cb) cb() + }) + return s + } +} + +function isReadStream (rs) { + if (rs.readable && rs.path && rs.mode) { + return true + } +} + +function toBase64 (str) { + return (new Buffer(str || "", "ascii")).toString("base64") +} + +function md5 (str) { + return crypto.createHash('md5').update(str).digest('hex') +} + +function Request (options) { + stream.Stream.call(this) + this.readable = true + this.writable = true + + if (typeof options === 'string') { + options = {uri:options} + } + + var reserved = Object.keys(Request.prototype) + for (var i in options) { + if (reserved.indexOf(i) === -1) { + this[i] = options[i] + } else { + if (typeof options[i] === 'function') { + delete options[i] + } + } + } + + if (options.method) { + this.explicitMethod = true + } + + this.canTunnel = options.tunnel !== false && tunnel; + + this.init(options) +} +util.inherits(Request, stream.Stream) +Request.prototype.init = function (options) { + // init() contains all the code to setup the request object. + // the actual outgoing request is not started until start() is called + // this function is called from both the constructor and on redirect. + var self = this + if (!options) options = {} + + if (!self.method) self.method = options.method || 'GET' + self.localAddress = options.localAddress + + debug(options) + if (!self.pool && self.pool !== false) self.pool = globalPool + self.dests = self.dests || [] + self.__isRequestRequest = true + + // Protect against double callback + if (!self._callback && self.callback) { + self._callback = self.callback + self.callback = function () { + if (self._callbackCalled) return // Print a warning maybe? + self._callbackCalled = true + self._callback.apply(self, arguments) + } + self.on('error', self.callback.bind()) + self.on('complete', self.callback.bind(self, null)) + } + + if (self.url && !self.uri) { + // People use this property instead all the time so why not just support it. + self.uri = self.url + delete self.url + } + + if (!self.uri) { + // this will throw if unhandled but is handleable when in a redirect + return self.emit('error', new Error("options.uri is a required argument")) + } else { + if (typeof self.uri == "string") self.uri = url.parse(self.uri) + } + + if (self.strictSSL === false) { + self.rejectUnauthorized = false + } + + if (self.proxy) { + if (typeof self.proxy == 'string') self.proxy = url.parse(self.proxy) + + // do the HTTP CONNECT dance using koichik/node-tunnel + if (http.globalAgent && self.uri.protocol === "https:" && self.canTunnel) { + var tunnelFn = self.proxy.protocol === "http:" + ? tunnel.httpsOverHttp : tunnel.httpsOverHttps + + var tunnelOptions = { proxy: { host: self.proxy.hostname + , port: +self.proxy.port + , proxyAuth: self.proxy.auth + , headers: { Host: self.uri.hostname + ':' + + (self.uri.port || self.uri.protocol === 'https:' ? 443 : 80) }} + , rejectUnauthorized: self.rejectUnauthorized + , ca: this.ca } + + self.agent = tunnelFn(tunnelOptions) + self.tunnel = true + } + } + + if (!self.uri.pathname) {self.uri.pathname = '/'} + + if (!self.uri.host) { + // Invalid URI: it may generate lot of bad errors, like "TypeError: Cannot call method 'indexOf' of undefined" in CookieJar + // Detect and reject it as soon as possible + var faultyUri = url.format(self.uri) + var message = 'Invalid URI "' + faultyUri + '"' + if (Object.keys(options).length === 0) { + // No option ? This can be the sign of a redirect + // As this is a case where the user cannot do anything (they didn't call request directly with this URL) + // they should be warned that it can be caused by a redirection (can save some hair) + message += '. This can be caused by a crappy redirection.' + } + self.emit('error', new Error(message)) + return // This error was fatal + } + + self._redirectsFollowed = self._redirectsFollowed || 0 + self.maxRedirects = (self.maxRedirects !== undefined) ? self.maxRedirects : 10 + self.followRedirect = (self.followRedirect !== undefined) ? self.followRedirect : true + self.followAllRedirects = (self.followAllRedirects !== undefined) ? self.followAllRedirects : false + if (self.followRedirect || self.followAllRedirects) + self.redirects = self.redirects || [] + + self.headers = self.headers ? copy(self.headers) : {} + + self.setHost = false + if (!self.hasHeader('host')) { + self.setHeader('host', self.uri.hostname) + if (self.uri.port) { + if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && + !(self.uri.port === 443 && self.uri.protocol === 'https:') ) + self.setHeader('host', self.getHeader('host') + (':'+self.uri.port) ) + } + self.setHost = true + } + + self.jar(self._jar || options.jar) + + if (!self.uri.port) { + if (self.uri.protocol == 'http:') {self.uri.port = 80} + else if (self.uri.protocol == 'https:') {self.uri.port = 443} + } + + if (self.proxy && !self.tunnel) { + self.port = self.proxy.port + self.host = self.proxy.hostname + } else { + self.port = self.uri.port + self.host = self.uri.hostname + } + + self.clientErrorHandler = function (error) { + if (self._aborted) return + if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' + && self.agent.addRequestNoreuse) { + self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } + self.start() + self.req.end() + return + } + if (self.timeout && self.timeoutTimer) { + clearTimeout(self.timeoutTimer) + self.timeoutTimer = null + } + self.emit('error', error) + } + + self._parserErrorHandler = function (error) { + if (this.res) { + if (this.res.request) { + this.res.request.emit('error', error) + } else { + this.res.emit('error', error) + } + } else { + this._httpMessage.emit('error', error) + } + } + + if (options.form) { + self.form(options.form) + } + + if (options.qs) self.qs(options.qs) + + if (self.uri.path) { + self.path = self.uri.path + } else { + self.path = self.uri.pathname + (self.uri.search || "") + } + + if (self.path.length === 0) self.path = '/' + + + // Auth must happen last in case signing is dependent on other headers + if (options.oauth) { + self.oauth(options.oauth) + } + + if (options.aws) { + self.aws(options.aws) + } + + if (options.hawk) { + self.hawk(options.hawk) + } + + if (options.httpSignature) { + self.httpSignature(options.httpSignature) + } + + if (options.auth) { + if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) options.auth.user = options.auth.username + if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) options.auth.pass = options.auth.password + + self.auth( + options.auth.user, + options.auth.pass, + options.auth.sendImmediately + ) + } + + if (self.uri.auth && !self.hasHeader('authorization')) { + var authPieces = self.uri.auth.split(':').map(function(item){ return querystring.unescape(item) }) + self.auth(authPieces[0], authPieces.slice(1).join(':'), true) + } + if (self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization') && !self.tunnel) { + self.setHeader('proxy-authorization', "Basic " + toBase64(self.proxy.auth.split(':').map(function(item){ return querystring.unescape(item)}).join(':'))) + } + + + if (self.proxy && !self.tunnel) self.path = (self.uri.protocol + '//' + self.uri.host + self.path) + + if (options.json) { + self.json(options.json) + } else if (options.multipart) { + self.boundary = uuid() + self.multipart(options.multipart) + } + + if (self.body) { + var length = 0 + if (!Buffer.isBuffer(self.body)) { + if (Array.isArray(self.body)) { + for (var i = 0; i < self.body.length; i++) { + length += self.body[i].length + } + } else { + self.body = new Buffer(self.body) + length = self.body.length + } + } else { + length = self.body.length + } + if (length) { + if (!self.hasHeader('content-length')) self.setHeader('content-length', length) + } else { + throw new Error('Argument error, options.body.') + } + } + + var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol + , defaultModules = {'http:':http, 'https:':https} + , httpModules = self.httpModules || {} + ; + self.httpModule = httpModules[protocol] || defaultModules[protocol] + + if (!self.httpModule) return this.emit('error', new Error("Invalid protocol")) + + if (options.ca) self.ca = options.ca + + if (!self.agent) { + if (options.agentOptions) self.agentOptions = options.agentOptions + + if (options.agentClass) { + self.agentClass = options.agentClass + } else if (options.forever) { + self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL + } else { + self.agentClass = self.httpModule.Agent + } + } + + if (self.pool === false) { + self.agent = false + } else { + self.agent = self.agent || self.getAgent() + if (self.maxSockets) { + // Don't use our pooling if node has the refactored client + self.agent.maxSockets = self.maxSockets + } + if (self.pool.maxSockets) { + // Don't use our pooling if node has the refactored client + self.agent.maxSockets = self.pool.maxSockets + } + } + + self.on('pipe', function (src) { + if (self.ntick && self._started) throw new Error("You cannot pipe to this stream after the outbound request has started.") + self.src = src + if (isReadStream(src)) { + if (!self.hasHeader('content-type')) self.setHeader('content-type', mime.lookup(src.path)) + } else { + if (src.headers) { + for (var i in src.headers) { + if (!self.hasHeader(i)) { + self.setHeader(i, src.headers[i]) + } + } + } + if (self._json && !self.hasHeader('content-type')) + self.setHeader('content-type', 'application/json') + if (src.method && !self.explicitMethod) { + self.method = src.method + } + } + + // self.on('pipe', function () { + // console.error("You have already piped to this stream. Pipeing twice is likely to break the request.") + // }) + }) + + process.nextTick(function () { + if (self._aborted) return + + if (self._form) { + self.setHeaders(self._form.getHeaders()) + self._form.pipe(self) + } + if (self.body) { + if (Array.isArray(self.body)) { + self.body.forEach(function (part) { + self.write(part) + }) + } else { + self.write(self.body) + } + self.end() + } else if (self.requestBodyStream) { + console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe.") + self.requestBodyStream.pipe(self) + } else if (!self.src) { + if (self.method !== 'GET' && typeof self.method !== 'undefined') { + self.setHeader('content-length', 0) + } + self.end() + } + self.ntick = true + }) +} + +// Must call this when following a redirect from https to http or vice versa +// Attempts to keep everything as identical as possible, but update the +// httpModule, Tunneling agent, and/or Forever Agent in use. +Request.prototype._updateProtocol = function () { + var self = this + var protocol = self.uri.protocol + + if (protocol === 'https:') { + // previously was doing http, now doing https + // if it's https, then we might need to tunnel now. + if (self.proxy && self.canTunnel) { + self.tunnel = true + var tunnelFn = self.proxy.protocol === 'http:' + ? tunnel.httpsOverHttp : tunnel.httpsOverHttps + var tunnelOptions = { proxy: { host: self.proxy.hostname + , port: +self.proxy.port + , proxyAuth: self.proxy.auth } + , rejectUnauthorized: self.rejectUnauthorized + , ca: self.ca } + self.agent = tunnelFn(tunnelOptions) + return + } + + self.httpModule = https + switch (self.agentClass) { + case ForeverAgent: + self.agentClass = ForeverAgent.SSL + break + case http.Agent: + self.agentClass = https.Agent + break + default: + // nothing we can do. Just hope for the best. + return + } + + // if there's an agent, we need to get a new one. + if (self.agent) self.agent = self.getAgent() + + } else { + // previously was doing https, now doing http + // stop any tunneling. + if (self.tunnel) self.tunnel = false + self.httpModule = http + switch (self.agentClass) { + case ForeverAgent.SSL: + self.agentClass = ForeverAgent + break + case https.Agent: + self.agentClass = http.Agent + break + default: + // nothing we can do. just hope for the best + return + } + + // if there's an agent, then get a new one. + if (self.agent) { + self.agent = null + self.agent = self.getAgent() + } + } +} + +Request.prototype.getAgent = function () { + var Agent = this.agentClass + var options = {} + if (this.agentOptions) { + for (var i in this.agentOptions) { + options[i] = this.agentOptions[i] + } + } + if (this.ca) options.ca = this.ca + if (this.ciphers) options.ciphers = this.ciphers + if (this.secureProtocol) options.secureProtocol = this.secureProtocol + if (typeof this.rejectUnauthorized !== 'undefined') options.rejectUnauthorized = this.rejectUnauthorized + + if (this.cert && this.key) { + options.key = this.key + options.cert = this.cert + } + + var poolKey = '' + + // different types of agents are in different pools + if (Agent !== this.httpModule.Agent) { + poolKey += Agent.name + } + + if (!this.httpModule.globalAgent) { + // node 0.4.x + options.host = this.host + options.port = this.port + if (poolKey) poolKey += ':' + poolKey += this.host + ':' + this.port + } + + // ca option is only relevant if proxy or destination are https + var proxy = this.proxy + if (typeof proxy === 'string') proxy = url.parse(proxy) + var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:' + if (isHttps) { + if (options.ca) { + if (poolKey) poolKey += ':' + poolKey += options.ca + } + + if (typeof options.rejectUnauthorized !== 'undefined') { + if (poolKey) poolKey += ':' + poolKey += options.rejectUnauthorized + } + + if (options.cert) + poolKey += options.cert.toString('ascii') + options.key.toString('ascii') + + if (options.ciphers) { + if (poolKey) poolKey += ':' + poolKey += options.ciphers + } + + if (options.secureProtocol) { + if (poolKey) poolKey += ':' + poolKey += options.secureProtocol + } + } + + if (this.pool === globalPool && !poolKey && Object.keys(options).length === 0 && this.httpModule.globalAgent) { + // not doing anything special. Use the globalAgent + return this.httpModule.globalAgent + } + + // we're using a stored agent. Make sure it's protocol-specific + poolKey = this.uri.protocol + poolKey + + // already generated an agent for this setting + if (this.pool[poolKey]) return this.pool[poolKey] + + return this.pool[poolKey] = new Agent(options) +} + +Request.prototype.start = function () { + // start() is called once we are ready to send the outgoing HTTP request. + // this is usually called on the first write(), end() or on nextTick() + var self = this + + if (self._aborted) return + + self._started = true + self.method = self.method || 'GET' + self.href = self.uri.href + + if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) { + self.setHeader('content-length', self.src.stat.size) + } + if (self._aws) { + self.aws(self._aws, true) + } + + // We have a method named auth, which is completely different from the http.request + // auth option. If we don't remove it, we're gonna have a bad time. + var reqOptions = copy(self) + delete reqOptions.auth + + debug('make request', self.uri.href) + self.req = self.httpModule.request(reqOptions, self.onResponse.bind(self)) + + if (self.timeout && !self.timeoutTimer) { + self.timeoutTimer = setTimeout(function () { + self.req.abort() + var e = new Error("ETIMEDOUT") + e.code = "ETIMEDOUT" + self.emit("error", e) + }, self.timeout) + + // Set additional timeout on socket - in case if remote + // server freeze after sending headers + if (self.req.setTimeout) { // only works on node 0.6+ + self.req.setTimeout(self.timeout, function () { + if (self.req) { + self.req.abort() + var e = new Error("ESOCKETTIMEDOUT") + e.code = "ESOCKETTIMEDOUT" + self.emit("error", e) + } + }) + } + } + + self.req.on('error', self.clientErrorHandler) + self.req.on('drain', function() { + self.emit('drain') + }) + self.on('end', function() { + if ( self.req.connection ) self.req.connection.removeListener('error', self._parserErrorHandler) + }) + self.emit('request', self.req) +} +Request.prototype.onResponse = function (response) { + var self = this + debug('onResponse', self.uri.href, response.statusCode, response.headers) + response.on('end', function() { + debug('response end', self.uri.href, response.statusCode, response.headers) + }); + + if (response.connection.listeners('error').indexOf(self._parserErrorHandler) === -1) { + response.connection.once('error', self._parserErrorHandler) + } + if (self._aborted) { + debug('aborted', self.uri.href) + response.resume() + return + } + if (self._paused) response.pause() + else response.resume() + + self.response = response + response.request = self + response.toJSON = toJSON + + // XXX This is different on 0.10, because SSL is strict by default + if (self.httpModule === https && + self.strictSSL && + !response.client.authorized) { + debug('strict ssl error', self.uri.href) + var sslErr = response.client.authorizationError + self.emit('error', new Error('SSL Error: '+ sslErr)) + return + } + + if (self.setHost && self.hasHeader('host')) delete self.headers[self.hasHeader('host')] + if (self.timeout && self.timeoutTimer) { + clearTimeout(self.timeoutTimer) + self.timeoutTimer = null + } + + var addCookie = function (cookie) { + if (self._jar){ + var targetCookieJar = self._jar.setCookie?self._jar:cookieJar; + + //set the cookie if it's domain in the href's domain. + targetCookieJar.setCookie(cookie, self.uri.href, function(err){ + if (err){ + console.warn('set cookie failed,'+ err) + } + }) + } + + } + + if (hasHeader('set-cookie', response.headers) && (!self._disableCookies)) { + var headerName = hasHeader('set-cookie', response.headers) + if (Array.isArray(response.headers[headerName])) response.headers[headerName].forEach(addCookie) + else addCookie(response.headers[headerName]) + } + + var redirectTo = null + if (response.statusCode >= 300 && response.statusCode < 400 && hasHeader('location', response.headers)) { + var location = response.headers[hasHeader('location', response.headers)] + debug('redirect', location) + + if (self.followAllRedirects) { + redirectTo = location + } else if (self.followRedirect) { + switch (self.method) { + case 'PATCH': + case 'PUT': + case 'POST': + case 'DELETE': + // Do not follow redirects + break + default: + redirectTo = location + break + } + } + } else if (response.statusCode == 401 && self._hasAuth && !self._sentAuth) { + var authHeader = response.headers[hasHeader('www-authenticate', response.headers)] + var authVerb = authHeader && authHeader.split(' ')[0] + debug('reauth', authVerb) + + switch (authVerb) { + case 'Basic': + self.auth(self._user, self._pass, true) + redirectTo = self.uri + break + + case 'Digest': + // TODO: More complete implementation of RFC 2617. + // - check challenge.algorithm + // - support algorithm="MD5-sess" + // - handle challenge.domain + // - support qop="auth-int" only + // - handle Authentication-Info (not necessarily?) + // - check challenge.stale (not necessarily?) + // - increase nc (not necessarily?) + // For reference: + // http://tools.ietf.org/html/rfc2617#section-3 + // https://github.com/bagder/curl/blob/master/lib/http_digest.c + + var challenge = {} + var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi + for (;;) { + var match = re.exec(authHeader) + if (!match) break + challenge[match[1]] = match[2] || match[3]; + } + + var ha1 = md5(self._user + ':' + challenge.realm + ':' + self._pass) + var ha2 = md5(self.method + ':' + self.uri.path) + var qop = /(^|,)\s*auth\s*($|,)/.test(challenge.qop) && 'auth' + var nc = qop && '00000001' + var cnonce = qop && uuid().replace(/-/g, '') + var digestResponse = qop ? md5(ha1 + ':' + challenge.nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2) : md5(ha1 + ':' + challenge.nonce + ':' + ha2) + var authValues = { + username: self._user, + realm: challenge.realm, + nonce: challenge.nonce, + uri: self.uri.path, + qop: qop, + response: digestResponse, + nc: nc, + cnonce: cnonce, + algorithm: challenge.algorithm, + opaque: challenge.opaque + } + + authHeader = [] + for (var k in authValues) { + if (!authValues[k]) { + //ignore + } else if (k === 'qop' || k === 'nc' || k === 'algorithm') { + authHeader.push(k + '=' + authValues[k]) + } else { + authHeader.push(k + '="' + authValues[k] + '"') + } + } + authHeader = 'Digest ' + authHeader.join(', ') + self.setHeader('authorization', authHeader) + self._sentAuth = true + + redirectTo = self.uri + break + } + } + + if (redirectTo) { + debug('redirect to', redirectTo) + + // ignore any potential response body. it cannot possibly be useful + // to us at this point. + if (self._paused) response.resume() + + if (self._redirectsFollowed >= self.maxRedirects) { + self.emit('error', new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+self.uri.href)) + return + } + self._redirectsFollowed += 1 + + if (!isUrl.test(redirectTo)) { + redirectTo = url.resolve(self.uri.href, redirectTo) + } + + var uriPrev = self.uri + self.uri = url.parse(redirectTo) + + // handle the case where we change protocol from https to http or vice versa + if (self.uri.protocol !== uriPrev.protocol) { + self._updateProtocol() + } + + self.redirects.push( + { statusCode : response.statusCode + , redirectUri: redirectTo + } + ) + if (self.followAllRedirects && response.statusCode != 401) self.method = 'GET' + // self.method = 'GET' // Force all redirects to use GET || commented out fixes #215 + delete self.src + delete self.req + delete self.agent + delete self._started + if (response.statusCode != 401) { + // Remove parameters from the previous response, unless this is the second request + // for a server that requires digest authentication. + delete self.body + delete self._form + if (self.headers) { + if (self.hasHeader('host')) delete self.headers[self.hasHeader('host')] + if (self.hasHeader('content-type')) delete self.headers[self.hasHeader('content-type')] + if (self.hasHeader('content-length')) delete self.headers[self.hasHeader('content-length')] + } + } + + self.emit('redirect'); + + self.init() + return // Ignore the rest of the response + } else { + self._redirectsFollowed = self._redirectsFollowed || 0 + // Be a good stream and emit end when the response is finished. + // Hack to emit end on close because of a core bug that never fires end + response.on('close', function () { + if (!self._ended) self.response.emit('end') + }) + + if (self.encoding) { + if (self.dests.length !== 0) { + console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.") + } else { + response.setEncoding(self.encoding) + } + } + + self.emit('response', response) + + self.dests.forEach(function (dest) { + self.pipeDest(dest) + }) + + response.on("data", function (chunk) { + self._destdata = true + self.emit("data", chunk) + }) + response.on("end", function (chunk) { + self._ended = true + self.emit("end", chunk) + }) + response.on("close", function () {self.emit("close")}) + + if (self.callback) { + var buffer = [] + var bodyLen = 0 + self.on("data", function (chunk) { + buffer.push(chunk) + bodyLen += chunk.length + }) + self.on("end", function () { + debug('end event', self.uri.href) + if (self._aborted) { + debug('aborted', self.uri.href) + return + } + + if (buffer.length && Buffer.isBuffer(buffer[0])) { + debug('has body', self.uri.href, bodyLen) + var body = new Buffer(bodyLen) + var i = 0 + buffer.forEach(function (chunk) { + chunk.copy(body, i, 0, chunk.length) + i += chunk.length + }) + if (self.encoding === null) { + response.body = body + } else { + response.body = body.toString(self.encoding) + } + } else if (buffer.length) { + // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation. + // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse(). + if (self.encoding === 'utf8' && buffer[0].length > 0 && buffer[0][0] === "\uFEFF") { + buffer[0] = buffer[0].substring(1) + } + response.body = buffer.join('') + } + + if (self._json) { + try { + response.body = JSON.parse(response.body) + } catch (e) {} + } + debug('emitting complete', self.uri.href) + if(response.body == undefined && !self._json) { + response.body = ""; + } + self.emit('complete', response, response.body) + }) + } + //if no callback + else{ + self.on("end", function () { + if (self._aborted) { + debug('aborted', self.uri.href) + return + } + self.emit('complete', response); + }); + } + } + debug('finish init function', self.uri.href) +} + +Request.prototype.abort = function () { + this._aborted = true + + if (this.req) { + this.req.abort() + } + else if (this.response) { + this.response.abort() + } + + this.emit("abort") +} + +Request.prototype.pipeDest = function (dest) { + var response = this.response + // Called after the response is received + if (dest.headers && !dest.headersSent) { + if (hasHeader('content-type', response.headers)) { + var ctname = hasHeader('content-type', response.headers) + if (dest.setHeader) dest.setHeader(ctname, response.headers[ctname]) + else dest.headers[ctname] = response.headers[ctname] + } + + if (hasHeader('content-length', response.headers)) { + var clname = hasHeader('content-length', response.headers) + if (dest.setHeader) dest.setHeader(clname, response.headers[clname]) + else dest.headers[clname] = response.headers[clname] + } + } + if (dest.setHeader && !dest.headersSent) { + for (var i in response.headers) { + dest.setHeader(i, response.headers[i]) + } + dest.statusCode = response.statusCode + } + if (this.pipefilter) this.pipefilter(response, dest) +} + +// Composable API +Request.prototype.setHeader = function (name, value, clobber) { + if (clobber === undefined) clobber = true + if (clobber || !this.hasHeader(name)) this.headers[name] = value + else this.headers[this.hasHeader(name)] += ',' + value + return this +} +Request.prototype.setHeaders = function (headers) { + for (var i in headers) {this.setHeader(i, headers[i])} + return this +} +Request.prototype.hasHeader = function (header, headers) { + var headers = Object.keys(headers || this.headers) + , lheaders = headers.map(function (h) {return h.toLowerCase()}) + ; + header = header.toLowerCase() + for (var i=0;i + +[![NPM](https://nodei.co/npm/through2.png?compact=true)](https://nodei.co/npm/through2/) + + + +**A tiny wrapper around Node streams.Transform (Streams2) to avoid explicit subclassing noise** + +Inspired by [Dominic Tarr](https://github.com/dominictarr)'s [through](https://github.com/dominictarr/through) in that it's so much easier to make a stream out of a function than it is to set up the prototype chain properly: `through(function (chunk) { ... })`. + +```js +fs.createReadStream('ex.txt') + .pipe(through2(function (chunk, enc, callback) { + + for (var i = 0; i < chunk.length; i++) + if (chunk[i] == 97) + chunk[i] = 122 // swap 'a' for 'z' + + this.push(chunk) + + callback() + + })) + .pipe(fs.createWriteStream('out.txt')) +``` + +Or object streams: + +```js +var all = [] + +fs.createReadStream('data.csv') + .pipe(csv2()) + .pipe(through2.obj(function (chunk, enc, callback) { + + var data = { + name : chunk[0] + , address : chunk[3] + , phone : chunk[10] + } + + this.push(data) + + callback() + + })) + .on('data', function (data) { + all.push(data) + }) + .on('end', function () { + doSomethingSpecial(all) + }) +``` + +Note that `through2.obj(fn)` is a convenience wrapper around `through2({ objectMode: true }, fn)`. + +## API + +through2([ options, ] [ transformFunction ] [, flushFunction ]) + +Consult the **[stream.Transform](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform)** documentation for the exact rules of the `transformFunction` (i.e. `this._transform`) and the optional `flushFunction` (i.e. `this._flush`). + +### options + +The options argument is optional and is passed straight through to `stream.Transform`. So you can use `objectMode:true` if you are processing non-binary streams (or just use `through2.obj()`). + +The `options` argument is first, unlike standard convention, because if I'm passing in an anonymous function then I'd prefer for the options argument to not get lost at the end of the call: + +```js +fs.createReadStream('/tmp/important.dat') + .pipe(through2({ objectMode: true, allowHalfOpen: false }, function (chunk, enc, cb) { + + this.push(new Buffer('wut?')) + cb() + + }) + .pipe(fs.createWriteStream('/tmp/wut.txt')) +``` + +### transformFunction + +The `transformFunction` must have the following signature: `function (chunk, encoding, callback) {}`. A minimal implementation should call the `callback` function to indicate that the transformation is done, even if that transformation means discarding the chunk. + +To queue a new chunk, call `this.push(chunk)`—this can be called as many times as required before the `callback()` if you have multiple pieces to send on. + +If you **do not provide a `transformFunction`** then you will get a simple simple pass-through stream. + +### flushFunction + +The optional `flushFunction` is provided as the last argument (2nd or 3rd, depending on whether you've supplied options) is called just prior to the stream ending. Can be used to finish up any processing that may be in progress. + +through2.ctor([ options, ] transformFunction[, flushFunction ]) + +Instead of returning a `stream.Transform` instance, `through2.ctor()` returns a **constructor** for a custom Transform. This is useful when you want to use the same transform logic in multiple instances. + +```js +var FToC = through2.ctor({objectMode: true}, function (record, encoding, callback) { + if (record.temp != null && record.unit = "F") { + record.temp = ( ( record.temp - 32 ) * 5 ) / 9 + record.unit = "C" + } + this.push(record) + callback() +}) + +// Create instances of FToC like so: +var converter = new FToC() +// Or: +var converter = FToC() +// Or specify/override options when you instantiate, if you prefer: +var converter = FToC({objectMode: true}) +``` + +## License + +**through2** is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore new file mode 100644 index 00000000..38344f87 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore @@ -0,0 +1,5 @@ +build/ +test/ +examples/ +fs.js +zlib.js \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE new file mode 100644 index 00000000..0c44ae71 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE @@ -0,0 +1,27 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md new file mode 100644 index 00000000..be976683 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md @@ -0,0 +1,768 @@ +# readable-stream + +A new class of streams for Node.js + +This module provides the new Stream base classes introduced in Node +v0.10, for use in Node v0.8. You can use it to have programs that +have to work with node v0.8, while being forward-compatible for v0.10 +and beyond. When you drop support for v0.8, you can remove this +module, and only use the native streams. + +This is almost exactly the same codebase as appears in Node v0.10. +However: + +1. The exported object is actually the Readable class. Decorating the + native `stream` module would be global pollution. +2. In v0.10, you can safely use `base64` as an argument to + `setEncoding` in Readable streams. However, in v0.8, the + StringDecoder class has no `end()` method, which is problematic for + Base64. So, don't use that, because it'll break and be weird. + +Other than that, the API is the same as `require('stream')` in v0.10, +so the API docs are reproduced below. + +---------- + + Stability: 2 - Unstable + +A stream is an abstract interface implemented by various objects in +Node. For example a request to an HTTP server is a stream, as is +stdout. Streams are readable, writable, or both. All streams are +instances of [EventEmitter][] + +You can load the Stream base classes by doing `require('stream')`. +There are base classes provided for Readable streams, Writable +streams, Duplex streams, and Transform streams. + +## Compatibility + +In earlier versions of Node, the Readable stream interface was +simpler, but also less powerful and less useful. + +* Rather than waiting for you to call the `read()` method, `'data'` + events would start emitting immediately. If you needed to do some + I/O to decide how to handle data, then you had to store the chunks + in some kind of buffer so that they would not be lost. +* The `pause()` method was advisory, rather than guaranteed. This + meant that you still had to be prepared to receive `'data'` events + even when the stream was in a paused state. + +In Node v0.10, the Readable class described below was added. For +backwards compatibility with older Node programs, Readable streams +switch into "old mode" when a `'data'` event handler is added, or when +the `pause()` or `resume()` methods are called. The effect is that, +even if you are not using the new `read()` method and `'readable'` +event, you no longer have to worry about losing `'data'` chunks. + +Most programs will continue to function normally. However, this +introduces an edge case in the following conditions: + +* No `'data'` event handler is added. +* The `pause()` and `resume()` methods are never called. + +For example, consider the following code: + +```javascript +// WARNING! BROKEN! +net.createServer(function(socket) { + + // we add an 'end' method, but never consume the data + socket.on('end', function() { + // It will never get here. + socket.end('I got your message (but didnt read it)\n'); + }); + +}).listen(1337); +``` + +In versions of node prior to v0.10, the incoming message data would be +simply discarded. However, in Node v0.10 and beyond, the socket will +remain paused forever. + +The workaround in this situation is to call the `resume()` method to +trigger "old mode" behavior: + +```javascript +// Workaround +net.createServer(function(socket) { + + socket.on('end', function() { + socket.end('I got your message (but didnt read it)\n'); + }); + + // start the flow of data, discarding it. + socket.resume(); + +}).listen(1337); +``` + +In addition to new Readable streams switching into old-mode, pre-v0.10 +style streams can be wrapped in a Readable class using the `wrap()` +method. + +## Class: stream.Readable + + + +A `Readable Stream` has the following methods, members, and events. + +Note that `stream.Readable` is an abstract class designed to be +extended with an underlying implementation of the `_read(size)` +method. (See below.) + +### new stream.Readable([options]) + +* `options` {Object} + * `highWaterMark` {Number} The maximum number of bytes to store in + the internal buffer before ceasing to read from the underlying + resource. Default=16kb + * `encoding` {String} If specified, then buffers will be decoded to + strings using the specified encoding. Default=null + * `objectMode` {Boolean} Whether this stream should behave + as a stream of objects. Meaning that stream.read(n) returns + a single value instead of a Buffer of size n + +In classes that extend the Readable class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### readable.\_read(size) + +* `size` {Number} Number of bytes to read asynchronously + +Note: **This function should NOT be called directly.** It should be +implemented by child classes, and called by the internal Readable +class methods only. + +All Readable stream implementations must provide a `_read` method +to fetch data from the underlying resource. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +When data is available, put it into the read queue by calling +`readable.push(chunk)`. If `push` returns false, then you should stop +reading. When `_read` is called again, you should start pushing more +data. + +The `size` argument is advisory. Implementations where a "read" is a +single call that returns data can use this to know how much data to +fetch. Implementations where that is not relevant, such as TCP or +TLS, may ignore this argument, and simply provide data whenever it +becomes available. There is no need, for example to "wait" until +`size` bytes are available before calling `stream.push(chunk)`. + +### readable.push(chunk) + +* `chunk` {Buffer | null | String} Chunk of data to push into the read queue +* return {Boolean} Whether or not more pushes should be performed + +Note: **This function should be called by Readable implementors, NOT +by consumers of Readable subclasses.** The `_read()` function will not +be called again until at least one `push(chunk)` call is made. If no +data is available, then you MAY call `push('')` (an empty string) to +allow a future `_read` call, without adding any data to the queue. + +The `Readable` class works by putting data into a read queue to be +pulled out later by calling the `read()` method when the `'readable'` +event fires. + +The `push()` method will explicitly insert some data into the read +queue. If it is called with `null` then it will signal the end of the +data. + +In some cases, you may be wrapping a lower-level source which has some +sort of pause/resume mechanism, and a data callback. In those cases, +you could wrap the low-level source object by doing something like +this: + +```javascript +// source is an object with readStop() and readStart() methods, +// and an `ondata` member that gets called when it has data, and +// an `onend` member that gets called when the data is over. + +var stream = new Readable(); + +source.ondata = function(chunk) { + // if push() returns false, then we need to stop reading from source + if (!stream.push(chunk)) + source.readStop(); +}; + +source.onend = function() { + stream.push(null); +}; + +// _read will be called when the stream wants to pull more data in +// the advisory size argument is ignored in this case. +stream._read = function(n) { + source.readStart(); +}; +``` + +### readable.unshift(chunk) + +* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue +* return {Boolean} Whether or not more pushes should be performed + +This is the corollary of `readable.push(chunk)`. Rather than putting +the data at the *end* of the read queue, it puts it at the *front* of +the read queue. + +This is useful in certain use-cases where a stream is being consumed +by a parser, which needs to "un-consume" some data that it has +optimistically pulled out of the source. + +```javascript +// A parser for a simple data protocol. +// The "header" is a JSON object, followed by 2 \n characters, and +// then a message body. +// +// Note: This can be done more simply as a Transform stream. See below. + +function SimpleProtocol(source, options) { + if (!(this instanceof SimpleProtocol)) + return new SimpleProtocol(options); + + Readable.call(this, options); + this._inBody = false; + this._sawFirstCr = false; + + // source is a readable stream, such as a socket or file + this._source = source; + + var self = this; + source.on('end', function() { + self.push(null); + }); + + // give it a kick whenever the source is readable + // read(0) will not consume any bytes + source.on('readable', function() { + self.read(0); + }); + + this._rawHeader = []; + this.header = null; +} + +SimpleProtocol.prototype = Object.create( + Readable.prototype, { constructor: { value: SimpleProtocol }}); + +SimpleProtocol.prototype._read = function(n) { + if (!this._inBody) { + var chunk = this._source.read(); + + // if the source doesn't have data, we don't have data yet. + if (chunk === null) + return this.push(''); + + // check if the chunk has a \n\n + var split = -1; + for (var i = 0; i < chunk.length; i++) { + if (chunk[i] === 10) { // '\n' + if (this._sawFirstCr) { + split = i; + break; + } else { + this._sawFirstCr = true; + } + } else { + this._sawFirstCr = false; + } + } + + if (split === -1) { + // still waiting for the \n\n + // stash the chunk, and try again. + this._rawHeader.push(chunk); + this.push(''); + } else { + this._inBody = true; + var h = chunk.slice(0, split); + this._rawHeader.push(h); + var header = Buffer.concat(this._rawHeader).toString(); + try { + this.header = JSON.parse(header); + } catch (er) { + this.emit('error', new Error('invalid simple protocol data')); + return; + } + // now, because we got some extra data, unshift the rest + // back into the read queue so that our consumer will see it. + var b = chunk.slice(split); + this.unshift(b); + + // and let them know that we are done parsing the header. + this.emit('header', this.header); + } + } else { + // from there on, just provide the data to our consumer. + // careful not to push(null), since that would indicate EOF. + var chunk = this._source.read(); + if (chunk) this.push(chunk); + } +}; + +// Usage: +var parser = new SimpleProtocol(source); +// Now parser is a readable stream that will emit 'header' +// with the parsed header data. +``` + +### readable.wrap(stream) + +* `stream` {Stream} An "old style" readable stream + +If you are using an older Node library that emits `'data'` events and +has a `pause()` method that is advisory only, then you can use the +`wrap()` method to create a Readable stream that uses the old stream +as its data source. + +For example: + +```javascript +var OldReader = require('./old-api-module.js').OldReader; +var oreader = new OldReader; +var Readable = require('stream').Readable; +var myReader = new Readable().wrap(oreader); + +myReader.on('readable', function() { + myReader.read(); // etc. +}); +``` + +### Event: 'readable' + +When there is data ready to be consumed, this event will fire. + +When this event emits, call the `read()` method to consume the data. + +### Event: 'end' + +Emitted when the stream has received an EOF (FIN in TCP terminology). +Indicates that no more `'data'` events will happen. If the stream is +also writable, it may be possible to continue writing. + +### Event: 'data' + +The `'data'` event emits either a `Buffer` (by default) or a string if +`setEncoding()` was used. + +Note that adding a `'data'` event listener will switch the Readable +stream into "old mode", where data is emitted as soon as it is +available, rather than waiting for you to call `read()` to consume it. + +### Event: 'error' + +Emitted if there was an error receiving data. + +### Event: 'close' + +Emitted when the underlying resource (for example, the backing file +descriptor) has been closed. Not all streams will emit this. + +### readable.setEncoding(encoding) + +Makes the `'data'` event emit a string instead of a `Buffer`. `encoding` +can be `'utf8'`, `'utf16le'` (`'ucs2'`), `'ascii'`, or `'hex'`. + +The encoding can also be set by specifying an `encoding` field to the +constructor. + +### readable.read([size]) + +* `size` {Number | null} Optional number of bytes to read. +* Return: {Buffer | String | null} + +Note: **This function SHOULD be called by Readable stream users.** + +Call this method to consume data once the `'readable'` event is +emitted. + +The `size` argument will set a minimum number of bytes that you are +interested in. If not set, then the entire content of the internal +buffer is returned. + +If there is no data to consume, or if there are fewer bytes in the +internal buffer than the `size` argument, then `null` is returned, and +a future `'readable'` event will be emitted when more is available. + +Calling `stream.read(0)` will always return `null`, and will trigger a +refresh of the internal buffer, but otherwise be a no-op. + +### readable.pipe(destination, [options]) + +* `destination` {Writable Stream} +* `options` {Object} Optional + * `end` {Boolean} Default=true + +Connects this readable stream to `destination` WriteStream. Incoming +data on this stream gets written to `destination`. Properly manages +back-pressure so that a slow destination will not be overwhelmed by a +fast readable stream. + +This function returns the `destination` stream. + +For example, emulating the Unix `cat` command: + + process.stdin.pipe(process.stdout); + +By default `end()` is called on the destination when the source stream +emits `end`, so that `destination` is no longer writable. Pass `{ end: +false }` as `options` to keep the destination stream open. + +This keeps `writer` open so that "Goodbye" can be written at the +end. + + reader.pipe(writer, { end: false }); + reader.on("end", function() { + writer.end("Goodbye\n"); + }); + +Note that `process.stderr` and `process.stdout` are never closed until +the process exits, regardless of the specified options. + +### readable.unpipe([destination]) + +* `destination` {Writable Stream} Optional + +Undo a previously established `pipe()`. If no destination is +provided, then all previously established pipes are removed. + +### readable.pause() + +Switches the readable stream into "old mode", where data is emitted +using a `'data'` event rather than being buffered for consumption via +the `read()` method. + +Ceases the flow of data. No `'data'` events are emitted while the +stream is in a paused state. + +### readable.resume() + +Switches the readable stream into "old mode", where data is emitted +using a `'data'` event rather than being buffered for consumption via +the `read()` method. + +Resumes the incoming `'data'` events after a `pause()`. + + +## Class: stream.Writable + + + +A `Writable` Stream has the following methods, members, and events. + +Note that `stream.Writable` is an abstract class designed to be +extended with an underlying implementation of the +`_write(chunk, encoding, cb)` method. (See below.) + +### new stream.Writable([options]) + +* `options` {Object} + * `highWaterMark` {Number} Buffer level when `write()` starts + returning false. Default=16kb + * `decodeStrings` {Boolean} Whether or not to decode strings into + Buffers before passing them to `_write()`. Default=true + +In classes that extend the Writable class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### writable.\_write(chunk, encoding, callback) + +* `chunk` {Buffer | String} The chunk to be written. Will always + be a buffer unless the `decodeStrings` option was set to `false`. +* `encoding` {String} If the chunk is a string, then this is the + encoding type. Ignore chunk is a buffer. Note that chunk will + **always** be a buffer unless the `decodeStrings` option is + explicitly set to `false`. +* `callback` {Function} Call this function (optionally with an error + argument) when you are done processing the supplied chunk. + +All Writable stream implementations must provide a `_write` method to +send data to the underlying resource. + +Note: **This function MUST NOT be called directly.** It should be +implemented by child classes, and called by the internal Writable +class methods only. + +Call the callback using the standard `callback(error)` pattern to +signal that the write completed successfully or with an error. + +If the `decodeStrings` flag is set in the constructor options, then +`chunk` may be a string rather than a Buffer, and `encoding` will +indicate the sort of string that it is. This is to support +implementations that have an optimized handling for certain string +data encodings. If you do not explicitly set the `decodeStrings` +option to `false`, then you can safely ignore the `encoding` argument, +and assume that `chunk` will always be a Buffer. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + + +### writable.write(chunk, [encoding], [callback]) + +* `chunk` {Buffer | String} Data to be written +* `encoding` {String} Optional. If `chunk` is a string, then encoding + defaults to `'utf8'` +* `callback` {Function} Optional. Called when this chunk is + successfully written. +* Returns {Boolean} + +Writes `chunk` to the stream. Returns `true` if the data has been +flushed to the underlying resource. Returns `false` to indicate that +the buffer is full, and the data will be sent out in the future. The +`'drain'` event will indicate when the buffer is empty again. + +The specifics of when `write()` will return false, is determined by +the `highWaterMark` option provided to the constructor. + +### writable.end([chunk], [encoding], [callback]) + +* `chunk` {Buffer | String} Optional final data to be written +* `encoding` {String} Optional. If `chunk` is a string, then encoding + defaults to `'utf8'` +* `callback` {Function} Optional. Called when the final chunk is + successfully written. + +Call this method to signal the end of the data being written to the +stream. + +### Event: 'drain' + +Emitted when the stream's write queue empties and it's safe to write +without buffering again. Listen for it when `stream.write()` returns +`false`. + +### Event: 'close' + +Emitted when the underlying resource (for example, the backing file +descriptor) has been closed. Not all streams will emit this. + +### Event: 'finish' + +When `end()` is called and there are no more chunks to write, this +event is emitted. + +### Event: 'pipe' + +* `source` {Readable Stream} + +Emitted when the stream is passed to a readable stream's pipe method. + +### Event 'unpipe' + +* `source` {Readable Stream} + +Emitted when a previously established `pipe()` is removed using the +source Readable stream's `unpipe()` method. + +## Class: stream.Duplex + + + +A "duplex" stream is one that is both Readable and Writable, such as a +TCP socket connection. + +Note that `stream.Duplex` is an abstract class designed to be +extended with an underlying implementation of the `_read(size)` +and `_write(chunk, encoding, callback)` methods as you would with a Readable or +Writable stream class. + +Since JavaScript doesn't have multiple prototypal inheritance, this +class prototypally inherits from Readable, and then parasitically from +Writable. It is thus up to the user to implement both the lowlevel +`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method +on extension duplex classes. + +### new stream.Duplex(options) + +* `options` {Object} Passed to both Writable and Readable + constructors. Also has the following fields: + * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then + the stream will automatically end the readable side when the + writable side ends and vice versa. + +In classes that extend the Duplex class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +## Class: stream.Transform + +A "transform" stream is a duplex stream where the output is causally +connected in some way to the input, such as a zlib stream or a crypto +stream. + +There is no requirement that the output be the same size as the input, +the same number of chunks, or arrive at the same time. For example, a +Hash stream will only ever have a single chunk of output which is +provided when the input is ended. A zlib stream will either produce +much smaller or much larger than its input. + +Rather than implement the `_read()` and `_write()` methods, Transform +classes must implement the `_transform()` method, and may optionally +also implement the `_flush()` method. (See below.) + +### new stream.Transform([options]) + +* `options` {Object} Passed to both Writable and Readable + constructors. + +In classes that extend the Transform class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### transform.\_transform(chunk, encoding, callback) + +* `chunk` {Buffer | String} The chunk to be transformed. Will always + be a buffer unless the `decodeStrings` option was set to `false`. +* `encoding` {String} If the chunk is a string, then this is the + encoding type. (Ignore if `decodeStrings` chunk is a buffer.) +* `callback` {Function} Call this function (optionally with an error + argument) when you are done processing the supplied chunk. + +Note: **This function MUST NOT be called directly.** It should be +implemented by child classes, and called by the internal Transform +class methods only. + +All Transform stream implementations must provide a `_transform` +method to accept input and produce output. + +`_transform` should do whatever has to be done in this specific +Transform class, to handle the bytes being written, and pass them off +to the readable portion of the interface. Do asynchronous I/O, +process things, and so on. + +Call `transform.push(outputChunk)` 0 or more times to generate output +from this input chunk, depending on how much data you want to output +as a result of this chunk. + +Call the callback function only when the current chunk is completely +consumed. Note that there may or may not be output as a result of any +particular input chunk. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +### transform.\_flush(callback) + +* `callback` {Function} Call this function (optionally with an error + argument) when you are done flushing any remaining data. + +Note: **This function MUST NOT be called directly.** It MAY be implemented +by child classes, and if so, will be called by the internal Transform +class methods only. + +In some cases, your transform operation may need to emit a bit more +data at the end of the stream. For example, a `Zlib` compression +stream will store up some internal state so that it can optimally +compress the output. At the end, however, it needs to do the best it +can with what is left, so that the data will be complete. + +In those cases, you can implement a `_flush` method, which will be +called at the very end, after all the written data is consumed, but +before emitting `end` to signal the end of the readable side. Just +like with `_transform`, call `transform.push(chunk)` zero or more +times, as appropriate, and call `callback` when the flush operation is +complete. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +### Example: `SimpleProtocol` parser + +The example above of a simple protocol parser can be implemented much +more simply by using the higher level `Transform` stream class. + +In this example, rather than providing the input as an argument, it +would be piped into the parser, which is a more idiomatic Node stream +approach. + +```javascript +function SimpleProtocol(options) { + if (!(this instanceof SimpleProtocol)) + return new SimpleProtocol(options); + + Transform.call(this, options); + this._inBody = false; + this._sawFirstCr = false; + this._rawHeader = []; + this.header = null; +} + +SimpleProtocol.prototype = Object.create( + Transform.prototype, { constructor: { value: SimpleProtocol }}); + +SimpleProtocol.prototype._transform = function(chunk, encoding, done) { + if (!this._inBody) { + // check if the chunk has a \n\n + var split = -1; + for (var i = 0; i < chunk.length; i++) { + if (chunk[i] === 10) { // '\n' + if (this._sawFirstCr) { + split = i; + break; + } else { + this._sawFirstCr = true; + } + } else { + this._sawFirstCr = false; + } + } + + if (split === -1) { + // still waiting for the \n\n + // stash the chunk, and try again. + this._rawHeader.push(chunk); + } else { + this._inBody = true; + var h = chunk.slice(0, split); + this._rawHeader.push(h); + var header = Buffer.concat(this._rawHeader).toString(); + try { + this.header = JSON.parse(header); + } catch (er) { + this.emit('error', new Error('invalid simple protocol data')); + return; + } + // and let them know that we are done parsing the header. + this.emit('header', this.header); + + // now, because we got some extra data, emit this first. + this.push(b); + } + } else { + // from there on, just provide the data to our consumer as-is. + this.push(b); + } + done(); +}; + +var parser = new SimpleProtocol(); +source.pipe(parser) + +// Now parser is a readable stream that will emit 'header' +// with the parsed header data. +``` + + +## Class: stream.PassThrough + +This is a trivial implementation of a `Transform` stream that simply +passes the input bytes across to the output. Its purpose is mainly +for examples and testing, but there are occasionally use cases where +it can come in handy. + + +[EventEmitter]: events.html#events_class_events_eventemitter diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js new file mode 100644 index 00000000..ca807af8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_duplex.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch new file mode 100644 index 00000000..0ad71a1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch @@ -0,0 +1,68 @@ +diff --git a/lib/_stream_duplex.js b/lib/_stream_duplex.js +index c5a741c..a2e0d8e 100644 +--- a/lib/_stream_duplex.js ++++ b/lib/_stream_duplex.js +@@ -26,8 +26,8 @@ + + module.exports = Duplex; + var util = require('util'); +-var Readable = require('_stream_readable'); +-var Writable = require('_stream_writable'); ++var Readable = require('./_stream_readable'); ++var Writable = require('./_stream_writable'); + + util.inherits(Duplex, Readable); + +diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js +index a5e9864..330c247 100644 +--- a/lib/_stream_passthrough.js ++++ b/lib/_stream_passthrough.js +@@ -25,7 +25,7 @@ + + module.exports = PassThrough; + +-var Transform = require('_stream_transform'); ++var Transform = require('./_stream_transform'); + var util = require('util'); + util.inherits(PassThrough, Transform); + +diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js +index 2259d2e..e6681ee 100644 +--- a/lib/_stream_readable.js ++++ b/lib/_stream_readable.js +@@ -23,6 +23,9 @@ module.exports = Readable; + Readable.ReadableState = ReadableState; + + var EE = require('events').EventEmitter; ++if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { ++ return emitter.listeners(type).length; ++}; + var Stream = require('stream'); + var util = require('util'); + var StringDecoder; +diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js +index e925b4b..f08b05e 100644 +--- a/lib/_stream_transform.js ++++ b/lib/_stream_transform.js +@@ -64,7 +64,7 @@ + + module.exports = Transform; + +-var Duplex = require('_stream_duplex'); ++var Duplex = require('./_stream_duplex'); + var util = require('util'); + util.inherits(Transform, Duplex); + +diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js +index a26f711..56ca47d 100644 +--- a/lib/_stream_writable.js ++++ b/lib/_stream_writable.js +@@ -109,7 +109,7 @@ function WritableState(options, stream) { + function Writable(options) { + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. +- if (!(this instanceof Writable) && !(this instanceof Stream.Duplex)) ++ if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) + return new Writable(options); + + this._writableState = new WritableState(options, this); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js new file mode 100644 index 00000000..a2e0d8e0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js @@ -0,0 +1,69 @@ +// 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. + +// 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. + +module.exports = Duplex; +var util = require('util'); +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +Object.keys(Writable.prototype).forEach(function(method) { + 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. + process.nextTick(this.end.bind(this)); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js new file mode 100644 index 00000000..330c247d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js @@ -0,0 +1,41 @@ +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); +var util = require('util'); +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); +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js new file mode 100644 index 00000000..323f3305 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js @@ -0,0 +1,927 @@ +// 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 = Readable; +Readable.ReadableState = ReadableState; + +var EE = require('events').EventEmitter; +if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { + return emitter.listeners(type).length; +}; +var Stream = require('stream'); +var util = require('util'); +var StringDecoder; + +util.inherits(Readable, Stream); + +function ReadableState(options, stream) { + options = options || {}; + + // 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; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + this.buffer = []; + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = false; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // In streams that never have any data, and do push(null) right away, + // the consumer can miss the 'end' event if they do some I/O before + // consuming the stream. So, we don't emit('end') until some reading + // happens. + this.calledRead = 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, becuase 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; + + + // 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; + + // 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; + } +} + +function Readable(options) { + if (!(this instanceof Readable)) + return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + 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 (typeof chunk === 'string' && !state.objectMode) { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = new Buffer(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); +}; + +function readableAddChunk(stream, state, chunk, encoding, addToFront) { + var er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (chunk === null || chunk === undefined) { + state.reading = false; + if (!state.ended) + 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 { + if (state.decoder && !addToFront && !encoding) + chunk = state.decoder.write(chunk); + + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) { + state.buffer.unshift(chunk); + } else { + state.reading = false; + 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; +}; + +// Don't raise the hwm > 128MB +var MAX_HWM = 0x800000; +function roundUpToNextPowerOf2(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 + n--; + for (var p = 1; p < 32; p <<= 1) n |= n >> p; + n++; + } + return n; +} + +function howMuchToRead(n, state) { + if (state.length === 0 && state.ended) + return 0; + + if (state.objectMode) + return n === 0 ? 0 : 1; + + if (isNaN(n) || n === null) { + // 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 = roundUpToNextPowerOf2(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) { + var state = this._readableState; + state.calledRead = true; + 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)) { + 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; + + // if we currently have less than the highWaterMark, then also read some + if (state.length - n <= state.highWaterMark) + doRead = true; + + // 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; + + if (doRead) { + 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 called its callback 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 happened to read() exactly the remaining amount in the + // buffer, and the EOF has been seen at this point, then make sure + // that we emit 'end' on the very next tick. + if (state.ended && !state.endEmitted && state.length === 0) + endReadable(this); + + return ret; +}; + +function chunkInvalid(state, chunk) { + var er = null; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode && + !er) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + + +function onEofChunk(stream, state) { + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // if we've ended and we have some data left, then emit + // 'readable' now to make sure it gets picked up. + if (state.length > 0) + emitReadable(stream); + else + endReadable(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) + return; + + state.emittedReadable = true; + if (state.sync) + process.nextTick(function() { + emitReadable_(stream); + }); + else + emitReadable_(stream); +} + +function emitReadable_(stream) { + stream.emit('readable'); +} + + +// 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; + process.nextTick(function() { + maybeReadMore_(stream, state); + }); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && + state.length < state.highWaterMark) { + 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; + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && + dest !== process.stdout && + dest !== process.stderr; + + var endFn = doEnd ? onend : cleanup; + if (state.endEmitted) + process.nextTick(endFn); + else + src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable) { + if (readable !== src) return; + cleanup(); + } + + function 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); + + function 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); + + // 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 (!dest._writableState || dest._writableState.needDrain) + ondrain(); + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + unpipe(); + dest.removeListener('error', onerror); + if (EE.listenerCount(dest, 'error') === 0) + dest.emit('error', er); + } + // This is a brutally ugly hack to make sure that our error handler + // is attached before any userland ones. NEVER DO THIS. + if (!dest._events || !dest._events.error) + dest.on('error', onerror); + else if (Array.isArray(dest._events.error)) + dest._events.error.unshift(onerror); + else + dest._events.error = [onerror, dest._events.error]; + + + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function 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) { + // the handler that waits for readable events after all + // the data gets sucked out in flow. + // This would be easier to follow with a .once() handler + // in flow(), but that is too slow. + this.on('readable', pipeOnReadable); + + state.flowing = true; + process.nextTick(function() { + flow(src); + }); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function() { + var dest = this; + var state = src._readableState; + state.awaitDrain--; + if (state.awaitDrain === 0) + flow(src); + }; +} + +function flow(src) { + var state = src._readableState; + var chunk; + state.awaitDrain = 0; + + function write(dest, i, list) { + var written = dest.write(chunk); + if (false === written) { + state.awaitDrain++; + } + } + + while (state.pipesCount && null !== (chunk = src.read())) { + + if (state.pipesCount === 1) + write(state.pipes, 0, null); + else + state.pipes.forEach(write); + + src.emit('data', chunk); + + // if anyone needs a drain, then we have to wait for that. + if (state.awaitDrain > 0) + return; + } + + // if every destination was unpiped, either before entering this + // function, or in the while loop, then stop flowing. + // + // NB: This is a pretty rare edge case. + if (state.pipesCount === 0) { + state.flowing = false; + + // if there were data event listeners added, then switch to old mode. + if (EE.listenerCount(src, 'data') > 0) + emitDataEvents(src); + return; + } + + // at this point, no one needed a drain, so we just ran out of data + // on the next readable event, start it over again. + state.ranOut = true; +} + +function pipeOnReadable() { + if (this._readableState.ranOut) { + this._readableState.ranOut = false; + flow(this); + } +} + + +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; + this.removeListener('readable', pipeOnReadable); + 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; + this.removeListener('readable', pipeOnReadable); + 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 = state.pipes.indexOf(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 (ev === 'data' && !this._readableState.flowing) + emitDataEvents(this); + + if (ev === 'readable' && this.readable) { + var state = this._readableState; + if (!state.readableListening) { + state.readableListening = true; + state.emittedReadable = false; + state.needReadable = true; + if (!state.reading) { + this.read(0); + } else if (state.length) { + emitReadable(this, state); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +// 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() { + emitDataEvents(this); + this.read(0); + this.emit('resume'); +}; + +Readable.prototype.pause = function() { + emitDataEvents(this, true); + this.emit('pause'); +}; + +function emitDataEvents(stream, startPaused) { + var state = stream._readableState; + + if (state.flowing) { + // https://github.com/isaacs/readable-stream/issues/16 + throw new Error('Cannot switch to old mode now.'); + } + + var paused = startPaused || false; + var readable = false; + + // convert to an old-style stream. + stream.readable = true; + stream.pipe = Stream.prototype.pipe; + stream.on = stream.addListener = Stream.prototype.on; + + stream.on('readable', function() { + readable = true; + + var c; + while (!paused && (null !== (c = stream.read()))) + stream.emit('data', c); + + if (c === null) { + readable = false; + stream._readableState.needReadable = true; + } + }); + + stream.pause = function() { + paused = true; + this.emit('pause'); + }; + + stream.resume = function() { + paused = false; + if (readable) + process.nextTick(function() { + stream.emit('readable'); + }); + else + this.read(0); + this.emit('resume'); + }; + + // now make it start, just in case it hadn't already. + stream.emit('readable'); +} + +// 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() { + 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) { + if (state.decoder) + chunk = state.decoder.write(chunk); + if (!chunk || !state.objectMode && !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 (typeof stream[i] === 'function' && + typeof this[i] === 'undefined') { + this[i] = function(method) { return function() { + return stream[method].apply(stream, arguments); + }}(i); + } + } + + // proxy certain important events. + var events = ['error', 'close', 'destroy', 'pause', 'resume']; + events.forEach(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) { + 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 + 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 = new Buffer(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.calledRead) { + state.ended = true; + process.nextTick(function() { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } + }); + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js new file mode 100644 index 00000000..707e4b3b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js @@ -0,0 +1,205 @@ +// 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. + + +// 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. + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); +var util = require('util'); +util.inherits(Transform, Duplex); + + +function TransformState(options, stream) { + this.afterTransform = function(er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = 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); + + if (cb) + 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); + + var ts = this._transformState = new TransformState(options, 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; + + this.once('finish', function() { + if ('function' === typeof this._flush) + 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 rs = stream._readableState; + 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); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js new file mode 100644 index 00000000..9eaf4ec2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js @@ -0,0 +1,371 @@ +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, cb), and it'll handle all +// the drain event emission and buffering. + +module.exports = Writable; +Writable.WritableState = WritableState; + +var util = require('util'); +var assert = require('assert'); +var Stream = require('stream'); + +util.inherits(Writable, Stream); + +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; +} + +function WritableState(options, stream) { + options = options || {}; + + // 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; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + // 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; + + // 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, becuase 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.buffer = []; +} + +function Writable(options) { + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. + if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) + return new Writable(options); + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + 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, state, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + process.nextTick(function() { + 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; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode) { + var er = new TypeError('Invalid non-string/buffer chunk'); + stream.emit('error', er); + process.nextTick(function() { + 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 = function() {}; + + if (state.ended) + writeAfterEnd(this, state, cb); + else if (validChunk(this, state, chunk, cb)) + ret = writeOrBuffer(this, state, chunk, encoding, cb); + + return ret; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && + state.decodeStrings !== false && + typeof chunk === 'string') { + chunk = new Buffer(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.buffer.push(new WriteReq(chunk, encoding, cb)); + else + doWrite(stream, state, len, chunk, encoding, cb); + + return ret; +} + +function doWrite(stream, state, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + if (sync) + process.nextTick(function() { + cb(er); + }); + else + cb(er); + + 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(stream, state); + + if (!finished && !state.bufferProcessing && state.buffer.length) + clearBuffer(stream, state); + + if (sync) { + process.nextTick(function() { + afterWrite(stream, state, finished, cb); + }); + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) + onwriteDrain(stream, state); + cb(); + if (finished) + 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; + + for (var c = 0; c < state.buffer.length; c++) { + var entry = state.buffer[c]; + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, len, chunk, encoding, cb); + + // 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) { + c++; + break; + } + } + + state.bufferProcessing = false; + if (c < state.buffer.length) + state.buffer = state.buffer.slice(c); + else + state.buffer.length = 0; +} + +Writable.prototype._write = function(chunk, encoding, cb) { + cb(new Error('not implemented')); +}; + +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 (typeof chunk !== 'undefined' && chunk !== null) + this.write(chunk, encoding); + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) + endWritable(this, state, cb); +}; + + +function needFinish(stream, state) { + return (state.ending && + state.length === 0 && + !state.finished && + !state.writing); +} + +function finishMaybe(stream, state) { + var need = needFinish(stream, state); + if (need) { + state.finished = true; + stream.emit('finish'); + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) + process.nextTick(cb); + else + stream.once('finish', cb); + } + state.ended = true; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore new file mode 100644 index 00000000..b512c09d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE new file mode 100644 index 00000000..6de584a4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE @@ -0,0 +1,20 @@ +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. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md new file mode 100644 index 00000000..4d2aa001 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md @@ -0,0 +1,7 @@ +**string_decoder.js** (`require('string_decoder')`) from Node.js core + +Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. + +Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** + +The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js new file mode 100755 index 00000000..46470cfd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js @@ -0,0 +1,94 @@ +#!/usr/bin/env node + +const hyperquest = require('hyperzip')(require('hyperdirect')) + , bl = require('bl') + , fs = require('fs') + , path = require('path') + , cheerio = require('cheerio') + + , files = require('./files') + , testReplace = require('./test-replacements') + + , srcurlpfx = 'https://raw.github.com/joyent/node/v' + process.argv[2] + '-release/' + , libsrcurl = srcurlpfx + 'lib/' + , testsrcurl = srcurlpfx + 'test/simple/' + , testlisturl = 'https://github.com/joyent/node/tree/v' + process.argv[2] + '-release/test/simple' + , libourroot = path.join(__dirname, '../') + , testourroot = path.join(__dirname, '../test/simple/') + + +function processFile (url, out, replacements) { + hyperquest(url).pipe(bl(function (err, data) { + if (err) + throw err + + data = data.toString() + replacements.forEach(function (replacement) { + data = data.replace.apply(data, replacement) + }) + + fs.writeFile(out, data, 'utf8', function (err) { + if (err) + throw err + + console.log('Wrote', out) + }) + })) +} + +function processLibFile (file) { + var replacements = files[file] + , url = libsrcurl + file + , out = path.join(libourroot, replacements.out || file) + + processFile(url, out, replacements) +} + + +function processTestFile (file) { + var replacements = testReplace.all + , url = testsrcurl + file + , out = path.join(testourroot, file) + + if (testReplace[file]) + replacements = replacements.concat(testReplace[file]) + + processFile(url, out, replacements) +} + + +if (!/0\.1\d\.\d+/.test(process.argv[2])) { + console.log('Usage: build.js ') + return process.exit(-1) +} + + +//-------------------------------------------------------------------- +// Grab & process files in ../lib/ + +Object.keys(files).forEach(processLibFile) + +//-------------------------------------------------------------------- +// Discover, grab and process all test-string-decoder* files on joyent/node + +hyperquest(testlisturl).pipe(bl(function (err, data) { + if (err) + throw err + + var $ = cheerio.load(data.toString()) + + $('table.files .js-directory-link').each(function () { + var file = $(this).text() + if (/^test-string-decoder/.test(file) || file == 'common.js') + processTestFile(file) + }) +})) + +//-------------------------------------------------------------------- +// Grab the joyent/node test/common.js + +processFile( + testsrcurl + '../common.js' + , path.join(testourroot, '../common.js') + , testReplace['common.js'] +) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js new file mode 100644 index 00000000..7396a4f4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js @@ -0,0 +1,36 @@ +/* This file lists the files to be fetched from the node repo + * in the /lib/ directory which will be placed in the ../lib/ + * directory after having each of the "replacements" in the + * array for that file applied to it. The replacements are + * simply the arguments to String#replace, so they can be + * strings, regexes, functions. + */ + +module.exports['string_decoder.js'] = [ + + // pull in Bufer as a require + // add Buffer.isEncoding where missing + [ + /^(\/\/ USE OR OTHER DEALINGS IN THE SOFTWARE\.)/m + , '$1\n\nvar Buffer = require(\'buffer\').Buffer;' + + '\n' + + '\nvar isBufferEncoding = Buffer.isEncoding' + + '\n || function(encoding) {' + + '\n switch (encoding && encoding.toLowerCase()) {' + + '\n 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;' + + '\n default: return false;' + + '\n }' + + '\n }' + + '\n' + + ] + + // use custom Buffer.isEncoding reference + , [ + /Buffer\.isEncoding\(/g + , 'isBufferEncoding\(' + ] + +] + +module.exports['string_decoder.js'].out = 'index.js' \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json new file mode 100644 index 00000000..f7ee6a46 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json @@ -0,0 +1,12 @@ +{ + "name": "string_decoder-build", + "version": "0.0.0", + "description": "", + "main": "build.js", + "dependencies": { + "bl": "~0.6.0", + "hyperzip": "0.0.0", + "hyperdirect": "0.0.0", + "cheerio": "~0.13.1" + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js new file mode 100644 index 00000000..5bbf6028 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js @@ -0,0 +1,24 @@ +module.exports.all = [ + [ + /require\(['"]string_decoder['"]\)/g + , 'require(\'../../\')' + ] + +] + +module.exports['common.js'] = [ + [ + /^ setImmediate,$/m + , ' typeof setImmediate == \'undefined\' ? null : setImmediate,' + ] + + , [ + /^ clearImmediate,$/m + , ' typeof clearImmediate == \'undefined\' ? null : clearImmediate,' + ] + + , [ + /^ global];$/m + , ' global].filter(Boolean);' + ] +] diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js new file mode 100644 index 00000000..2e44a03e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js @@ -0,0 +1,200 @@ +// 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); + } +} + +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; + } + + this.charBuffer = new Buffer(6); + this.charReceived = 0; + this.charLength = 0; +}; + + +StringDecoder.prototype.write = function(buffer) { + var charStr = ''; + var offset = 0; + + // 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 i = (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, offset, i); + this.charReceived += (i - offset); + offset = i; + + if (this.charReceived < this.charLength) { + // still not enough chars in this buffer? wait for more ... + return ''; + } + + // get the character that was split + charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); + + // 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 (i == buffer.length) return charStr; + + // otherwise cut off the characters end from the beginning of this buffer + buffer = buffer.slice(i, buffer.length); + break; + } + + var lenIncomplete = this.detectIncompleteChar(buffer); + + var end = buffer.length; + if (this.charLength) { + // buffer the incomplete character bytes we got + buffer.copy(this.charBuffer, 0, buffer.length - lenIncomplete, end); + this.charReceived = lenIncomplete; + end -= lenIncomplete; + } + + charStr += buffer.toString(this.encoding, 0, end); + + var end = charStr.length - 1; + var charCode = charStr.charCodeAt(end); + // 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); + this.charBuffer.write(charStr.charAt(charStr.length - 1), this.encoding); + return charStr.substring(0, end); + } + + // or just emit the charStr + return charStr; +}; + +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; + } + } + + return 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) { + var incomplete = this.charReceived = buffer.length % 2; + this.charLength = incomplete ? 2 : 0; + return incomplete; +} + +function base64DetectIncompleteChar(buffer) { + var incomplete = this.charReceived = buffer.length % 3; + this.charLength = incomplete ? 3 : 0; + return incomplete; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json new file mode 100644 index 00000000..c7cac1a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json @@ -0,0 +1,36 @@ +{ + "name": "string_decoder", + "version": "0.10.25", + "description": "The string_decoder module from Node core", + "main": "index.js", + "dependencies": {}, + "devDependencies": { + "tap": "~0.4.8" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/rvagg/string_decoder.git" + }, + "homepage": "https://github.com/rvagg/string_decoder", + "keywords": [ + "string", + "decoder", + "browser", + "browserify" + ], + "license": "MIT", + "readme": "**string_decoder.js** (`require('string_decoder')`) from Node.js core\n\nCopyright Joyent, Inc. and other Node contributors. See LICENCE file for details.\n\nVersion numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.**\n\nThe *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version.", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/rvagg/string_decoder/issues" + }, + "_id": "string_decoder@0.10.25", + "dist": { + "shasum": "aa026a29a0177ff13c8df4472dcda2f26d646900" + }, + "_from": "string_decoder@~0.10.x", + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js new file mode 100644 index 00000000..ed5ff08d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js @@ -0,0 +1,200 @@ +// 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 path = require('path'); +var assert = require('assert'); + +exports.testDir = path.dirname(__filename); +exports.fixturesDir = path.join(exports.testDir, 'fixtures'); +exports.libDir = path.join(exports.testDir, '../lib'); +exports.tmpDir = path.join(exports.testDir, 'tmp'); +exports.PORT = +process.env.NODE_COMMON_PORT || 12346; + +if (process.platform === 'win32') { + exports.PIPE = '\\\\.\\pipe\\libuv-test'; +} else { + exports.PIPE = exports.tmpDir + '/test.sock'; +} + +var util = require('util'); +for (var i in util) exports[i] = util[i]; +//for (var i in exports) global[i] = exports[i]; + +function protoCtrChain(o) { + var result = []; + for (; o; o = o.__proto__) { result.push(o.constructor); } + return result.join(); +} + +exports.indirectInstanceOf = function(obj, cls) { + if (obj instanceof cls) { return true; } + var clsChain = protoCtrChain(cls.prototype); + var objChain = protoCtrChain(obj); + return objChain.slice(-clsChain.length) === clsChain; +}; + + +exports.ddCommand = function(filename, kilobytes) { + if (process.platform === 'win32') { + var p = path.resolve(exports.fixturesDir, 'create-file.js'); + return '"' + process.argv[0] + '" "' + p + '" "' + + filename + '" ' + (kilobytes * 1024); + } else { + return 'dd if=/dev/zero of="' + filename + '" bs=1024 count=' + kilobytes; + } +}; + + +exports.spawnCat = function(options) { + var spawn = require('child_process').spawn; + + if (process.platform === 'win32') { + return spawn('more', [], options); + } else { + return spawn('cat', [], options); + } +}; + + +exports.spawnPwd = function(options) { + var spawn = require('child_process').spawn; + + if (process.platform === 'win32') { + return spawn('cmd.exe', ['/c', 'cd'], options); + } else { + return spawn('pwd', [], options); + } +}; + + +// Turn this off if the test should not check for global leaks. +exports.globalCheck = true; + +process.on('exit', function() { + if (!exports.globalCheck) return; + var knownGlobals = [setTimeout, + setInterval, + typeof setImmediate == 'undefined' ? null : setImmediate, + clearTimeout, + clearInterval, + typeof clearImmediate == 'undefined' ? null : clearImmediate, + console, + Buffer, + process, + global].filter(Boolean); + + if (global.gc) { + knownGlobals.push(gc); + } + + if (global.DTRACE_HTTP_SERVER_RESPONSE) { + knownGlobals.push(DTRACE_HTTP_SERVER_RESPONSE); + knownGlobals.push(DTRACE_HTTP_SERVER_REQUEST); + knownGlobals.push(DTRACE_HTTP_CLIENT_RESPONSE); + knownGlobals.push(DTRACE_HTTP_CLIENT_REQUEST); + knownGlobals.push(DTRACE_NET_STREAM_END); + knownGlobals.push(DTRACE_NET_SERVER_CONNECTION); + knownGlobals.push(DTRACE_NET_SOCKET_READ); + knownGlobals.push(DTRACE_NET_SOCKET_WRITE); + } + if (global.COUNTER_NET_SERVER_CONNECTION) { + knownGlobals.push(COUNTER_NET_SERVER_CONNECTION); + knownGlobals.push(COUNTER_NET_SERVER_CONNECTION_CLOSE); + knownGlobals.push(COUNTER_HTTP_SERVER_REQUEST); + knownGlobals.push(COUNTER_HTTP_SERVER_RESPONSE); + knownGlobals.push(COUNTER_HTTP_CLIENT_REQUEST); + knownGlobals.push(COUNTER_HTTP_CLIENT_RESPONSE); + } + + if (global.ArrayBuffer) { + knownGlobals.push(ArrayBuffer); + knownGlobals.push(Int8Array); + knownGlobals.push(Uint8Array); + knownGlobals.push(Uint8ClampedArray); + knownGlobals.push(Int16Array); + knownGlobals.push(Uint16Array); + knownGlobals.push(Int32Array); + knownGlobals.push(Uint32Array); + knownGlobals.push(Float32Array); + knownGlobals.push(Float64Array); + knownGlobals.push(DataView); + } + + for (var x in global) { + var found = false; + + for (var y in knownGlobals) { + if (global[x] === knownGlobals[y]) { + found = true; + break; + } + } + + if (!found) { + console.error('Unknown global: %s', x); + assert.ok(false, 'Unknown global found'); + } + } +}); + + +var mustCallChecks = []; + + +function runCallChecks(exitCode) { + if (exitCode !== 0) return; + + var failed = mustCallChecks.filter(function(context) { + return context.actual !== context.expected; + }); + + failed.forEach(function(context) { + console.log('Mismatched %s function calls. Expected %d, actual %d.', + context.name, + context.expected, + context.actual); + console.log(context.stack.split('\n').slice(2).join('\n')); + }); + + if (failed.length) process.exit(1); +} + + +exports.mustCall = function(fn, expected) { + if (typeof expected !== 'number') expected = 1; + + var context = { + expected: expected, + actual: 0, + stack: (new Error).stack, + name: fn.name || '' + }; + + // add the exit listener only once to avoid listener leak warnings + if (mustCallChecks.length === 0) process.on('exit', runCallChecks); + + mustCallChecks.push(context); + + return function() { + context.actual++; + return fn.apply(this, arguments); + }; +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js new file mode 100644 index 00000000..869a4116 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js @@ -0,0 +1,75 @@ +// 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. + +// verify that the string decoder works getting 1 byte at a time, +// the whole buffer at once, and that both match the .toString(enc) +// result of the entire buffer. + +var assert = require('assert'); +var SD = require('../../').StringDecoder; +var encodings = ['base64', 'hex', 'utf8', 'utf16le', 'ucs2']; + +var bufs = [ '☃💩', 'asdf' ].map(function(b) { + return new Buffer(b); +}); + +// also test just arbitrary bytes from 0-15. +for (var i = 1; i <= 16; i++) { + var bytes = new Array(i).join('.').split('.').map(function(_, j) { + return j + 0x78; + }); + bufs.push(new Buffer(bytes)); +} + +encodings.forEach(testEncoding); + +console.log('ok'); + +function testEncoding(encoding) { + bufs.forEach(function(buf) { + testBuf(encoding, buf); + }); +} + +function testBuf(encoding, buf) { + console.error('# %s', encoding, buf); + + // write one byte at a time. + var s = new SD(encoding); + var res1 = ''; + for (var i = 0; i < buf.length; i++) { + res1 += s.write(buf.slice(i, i + 1)); + } + res1 += s.end(); + + // write the whole buffer at once. + var res2 = ''; + var s = new SD(encoding); + res2 += s.write(buf); + res2 += s.end(); + + // .toString() on the buffer + var res3 = buf.toString(encoding); + + console.log('expect=%j', res3); + assert.equal(res1, res3, 'one byte at a time should match toString'); + assert.equal(res2, res3, 'all bytes at once should match toString'); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js new file mode 100644 index 00000000..7f69f7ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js @@ -0,0 +1,163 @@ +// 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 common = require('../common'); +var assert = require('assert'); +var StringDecoder = require('../../').StringDecoder; +var decoder = new StringDecoder('utf8'); + + + +var buffer = new Buffer('$'); +assert.deepEqual('$', decoder.write(buffer)); + +buffer = new Buffer('¢'); +assert.deepEqual('', decoder.write(buffer.slice(0, 1))); +assert.deepEqual('¢', decoder.write(buffer.slice(1, 2))); + +buffer = new Buffer('€'); +assert.deepEqual('', decoder.write(buffer.slice(0, 1))); +assert.deepEqual('', decoder.write(buffer.slice(1, 2))); +assert.deepEqual('€', decoder.write(buffer.slice(2, 3))); + +buffer = new Buffer([0xF0, 0xA4, 0xAD, 0xA2]); +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); +s += decoder.write(buffer.slice(2, 3)); +s += decoder.write(buffer.slice(3, 4)); +assert.ok(s.length > 0); + +// CESU-8 +buffer = new Buffer('EDA0BDEDB18D', 'hex'); // THUMBS UP SIGN (in CESU-8) +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); +s += decoder.write(buffer.slice(2, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 4)); +s += decoder.write(buffer.slice(4, 5)); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 2)); +s += decoder.write(buffer.slice(2, 4)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(4, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 4)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(4, 5)); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 5)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 6)); +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + + +// UCS-2 +decoder = new StringDecoder('ucs2'); +buffer = new Buffer('ab', 'ucs2'); +assert.equal(decoder.write(buffer), 'ab'); // 2 complete chars +buffer = new Buffer('abc', 'ucs2'); +assert.equal(decoder.write(buffer.slice(0, 3)), 'a'); // 'a' and first of 'b' +assert.equal(decoder.write(buffer.slice(3, 6)), 'bc'); // second of 'b' and 'c' + + +// UTF-16LE +buffer = new Buffer('3DD84DDC', 'hex'); // THUMBS UP SIGN (in CESU-8) +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(2, 3)); +s += decoder.write(buffer.slice(3, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 2)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(2, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 4)); +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + + +// A mixed ascii and non-ascii string +// Test stolen from deps/v8/test/cctest/test-strings.cc +// U+02E4 -> CB A4 +// U+0064 -> 64 +// U+12E4 -> E1 8B A4 +// U+0030 -> 30 +// U+3045 -> E3 81 85 +var expected = '\u02e4\u0064\u12e4\u0030\u3045'; +var buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4, + 0x30, 0xE3, 0x81, 0x85]); +var charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5]; + +// Split the buffer into 3 segments +// |----|------|-------| +// 0 i j buffer.length +// Scan through every possible 3 segment combination +// and make sure that the string is always parsed. +common.print('scanning '); +for (var j = 2; j < buffer.length; j++) { + for (var i = 1; i < j; i++) { + var decoder = new StringDecoder('utf8'); + + var sum = decoder.write(buffer.slice(0, i)); + + // just check that we've received the right amount + // after the first write + assert.equal(charLengths[i], sum.length); + + sum += decoder.write(buffer.slice(i, j)); + sum += decoder.write(buffer.slice(j, buffer.length)); + assert.equal(expected, sum); + common.print('.'); + } +} +console.log(' crayon!'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json new file mode 100644 index 00000000..c9e268d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json @@ -0,0 +1,42 @@ +{ + "name": "readable-stream", + "version": "1.0.25", + "description": "An exploration of a new kind of readable streams for Node.js", + "main": "readable.js", + "dependencies": { + "string_decoder": "~0.10.x" + }, + "devDependencies": { + "tap": "~0.2.6" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/readable-stream" + }, + "keywords": [ + "readable", + "stream", + "pipe" + ], + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "license": "BSD", + "readme": "# readable-stream\n\nA new class of streams for Node.js\n\nThis module provides the new Stream base classes introduced in Node\nv0.10, for use in Node v0.8. You can use it to have programs that\nhave to work with node v0.8, while being forward-compatible for v0.10\nand beyond. When you drop support for v0.8, you can remove this\nmodule, and only use the native streams.\n\nThis is almost exactly the same codebase as appears in Node v0.10.\nHowever:\n\n1. The exported object is actually the Readable class. Decorating the\n native `stream` module would be global pollution.\n2. In v0.10, you can safely use `base64` as an argument to\n `setEncoding` in Readable streams. However, in v0.8, the\n StringDecoder class has no `end()` method, which is problematic for\n Base64. So, don't use that, because it'll break and be weird.\n\nOther than that, the API is the same as `require('stream')` in v0.10,\nso the API docs are reproduced below.\n\n----------\n\n Stability: 2 - Unstable\n\nA stream is an abstract interface implemented by various objects in\nNode. For example a request to an HTTP server is a stream, as is\nstdout. Streams are readable, writable, or both. All streams are\ninstances of [EventEmitter][]\n\nYou can load the Stream base classes by doing `require('stream')`.\nThere are base classes provided for Readable streams, Writable\nstreams, Duplex streams, and Transform streams.\n\n## Compatibility\n\nIn earlier versions of Node, the Readable stream interface was\nsimpler, but also less powerful and less useful.\n\n* Rather than waiting for you to call the `read()` method, `'data'`\n events would start emitting immediately. If you needed to do some\n I/O to decide how to handle data, then you had to store the chunks\n in some kind of buffer so that they would not be lost.\n* The `pause()` method was advisory, rather than guaranteed. This\n meant that you still had to be prepared to receive `'data'` events\n even when the stream was in a paused state.\n\nIn Node v0.10, the Readable class described below was added. For\nbackwards compatibility with older Node programs, Readable streams\nswitch into \"old mode\" when a `'data'` event handler is added, or when\nthe `pause()` or `resume()` methods are called. The effect is that,\neven if you are not using the new `read()` method and `'readable'`\nevent, you no longer have to worry about losing `'data'` chunks.\n\nMost programs will continue to function normally. However, this\nintroduces an edge case in the following conditions:\n\n* No `'data'` event handler is added.\n* The `pause()` and `resume()` methods are never called.\n\nFor example, consider the following code:\n\n```javascript\n// WARNING! BROKEN!\nnet.createServer(function(socket) {\n\n // we add an 'end' method, but never consume the data\n socket.on('end', function() {\n // It will never get here.\n socket.end('I got your message (but didnt read it)\\n');\n });\n\n}).listen(1337);\n```\n\nIn versions of node prior to v0.10, the incoming message data would be\nsimply discarded. However, in Node v0.10 and beyond, the socket will\nremain paused forever.\n\nThe workaround in this situation is to call the `resume()` method to\ntrigger \"old mode\" behavior:\n\n```javascript\n// Workaround\nnet.createServer(function(socket) {\n\n socket.on('end', function() {\n socket.end('I got your message (but didnt read it)\\n');\n });\n\n // start the flow of data, discarding it.\n socket.resume();\n\n}).listen(1337);\n```\n\nIn addition to new Readable streams switching into old-mode, pre-v0.10\nstyle streams can be wrapped in a Readable class using the `wrap()`\nmethod.\n\n## Class: stream.Readable\n\n\n\nA `Readable Stream` has the following methods, members, and events.\n\nNote that `stream.Readable` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nmethod. (See below.)\n\n### new stream.Readable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} The maximum number of bytes to store in\n the internal buffer before ceasing to read from the underlying\n resource. Default=16kb\n * `encoding` {String} If specified, then buffers will be decoded to\n strings using the specified encoding. Default=null\n * `objectMode` {Boolean} Whether this stream should behave\n as a stream of objects. Meaning that stream.read(n) returns\n a single value instead of a Buffer of size n\n\nIn classes that extend the Readable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### readable.\\_read(size)\n\n* `size` {Number} Number of bytes to read asynchronously\n\nNote: **This function should NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Readable\nclass methods only.\n\nAll Readable stream implementations must provide a `_read` method\nto fetch data from the underlying resource.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\nWhen data is available, put it into the read queue by calling\n`readable.push(chunk)`. If `push` returns false, then you should stop\nreading. When `_read` is called again, you should start pushing more\ndata.\n\nThe `size` argument is advisory. Implementations where a \"read\" is a\nsingle call that returns data can use this to know how much data to\nfetch. Implementations where that is not relevant, such as TCP or\nTLS, may ignore this argument, and simply provide data whenever it\nbecomes available. There is no need, for example to \"wait\" until\n`size` bytes are available before calling `stream.push(chunk)`.\n\n### readable.push(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to push into the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nNote: **This function should be called by Readable implementors, NOT\nby consumers of Readable subclasses.** The `_read()` function will not\nbe called again until at least one `push(chunk)` call is made. If no\ndata is available, then you MAY call `push('')` (an empty string) to\nallow a future `_read` call, without adding any data to the queue.\n\nThe `Readable` class works by putting data into a read queue to be\npulled out later by calling the `read()` method when the `'readable'`\nevent fires.\n\nThe `push()` method will explicitly insert some data into the read\nqueue. If it is called with `null` then it will signal the end of the\ndata.\n\nIn some cases, you may be wrapping a lower-level source which has some\nsort of pause/resume mechanism, and a data callback. In those cases,\nyou could wrap the low-level source object by doing something like\nthis:\n\n```javascript\n// source is an object with readStop() and readStart() methods,\n// and an `ondata` member that gets called when it has data, and\n// an `onend` member that gets called when the data is over.\n\nvar stream = new Readable();\n\nsource.ondata = function(chunk) {\n // if push() returns false, then we need to stop reading from source\n if (!stream.push(chunk))\n source.readStop();\n};\n\nsource.onend = function() {\n stream.push(null);\n};\n\n// _read will be called when the stream wants to pull more data in\n// the advisory size argument is ignored in this case.\nstream._read = function(n) {\n source.readStart();\n};\n```\n\n### readable.unshift(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nThis is the corollary of `readable.push(chunk)`. Rather than putting\nthe data at the *end* of the read queue, it puts it at the *front* of\nthe read queue.\n\nThis is useful in certain use-cases where a stream is being consumed\nby a parser, which needs to \"un-consume\" some data that it has\noptimistically pulled out of the source.\n\n```javascript\n// A parser for a simple data protocol.\n// The \"header\" is a JSON object, followed by 2 \\n characters, and\n// then a message body.\n//\n// Note: This can be done more simply as a Transform stream. See below.\n\nfunction SimpleProtocol(source, options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Readable.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n\n // source is a readable stream, such as a socket or file\n this._source = source;\n\n var self = this;\n source.on('end', function() {\n self.push(null);\n });\n\n // give it a kick whenever the source is readable\n // read(0) will not consume any bytes\n source.on('readable', function() {\n self.read(0);\n });\n\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Readable.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._read = function(n) {\n if (!this._inBody) {\n var chunk = this._source.read();\n\n // if the source doesn't have data, we don't have data yet.\n if (chunk === null)\n return this.push('');\n\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // '\\n'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n this.push('');\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit('error', new Error('invalid simple protocol data'));\n return;\n }\n // now, because we got some extra data, unshift the rest\n // back into the read queue so that our consumer will see it.\n var b = chunk.slice(split);\n this.unshift(b);\n\n // and let them know that we are done parsing the header.\n this.emit('header', this.header);\n }\n } else {\n // from there on, just provide the data to our consumer.\n // careful not to push(null), since that would indicate EOF.\n var chunk = this._source.read();\n if (chunk) this.push(chunk);\n }\n};\n\n// Usage:\nvar parser = new SimpleProtocol(source);\n// Now parser is a readable stream that will emit 'header'\n// with the parsed header data.\n```\n\n### readable.wrap(stream)\n\n* `stream` {Stream} An \"old style\" readable stream\n\nIf you are using an older Node library that emits `'data'` events and\nhas a `pause()` method that is advisory only, then you can use the\n`wrap()` method to create a Readable stream that uses the old stream\nas its data source.\n\nFor example:\n\n```javascript\nvar OldReader = require('./old-api-module.js').OldReader;\nvar oreader = new OldReader;\nvar Readable = require('stream').Readable;\nvar myReader = new Readable().wrap(oreader);\n\nmyReader.on('readable', function() {\n myReader.read(); // etc.\n});\n```\n\n### Event: 'readable'\n\nWhen there is data ready to be consumed, this event will fire.\n\nWhen this event emits, call the `read()` method to consume the data.\n\n### Event: 'end'\n\nEmitted when the stream has received an EOF (FIN in TCP terminology).\nIndicates that no more `'data'` events will happen. If the stream is\nalso writable, it may be possible to continue writing.\n\n### Event: 'data'\n\nThe `'data'` event emits either a `Buffer` (by default) or a string if\n`setEncoding()` was used.\n\nNote that adding a `'data'` event listener will switch the Readable\nstream into \"old mode\", where data is emitted as soon as it is\navailable, rather than waiting for you to call `read()` to consume it.\n\n### Event: 'error'\n\nEmitted if there was an error receiving data.\n\n### Event: 'close'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### readable.setEncoding(encoding)\n\nMakes the `'data'` event emit a string instead of a `Buffer`. `encoding`\ncan be `'utf8'`, `'utf16le'` (`'ucs2'`), `'ascii'`, or `'hex'`.\n\nThe encoding can also be set by specifying an `encoding` field to the\nconstructor.\n\n### readable.read([size])\n\n* `size` {Number | null} Optional number of bytes to read.\n* Return: {Buffer | String | null}\n\nNote: **This function SHOULD be called by Readable stream users.**\n\nCall this method to consume data once the `'readable'` event is\nemitted.\n\nThe `size` argument will set a minimum number of bytes that you are\ninterested in. If not set, then the entire content of the internal\nbuffer is returned.\n\nIf there is no data to consume, or if there are fewer bytes in the\ninternal buffer than the `size` argument, then `null` is returned, and\na future `'readable'` event will be emitted when more is available.\n\nCalling `stream.read(0)` will always return `null`, and will trigger a\nrefresh of the internal buffer, but otherwise be a no-op.\n\n### readable.pipe(destination, [options])\n\n* `destination` {Writable Stream}\n* `options` {Object} Optional\n * `end` {Boolean} Default=true\n\nConnects this readable stream to `destination` WriteStream. Incoming\ndata on this stream gets written to `destination`. Properly manages\nback-pressure so that a slow destination will not be overwhelmed by a\nfast readable stream.\n\nThis function returns the `destination` stream.\n\nFor example, emulating the Unix `cat` command:\n\n process.stdin.pipe(process.stdout);\n\nBy default `end()` is called on the destination when the source stream\nemits `end`, so that `destination` is no longer writable. Pass `{ end:\nfalse }` as `options` to keep the destination stream open.\n\nThis keeps `writer` open so that \"Goodbye\" can be written at the\nend.\n\n reader.pipe(writer, { end: false });\n reader.on(\"end\", function() {\n writer.end(\"Goodbye\\n\");\n });\n\nNote that `process.stderr` and `process.stdout` are never closed until\nthe process exits, regardless of the specified options.\n\n### readable.unpipe([destination])\n\n* `destination` {Writable Stream} Optional\n\nUndo a previously established `pipe()`. If no destination is\nprovided, then all previously established pipes are removed.\n\n### readable.pause()\n\nSwitches the readable stream into \"old mode\", where data is emitted\nusing a `'data'` event rather than being buffered for consumption via\nthe `read()` method.\n\nCeases the flow of data. No `'data'` events are emitted while the\nstream is in a paused state.\n\n### readable.resume()\n\nSwitches the readable stream into \"old mode\", where data is emitted\nusing a `'data'` event rather than being buffered for consumption via\nthe `read()` method.\n\nResumes the incoming `'data'` events after a `pause()`.\n\n\n## Class: stream.Writable\n\n\n\nA `Writable` Stream has the following methods, members, and events.\n\nNote that `stream.Writable` is an abstract class designed to be\nextended with an underlying implementation of the\n`_write(chunk, encoding, cb)` method. (See below.)\n\n### new stream.Writable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} Buffer level when `write()` starts\n returning false. Default=16kb\n * `decodeStrings` {Boolean} Whether or not to decode strings into\n Buffers before passing them to `_write()`. Default=true\n\nIn classes that extend the Writable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### writable.\\_write(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be written. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. Ignore chunk is a buffer. Note that chunk will\n **always** be a buffer unless the `decodeStrings` option is\n explicitly set to `false`.\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nAll Writable stream implementations must provide a `_write` method to\nsend data to the underlying resource.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Writable\nclass methods only.\n\nCall the callback using the standard `callback(error)` pattern to\nsignal that the write completed successfully or with an error.\n\nIf the `decodeStrings` flag is set in the constructor options, then\n`chunk` may be a string rather than a Buffer, and `encoding` will\nindicate the sort of string that it is. This is to support\nimplementations that have an optimized handling for certain string\ndata encodings. If you do not explicitly set the `decodeStrings`\noption to `false`, then you can safely ignore the `encoding` argument,\nand assume that `chunk` will always be a Buffer.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n\n### writable.write(chunk, [encoding], [callback])\n\n* `chunk` {Buffer | String} Data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `'utf8'`\n* `callback` {Function} Optional. Called when this chunk is\n successfully written.\n* Returns {Boolean}\n\nWrites `chunk` to the stream. Returns `true` if the data has been\nflushed to the underlying resource. Returns `false` to indicate that\nthe buffer is full, and the data will be sent out in the future. The\n`'drain'` event will indicate when the buffer is empty again.\n\nThe specifics of when `write()` will return false, is determined by\nthe `highWaterMark` option provided to the constructor.\n\n### writable.end([chunk], [encoding], [callback])\n\n* `chunk` {Buffer | String} Optional final data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `'utf8'`\n* `callback` {Function} Optional. Called when the final chunk is\n successfully written.\n\nCall this method to signal the end of the data being written to the\nstream.\n\n### Event: 'drain'\n\nEmitted when the stream's write queue empties and it's safe to write\nwithout buffering again. Listen for it when `stream.write()` returns\n`false`.\n\n### Event: 'close'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### Event: 'finish'\n\nWhen `end()` is called and there are no more chunks to write, this\nevent is emitted.\n\n### Event: 'pipe'\n\n* `source` {Readable Stream}\n\nEmitted when the stream is passed to a readable stream's pipe method.\n\n### Event 'unpipe'\n\n* `source` {Readable Stream}\n\nEmitted when a previously established `pipe()` is removed using the\nsource Readable stream's `unpipe()` method.\n\n## Class: stream.Duplex\n\n\n\nA \"duplex\" stream is one that is both Readable and Writable, such as a\nTCP socket connection.\n\nNote that `stream.Duplex` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nand `_write(chunk, encoding, callback)` methods as you would with a Readable or\nWritable stream class.\n\nSince JavaScript doesn't have multiple prototypal inheritance, this\nclass prototypally inherits from Readable, and then parasitically from\nWritable. It is thus up to the user to implement both the lowlevel\n`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method\non extension duplex classes.\n\n### new stream.Duplex(options)\n\n* `options` {Object} Passed to both Writable and Readable\n constructors. Also has the following fields:\n * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then\n the stream will automatically end the readable side when the\n writable side ends and vice versa.\n\nIn classes that extend the Duplex class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n## Class: stream.Transform\n\nA \"transform\" stream is a duplex stream where the output is causally\nconnected in some way to the input, such as a zlib stream or a crypto\nstream.\n\nThere is no requirement that the output be the same size as the input,\nthe same number of chunks, or arrive at the same time. For example, a\nHash stream will only ever have a single chunk of output which is\nprovided when the input is ended. A zlib stream will either produce\nmuch smaller or much larger than its input.\n\nRather than implement the `_read()` and `_write()` methods, Transform\nclasses must implement the `_transform()` method, and may optionally\nalso implement the `_flush()` method. (See below.)\n\n### new stream.Transform([options])\n\n* `options` {Object} Passed to both Writable and Readable\n constructors.\n\nIn classes that extend the Transform class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### transform.\\_transform(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be transformed. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. (Ignore if `decodeStrings` chunk is a buffer.)\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Transform\nclass methods only.\n\nAll Transform stream implementations must provide a `_transform`\nmethod to accept input and produce output.\n\n`_transform` should do whatever has to be done in this specific\nTransform class, to handle the bytes being written, and pass them off\nto the readable portion of the interface. Do asynchronous I/O,\nprocess things, and so on.\n\nCall `transform.push(outputChunk)` 0 or more times to generate output\nfrom this input chunk, depending on how much data you want to output\nas a result of this chunk.\n\nCall the callback function only when the current chunk is completely\nconsumed. Note that there may or may not be output as a result of any\nparticular input chunk.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### transform.\\_flush(callback)\n\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done flushing any remaining data.\n\nNote: **This function MUST NOT be called directly.** It MAY be implemented\nby child classes, and if so, will be called by the internal Transform\nclass methods only.\n\nIn some cases, your transform operation may need to emit a bit more\ndata at the end of the stream. For example, a `Zlib` compression\nstream will store up some internal state so that it can optimally\ncompress the output. At the end, however, it needs to do the best it\ncan with what is left, so that the data will be complete.\n\nIn those cases, you can implement a `_flush` method, which will be\ncalled at the very end, after all the written data is consumed, but\nbefore emitting `end` to signal the end of the readable side. Just\nlike with `_transform`, call `transform.push(chunk)` zero or more\ntimes, as appropriate, and call `callback` when the flush operation is\ncomplete.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### Example: `SimpleProtocol` parser\n\nThe example above of a simple protocol parser can be implemented much\nmore simply by using the higher level `Transform` stream class.\n\nIn this example, rather than providing the input as an argument, it\nwould be piped into the parser, which is a more idiomatic Node stream\napproach.\n\n```javascript\nfunction SimpleProtocol(options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Transform.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Transform.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._transform = function(chunk, encoding, done) {\n if (!this._inBody) {\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // '\\n'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit('error', new Error('invalid simple protocol data'));\n return;\n }\n // and let them know that we are done parsing the header.\n this.emit('header', this.header);\n\n // now, because we got some extra data, emit this first.\n this.push(b);\n }\n } else {\n // from there on, just provide the data to our consumer as-is.\n this.push(b);\n }\n done();\n};\n\nvar parser = new SimpleProtocol();\nsource.pipe(parser)\n\n// Now parser is a readable stream that will emit 'header'\n// with the parsed header data.\n```\n\n\n## Class: stream.PassThrough\n\nThis is a trivial implementation of a `Transform` stream that simply\npasses the input bytes across to the output. Its purpose is mainly\nfor examples and testing, but there are occasionally use cases where\nit can come in handy.\n\n\n[EventEmitter]: events.html#events_class_events_eventemitter\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/readable-stream/issues" + }, + "homepage": "https://github.com/isaacs/readable-stream", + "_id": "readable-stream@1.0.25", + "dist": { + "shasum": "3d234b55fd2a25db8327618f088e50a32044df50" + }, + "_from": "readable-stream@~1.0.17", + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.25.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js new file mode 100644 index 00000000..27e8d8a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_passthrough.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js new file mode 100644 index 00000000..4d1ddfc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js @@ -0,0 +1,6 @@ +exports = module.exports = require('./lib/_stream_readable.js'); +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'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js new file mode 100644 index 00000000..5d482f07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_transform.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js new file mode 100644 index 00000000..e1e9efdf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_writable.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE new file mode 100644 index 00000000..a23e08a8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE @@ -0,0 +1,19 @@ +Copyright (c) 2012 Raynos. + +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile new file mode 100644 index 00000000..d583fcf4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile @@ -0,0 +1,4 @@ +browser: + node ./support/compile + +.PHONY: browser \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md new file mode 100644 index 00000000..389adae3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md @@ -0,0 +1,27 @@ +# xtend + +[![browser support][3]][4] + +Extend like a boss + +xtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes presedence. + +## Examples + +```js +var extend = require("xtend") + +var combination = extend({ + a: "a" +}, { + b: "b" +}) +// { a: "a", b: "b" } +``` + + +## MIT Licenced + + + [3]: http://ci.testling.com/Raynos/xtend.png + [4]: http://ci.testling.com/Raynos/xtend diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js new file mode 100644 index 00000000..62391e78 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js @@ -0,0 +1,7 @@ +module.exports = hasKeys + +function hasKeys(source) { + return source !== null && + (typeof source === "object" || + typeof source === "function") +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js new file mode 100644 index 00000000..20937d19 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js @@ -0,0 +1,25 @@ +var Keys = require("object-keys") +var hasKeys = require("./has-keys") + +module.exports = extend + +function extend() { + var target = {} + + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] + + if (!hasKeys(source)) { + continue + } + + var keys = Keys(source) + + for (var j = 0; j < keys.length; j++) { + var name = keys[j] + target[name] = source[name] + } + } + + return target +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js new file mode 100644 index 00000000..17454ae4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js @@ -0,0 +1,25 @@ +var Keys = require("object-keys") +var hasKeys = require("./has-keys") + +module.exports = extend + +function extend(target) { + var sources = [].slice.call(arguments, 1) + + for (var i = 0; i < sources.length; i++) { + var source = sources[i] + + if (!hasKeys(source)) { + continue + } + + var keys = Keys(source) + + for (var j = 0; j < keys.length; j++) { + var name = keys[j] + target[name] = source[name] + } + } + + return target +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml new file mode 100644 index 00000000..60d00ce1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "0.10" + - "0.8" + - "0.6" diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md new file mode 100644 index 00000000..ab32d0ad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md @@ -0,0 +1,39 @@ +#object-keys [![Version Badge][2]][1] + +[![Build Status][3]][4] [![dependency status][5]][6] + +[![browser support][7]][8] + +An Object.keys shim. Uses Object.keys if available. + +## Example + +```js +var keys = require('object-keys'); +var assert = require('assert'); +var obj = { + a: true, + b: true, + c: true +}; + +assert.equal(keys(obj), ['a', 'b', 'c']); +``` + +## Source +Implementation taken directly from [es5-shim]([9]), with modifications, including from [lodash]([10]). + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/object-keys +[2]: http://vb.teelaun.ch/ljharb/object-keys.svg +[3]: https://travis-ci.org/ljharb/object-keys.png +[4]: https://travis-ci.org/ljharb/object-keys +[5]: https://david-dm.org/ljharb/object-keys.png +[6]: https://david-dm.org/ljharb/object-keys +[7]: https://ci.testling.com/ljharb/object-keys.png +[8]: https://ci.testling.com/ljharb/object-keys +[9]: https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L542-589 +[10]: https://github.com/bestiejs/lodash + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js new file mode 100644 index 00000000..db32d458 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js @@ -0,0 +1,40 @@ +var hasOwn = Object.prototype.hasOwnProperty; +var toString = Object.prototype.toString; + +var isFunction = function (fn) { + var isFunc = (typeof fn === 'function' && !(fn instanceof RegExp)) || toString.call(fn) === '[object Function]'; + if (!isFunc && typeof window !== 'undefined') { + isFunc = fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt; + } + return isFunc; +}; + +module.exports = function forEach(obj, fn) { + if (!isFunction(fn)) { + throw new TypeError('iterator must be a function'); + } + var i, k, + isString = typeof obj === 'string', + l = obj.length, + context = arguments.length > 2 ? arguments[2] : null; + if (l === +l) { + for (i = 0; i < l; i++) { + if (context === null) { + fn(isString ? obj.charAt(i) : obj[i], i, obj); + } else { + fn.call(context, isString ? obj.charAt(i) : obj[i], i, obj); + } + } + } else { + for (k in obj) { + if (hasOwn.call(obj, k)) { + if (context === null) { + fn(obj[k], k, obj); + } else { + fn.call(context, obj[k], k, obj); + } + } + } + } +}; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js new file mode 100644 index 00000000..f5b24b6d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js @@ -0,0 +1,2 @@ +module.exports = Object.keys || require('./shim'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js new file mode 100644 index 00000000..74a09897 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js @@ -0,0 +1,16 @@ +var toString = Object.prototype.toString; + +module.exports = function isArguments(value) { + var str = toString.call(value); + var isArguments = str === '[object Arguments]'; + if (!isArguments) { + isArguments = str !== '[object Array]' + && value !== null + && typeof value === 'object' + && typeof value.length === 'number' + && value.length >= 0 + && toString.call(value.callee) === '[object Function]'; + } + return isArguments; +}; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json new file mode 100644 index 00000000..9dfda8dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json @@ -0,0 +1,60 @@ +{ + "name": "object-keys", + "version": "0.4.0", + "author": { + "name": "Jordan Harband" + }, + "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/kriskowal/es5-shim", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "node test/index.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/ljharb/object-keys.git" + }, + "keywords": [ + "Object.keys", + "keys", + "ES5", + "shim" + ], + "dependencies": {}, + "devDependencies": { + "foreach": "~2.0.3", + "is": "~0.2.6", + "tape": "~1.0.4", + "indexof": "~0.0.1" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "readme": "#object-keys [![Version Badge][2]][1]\n\n[![Build Status][3]][4] [![dependency status][5]][6]\n\n[![browser support][7]][8]\n\nAn Object.keys shim. Uses Object.keys if available.\n\n## Example\n\n```js\nvar keys = require('object-keys');\nvar assert = require('assert');\nvar obj = {\n\ta: true,\n\tb: true,\n\tc: true\n};\n\nassert.equal(keys(obj), ['a', 'b', 'c']);\n```\n\n## Source\nImplementation taken directly from [es5-shim]([9]), with modifications, including from [lodash]([10]).\n\n## Tests\nSimply clone the repo, `npm install`, and run `npm test`\n\n[1]: https://npmjs.org/package/object-keys\n[2]: http://vb.teelaun.ch/ljharb/object-keys.svg\n[3]: https://travis-ci.org/ljharb/object-keys.png\n[4]: https://travis-ci.org/ljharb/object-keys\n[5]: https://david-dm.org/ljharb/object-keys.png\n[6]: https://david-dm.org/ljharb/object-keys\n[7]: https://ci.testling.com/ljharb/object-keys.png\n[8]: https://ci.testling.com/ljharb/object-keys\n[9]: https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L542-589\n[10]: https://github.com/bestiejs/lodash\n\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/ljharb/object-keys/issues" + }, + "homepage": "https://github.com/ljharb/object-keys", + "_id": "object-keys@0.4.0", + "dist": { + "shasum": "28a6aae7428dd2c3a92f3d95f21335dd204e0336" + }, + "_from": "object-keys@~0.4.0", + "_resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js new file mode 100644 index 00000000..b88421be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js @@ -0,0 +1,62 @@ +(function () { + "use strict"; + + // modified from https://github.com/kriskowal/es5-shim + var has = Object.prototype.hasOwnProperty, + toString = Object.prototype.toString, + forEach = require('./foreach'), + isArgs = require('./isArguments'), + hasDontEnumBug = !({'toString': null}).propertyIsEnumerable('toString'), + hasProtoEnumBug = (function () {}).propertyIsEnumerable('prototype'), + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + keysShim; + + keysShim = function keys(object) { + var isObject = object !== null && typeof object === 'object', + isFunction = toString.call(object) === '[object Function]', + isArguments = isArgs(object), + theKeys = []; + + if (!isObject && !isFunction && !isArguments) { + throw new TypeError("Object.keys called on a non-object"); + } + + if (isArguments) { + forEach(object, function (value) { + theKeys.push(value); + }); + } else { + var name, + skipProto = hasProtoEnumBug && isFunction; + + for (name in object) { + if (!(skipProto && name === 'prototype') && has.call(object, name)) { + theKeys.push(name); + } + } + } + + if (hasDontEnumBug) { + var ctor = object.constructor, + skipConstructor = ctor && ctor.prototype === object; + + forEach(dontEnums, function (dontEnum) { + if (!(skipConstructor && dontEnum === 'constructor') && has.call(object, dontEnum)) { + theKeys.push(dontEnum); + } + }); + } + return theKeys; + }; + + module.exports = keysShim; +}()); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js new file mode 100644 index 00000000..f29f065a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js @@ -0,0 +1,156 @@ +var test = require('tape'); +var forEach = require('../foreach.js'); + +test('second argument: iterator', function (t) { + var arr = []; + t.throws(function () { forEach(arr); }, TypeError, 'undefined is not a function'); + t.throws(function () { forEach(arr, null); }, TypeError, 'null is not a function'); + t.throws(function () { forEach(arr, ''); }, TypeError, 'string is not a function'); + t.throws(function () { forEach(arr, /a/); }, TypeError, 'regex is not a function'); + t.throws(function () { forEach(arr, true); }, TypeError, 'true is not a function'); + t.throws(function () { forEach(arr, false); }, TypeError, 'false is not a function'); + t.throws(function () { forEach(arr, NaN); }, TypeError, 'NaN is not a function'); + t.throws(function () { forEach(arr, 42); }, TypeError, '42 is not a function'); + t.doesNotThrow(function () { forEach(arr, function () {}); }, 'function is a function'); + t.doesNotThrow(function () { forEach(arr, setTimeout); }, 'setTimeout is a function'); + if (typeof window !== 'undefined') { + t.doesNotThrow(function () { forEach(arr, window.alert); }, 'alert is a function'); + } + t.end(); +}); + +test('array', function (t) { + var arr = [1, 2, 3]; + + t.test('iterates over every item', function (st) { + var index = 0; + forEach(arr, function () { index += 1; }); + st.equal(index, arr.length, 'iterates ' + arr.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(arr.length); + forEach(arr, function (item) { + st.equal(arr[index], item, 'item ' + index + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(arr.length); + forEach(arr, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(arr.length); + forEach(arr, function (item, index, array) { + st.deepEqual(arr, array, 'array is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + st.plan(arr.length); + forEach(arr, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + +test('object', function (t) { + var obj = { + a: 1, + b: 2, + c: 3 + }; + var keys = ['a', 'b', 'c']; + + var F = function () { + this.a = 1; + this.b = 2; + }; + F.prototype.c = 3; + var fKeys = ['a', 'b']; + + t.test('iterates over every object literal key', function (st) { + var counter = 0; + forEach(obj, function () { counter += 1; }); + st.equal(counter, keys.length, 'iterated ' + counter + ' times'); + st.end(); + }); + + t.test('iterates only over own keys', function (st) { + var counter = 0; + forEach(new F(), function () { counter += 1; }); + st.equal(counter, fKeys.length, 'iterated ' + fKeys.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(keys.length); + forEach(obj, function (item) { + st.equal(obj[keys[index]], item, 'item at key ' + keys[index] + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(keys.length); + forEach(obj, function (item, key) { + st.equal(keys[counter], key, 'key ' + key + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(keys.length); + forEach(obj, function (item, key, object) { + st.deepEqual(obj, object, 'object is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + st.plan(1); + forEach({foo: 'bar'}, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + + +test('string', function (t) { + var str = 'str'; + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(str.length * 2 + 1); + forEach(str, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + st.equal(str.charAt(index), item); + counter += 1; + }); + st.equal(counter, str.length, 'iterates ' + str.length + ' times'); + }); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js new file mode 100644 index 00000000..8b77b1fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js @@ -0,0 +1,6 @@ + +require('./foreach'); +require('./isArguments'); + +require('./shim'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js new file mode 100644 index 00000000..62a07c2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js @@ -0,0 +1,10 @@ +var test = require('tape'); +var isArguments = require('../isArguments'); + +test('is.arguments', function (t) { + t.notOk(isArguments([]), 'array is not arguments'); + (function () { t.ok(isArguments(arguments), 'arguments is arguments'); }()); + (function () { t.notOk(isArguments(Array.prototype.slice.call(arguments)), 'sliced arguments is not arguments'); }()); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js new file mode 100644 index 00000000..9d932712 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js @@ -0,0 +1,134 @@ +var test = require('tape'); +var shimmedKeys = require('../index.js'); +var is = require('is'); +var keys = require('../shim.js'); +var forEach = require('foreach'); +var indexOf = require('indexof'); + +var obj = { + "str": "boz", + "obj": {}, + "arr": [], + "bool": true, + "num": 42, + "aNull": null, + "undef": undefined +}; +var objKeys = ['str', 'obj', 'arr', 'bool', 'num', 'aNull', 'undef']; + +test('exports a function', function (t) { + if (Object.keys) { + t.equal(Object.keys, shimmedKeys, 'Object.keys is supported and exported'); + } else { + t.equal(keys, shimmedKeys, 'Object.keys is not supported; shim is exported'); + } + t.end(); +}); + +test('working with actual shim', function (t) { + t.notEqual(Object.keys, keys, 'keys shim is not native Object.keys'); + t.end(); +}); + +test('works with an object literal', function (t) { + var theKeys = keys(obj); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, objKeys, 'Object has expected keys'); + t.end(); +}); + +test('works with an array', function (t) { + var arr = [1, 2, 3]; + var theKeys = keys(arr); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, ['0', '1', '2'], 'Array has expected keys'); + t.end(); +}); + +test('works with a function', function (t) { + var foo = function () {}; + foo.a = true; + + t.doesNotThrow(function () { return keys(foo); }, 'does not throw an error'); + t.deepEqual(keys(foo), ['a'], 'returns expected keys'); + t.end(); +}); + +test('returns names which are own properties', function (t) { + forEach(keys(obj), function (name) { + t.equal(obj.hasOwnProperty(name), true, name + ' should be returned'); + }); + t.end(); +}); + +test('returns names which are enumerable', function (t) { + var k, loopedValues = []; + for (k in obj) { + loopedValues.push(k); + } + forEach(keys(obj), function (name) { + t.notEqual(indexOf(loopedValues, name), -1, name + ' is not enumerable'); + }); + t.end(); +}); + +test('throws an error for a non-object', function (t) { + t.throws( + function () { return keys(42); }, + new TypeError('Object.keys called on a non-object'), + 'throws on a non-object' + ); + t.end(); +}); + +test('works with an object instance', function (t) { + var Prototype = function () {}; + Prototype.prototype.foo = true; + var obj = new Prototype(); + obj.bar = true; + var theKeys = keys(obj); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, ['bar'], 'Instance has expected keys'); + t.end(); +}); + +test('works in iOS 5 mobile Safari', function (t) { + var Foo = function () {}; + Foo.a = function () {}; + + // the bug is keys(Foo) => ['a', 'prototype'] instead of ['a'] + t.deepEqual(keys(Foo), ['a'], 'has expected keys'); + t.end(); +}); + +test('works in environments with the dontEnum bug (IE < 9)', function (t) { + var Foo = function () {}; + Foo.prototype.a = function () {}; + + // the bug is keys(Foo.prototype) => ['a', 'constructor'] instead of ['a'] + t.deepEqual(keys(Foo.prototype), ['a'], 'has expected keys'); + t.end(); +}); + +test('shadowed properties', function (t) { + var shadowedProps = [ + 'dummyControlProp', /* just to be sure */ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + shadowedProps.sort(); + var shadowedObject = {}; + forEach(shadowedProps, function (value, index) { + shadowedObject[value] = index; + }); + var shadowedObjectKeys = keys(shadowedObject); + shadowedObjectKeys.sort(); + t.deepEqual(shadowedObjectKeys, shadowedProps, 'troublesome shadowed properties are keys of object literals'); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json new file mode 100644 index 00000000..a761197d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json @@ -0,0 +1,76 @@ +{ + "name": "xtend", + "version": "2.1.2", + "description": "extend like a boss", + "keywords": [ + "extend", + "merge", + "options", + "opts", + "object", + "array" + ], + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "repository": { + "type": "git", + "url": "git://github.com/Raynos/xtend.git" + }, + "main": "index", + "scripts": { + "test": "node test" + }, + "dependencies": { + "object-keys": "~0.4.0" + }, + "devDependencies": { + "tape": "~1.1.0" + }, + "homepage": "https://github.com/Raynos/xtend", + "contributors": [ + { + "name": "Jake Verbaten" + }, + { + "name": "Matt Esch" + } + ], + "bugs": { + "url": "https://github.com/Raynos/xtend/issues", + "email": "raynos2@gmail.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/raynos/xtend/raw/master/LICENSE" + } + ], + "testling": { + "files": "test.js", + "browsers": [ + "ie/7..latest", + "firefox/16..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest" + ] + }, + "engines": { + "node": ">=0.4" + }, + "readme": "# xtend\n\n[![browser support][3]][4]\n\nExtend like a boss\n\nxtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes presedence.\n\n## Examples\n\n```js\nvar extend = require(\"xtend\")\n\nvar combination = extend({\n a: \"a\"\n}, {\n b: \"b\"\n})\n// { a: \"a\", b: \"b\" }\n```\n\n\n## MIT Licenced\n\n\n [3]: http://ci.testling.com/Raynos/xtend.png\n [4]: http://ci.testling.com/Raynos/xtend\n", + "readmeFilename": "README.md", + "_id": "xtend@2.1.2", + "dist": { + "shasum": "5e8f75d1b0d9ca976fee0f1aa88f80c7619210d5" + }, + "_from": "xtend@~2.1.1", + "_resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js new file mode 100644 index 00000000..3369d796 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js @@ -0,0 +1,63 @@ +var test = require("tape") +var extend = require("./") +var mutableExtend = require("./mutable") + +test("merge", function(assert) { + var a = { a: "foo" } + var b = { b: "bar" } + + assert.deepEqual(extend(a, b), { a: "foo", b: "bar" }) + assert.end() +}) + +test("replace", function(assert) { + var a = { a: "foo" } + var b = { a: "bar" } + + assert.deepEqual(extend(a, b), { a: "bar" }) + assert.end() +}) + +test("undefined", function(assert) { + var a = { a: undefined } + var b = { b: "foo" } + + assert.deepEqual(extend(a, b), { a: undefined, b: "foo" }) + assert.deepEqual(extend(b, a), { a: undefined, b: "foo" }) + assert.end() +}) + +test("handle 0", function(assert) { + var a = { a: "default" } + var b = { a: 0 } + + assert.deepEqual(extend(a, b), { a: 0 }) + assert.deepEqual(extend(b, a), { a: "default" }) + assert.end() +}) + +test("is immutable", function (assert) { + var record = {} + + extend(record, { foo: "bar" }) + assert.equal(record.foo, undefined) + assert.end() +}) + +test("null as argument", function (assert) { + var a = { foo: "bar" } + var b = null + var c = void 0 + + assert.deepEqual(extend(b, a, c), { foo: "bar" }) + assert.end() +}) + +test("mutable", function (assert) { + var a = { foo: "bar" } + + mutableExtend(a, { bar: "baz" }) + + assert.equal(a.bar, "baz") + assert.end() +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json new file mode 100644 index 00000000..9612fee2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json @@ -0,0 +1,48 @@ +{ + "name": "through2", + "version": "0.4.1", + "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise", + "main": "through2.js", + "scripts": { + "test": "node test/test.js", + "test-local": "brtapsauce-local test/basic-test.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/rvagg/through2.git" + }, + "keywords": [ + "stream", + "streams2", + "through", + "transform" + ], + "author": { + "name": "Rod Vagg", + "email": "r@va.gg", + "url": "https://github.com/rvagg" + }, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + }, + "devDependencies": { + "tape": "~2.3.0", + "bl": "~0.6.0", + "stream-spigot": "~3.0.1", + "brtapsauce": "~0.2.2" + }, + "readme": "# through2\n\n\n\n[![NPM](https://nodei.co/npm/through2.png?compact=true)](https://nodei.co/npm/through2/) \n\n\n\n**A tiny wrapper around Node streams.Transform (Streams2) to avoid explicit subclassing noise**\n\nInspired by [Dominic Tarr](https://github.com/dominictarr)'s [through](https://github.com/dominictarr/through) in that it's so much easier to make a stream out of a function than it is to set up the prototype chain properly: `through(function (chunk) { ... })`.\n\n```js\nfs.createReadStream('ex.txt')\n .pipe(through2(function (chunk, enc, callback) {\n\n for (var i = 0; i < chunk.length; i++)\n if (chunk[i] == 97)\n chunk[i] = 122 // swap 'a' for 'z'\n\n this.push(chunk)\n \n callback()\n\n }))\n .pipe(fs.createWriteStream('out.txt'))\n```\n\nOr object streams:\n\n```js\nvar all = []\n\nfs.createReadStream('data.csv')\n .pipe(csv2())\n .pipe(through2.obj(function (chunk, enc, callback) {\n\n var data = {\n name : chunk[0]\n , address : chunk[3]\n , phone : chunk[10]\n }\n \n this.push(data)\n \n callback()\n\n }))\n .on('data', function (data) {\n all.push(data)\n })\n .on('end', function () {\n doSomethingSpecial(all)\n })\n```\n\nNote that `through2.obj(fn)` is a convenience wrapper around `through2({ objectMode: true }, fn)`.\n\n## API\n\nthrough2([ options, ] [ transformFunction ] [, flushFunction ])\n\nConsult the **[stream.Transform](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform)** documentation for the exact rules of the `transformFunction` (i.e. `this._transform`) and the optional `flushFunction` (i.e. `this._flush`).\n\n### options\n\nThe options argument is optional and is passed straight through to `stream.Transform`. So you can use `objectMode:true` if you are processing non-binary streams (or just use `through2.obj()`).\n\nThe `options` argument is first, unlike standard convention, because if I'm passing in an anonymous function then I'd prefer for the options argument to not get lost at the end of the call:\n\n```js\nfs.createReadStream('/tmp/important.dat')\n .pipe(through2({ objectMode: true, allowHalfOpen: false }, function (chunk, enc, cb) {\n\n this.push(new Buffer('wut?'))\n cb()\n\n })\n .pipe(fs.createWriteStream('/tmp/wut.txt'))\n```\n\n### transformFunction\n\nThe `transformFunction` must have the following signature: `function (chunk, encoding, callback) {}`. A minimal implementation should call the `callback` function to indicate that the transformation is done, even if that transformation means discarding the chunk.\n\nTo queue a new chunk, call `this.push(chunk)`—this can be called as many times as required before the `callback()` if you have multiple pieces to send on.\n\nIf you **do not provide a `transformFunction`** then you will get a simple simple pass-through stream.\n\n### flushFunction\n\nThe optional `flushFunction` is provided as the last argument (2nd or 3rd, depending on whether you've supplied options) is called just prior to the stream ending. Can be used to finish up any processing that may be in progress.\n\nthrough2.ctor([ options, ] transformFunction[, flushFunction ])\n\nInstead of returning a `stream.Transform` instance, `through2.ctor()` returns a **constructor** for a custom Transform. This is useful when you want to use the same transform logic in multiple instances.\n\n```js\nvar FToC = through2.ctor({objectMode: true}, function (record, encoding, callback) {\n if (record.temp != null && record.unit = \"F\") {\n record.temp = ( ( record.temp - 32 ) * 5 ) / 9\n record.unit = \"C\"\n }\n this.push(record)\n callback()\n})\n\n// Create instances of FToC like so:\nvar converter = new FToC()\n// Or:\nvar converter = FToC()\n// Or specify/override options when you instantiate, if you prefer:\nvar converter = FToC({objectMode: true})\n```\n\n## License\n\n**through2** is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/rvagg/through2/issues" + }, + "homepage": "https://github.com/rvagg/through2", + "_id": "through2@0.4.1", + "dist": { + "shasum": "48772c8b50c4955c25e7cdbe69f4220f4138178b" + }, + "_from": "through2@~0.4.0", + "_resolved": "https://registry.npmjs.org/through2/-/through2-0.4.1.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js new file mode 100644 index 00000000..9d137c7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js @@ -0,0 +1,334 @@ +const test = require('tape') + , through2 = require('../') + , crypto = require('crypto') + , bl = require('bl') + , spigot = require('stream-spigot') + +test('plain through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('pipeable through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + // bl() acts like a proper streams2 stream and passes as much as it's + // asked for, so we really only get one write with such a small amount + // of data + t.equal(s, 'aaaaaaaaaaaaaaaaaaaaaaaaa', 'got transformed string') + t.end() + })) + + var bufs = bl() + bufs.append(crypto.randomBytes(10)) + bufs.append(crypto.randomBytes(5)) + bufs.append(crypto.randomBytes(10)) + bufs.pipe(th2) +}) + +test('object through', function (t) { + t.plan(3) + + var th2 = through2({ objectMode: true}, function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object through with through2.obj', function (t) { + t.plan(3) + + var th2 = through2.obj(function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('flushing through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }, function (callback) { + this.push(new Buffer([ 101, 110, 100 ])) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal(s, 'aaaaaaaaaabbbbbccccccccccend', 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('plain through ctor', function (t) { + var Th2 = through2.ctor(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + var th2 = new Th2() + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('reuse through ctor', function (t) { + t.plan(4) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + if (!this._i) { + t.ok(1, 'did not contain previous instance data (this._i)') + this._i = 97 // 'a' + } else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + var th2 = Th2() + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + + var newInstance = Th2() + newInstance.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaabbbbccccccc', s, 'got transformed string') + })) + + newInstance.write(crypto.randomBytes(7)) + newInstance.write(crypto.randomBytes(4)) + newInstance.write(crypto.randomBytes(7)) + newInstance.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('object through ctor', function (t) { + t.plan(3) + + var Th2 = through2.ctor({ objectMode: true}, function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = new Th2() + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('pipeable object through ctor', function (t) { + t.plan(4) + + var Th2 = through2.ctor({ objectMode: true}, function (record, enc, callback) { + if (record.temp != null && record.unit == 'F') { + record.temp = ( ( record.temp - 32 ) * 5 ) / 9 + record.unit = 'C' + } + this.push(record) + callback() + }) + + var th2 = Th2() + + var expect = [-19, -40, 100, 22] + th2.on('data', function (o) { + t.deepEqual(o, { temp: expect.shift(), unit: 'C' }, 'got transformed object') + }) + + spigot({objectMode: true}, [ + {temp: -2.2, unit: 'F'}, + {temp: -40, unit: 'F'}, + {temp: 212, unit: 'F'}, + {temp: 22, unit: 'C'} + ]).pipe(th2) +}) + +test('object through ctor override', function (t) { + t.plan(3) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({objectMode: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object settings available in transform', function (t) { + t.plan(6) + + var Th2 = through2.ctor({objectMode: true, peek: true}, function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2() + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object settings available in transform override', function (t) { + t.plan(6) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({objectMode: true, peek: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object override extends options', function (t) { + t.plan(6) + + var Th2 = through2.ctor({objectMode: true}, function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({peek: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js new file mode 100644 index 00000000..cc10868b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js @@ -0,0 +1,42 @@ +/* +on rvagg@fletcher: + @0.2.3: Ran 36719 iterations in 10000 ms +*/ + +const through2 = require('../') + , bl = require('bl') + , crypto = require('crypto') + , assert = require('assert') + +function run (callback) { + var bufs = Array.apply(null, Array(10)).map(function () { return crypto.randomBytes(32) }) + , stream = through2(function (chunk, env, callback) { + callback(null, chunk.toString('hex')) + }) + + stream.pipe(bl(function (err, data) { + assert(!err) + assert.equal(data.toString(), Buffer.concat(bufs).toString('hex')) + callback() + })) + + bufs.forEach(function (b) { + stream.write(b) + }) + stream.end() +} + +var count = 0 + , start = Date.now() + +;(function exec () { + count++ + run(function () { + if (Date.now() - start < 1000 * 10) { + return setImmediate(exec) + } + console.log('Ran', count, 'iterations in', Date.now() - start, 'ms') + }) +}()) + +console.log('Running for ~10s') \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js new file mode 100644 index 00000000..a6d28625 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js @@ -0,0 +1,38 @@ +#!/usr/bin/env node + +const user = process.env.SAUCE_USER + , key = process.env.SAUCE_KEY + , path = require('path') + , brtapsauce = require('brtapsauce') + , testFile = path.join(__dirname, 'basic-test.js') + + , capabilities = [ + { browserName: 'chrome' , platform: 'Windows XP', version: '' } + , { browserName: 'firefox' , platform: 'Windows 8' , version: '' } + , { browserName: 'firefox' , platform: 'Windows XP', version: '4' } + , { browserName: 'internet explorer' , platform: 'Windows 8' , version: '10' } + , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '9' } + , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '8' } + , { browserName: 'internet explorer' , platform: 'Windows XP', version: '7' } + , { browserName: 'internet explorer' , platform: 'Windows XP', version: '6' } + , { browserName: 'safari' , platform: 'Windows 7' , version: '5' } + , { browserName: 'safari' , platform: 'OS X 10.8' , version: '6' } + , { browserName: 'opera' , platform: 'Windows 7' , version: '' } + , { browserName: 'opera' , platform: 'Windows 7' , version: '11' } + , { browserName: 'ipad' , platform: 'OS X 10.8' , version: '6' } + , { browserName: 'android' , platform: 'Linux' , version: '4.0', 'device-type': 'tablet' } + ] + +if (!user) + throw new Error('Must set a SAUCE_USER env var') +if (!key) + throw new Error('Must set a SAUCE_KEY env var') + +brtapsauce({ + name : 'Traversty' + , user : user + , key : key + , brsrc : testFile + , capabilities : capabilities + , options : { timeout: 60 * 6 } +}) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js new file mode 100644 index 00000000..aa9b4877 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js @@ -0,0 +1,9 @@ +require('./basic-test') + +if (!process.env.SAUCE_KEY || !process.env.SAUCE_USER) + return console.log('SAUCE_KEY and/or SAUCE_USER not set, not running sauce tests') + +if (!/v0\.10/.test(process.version)) + return console.log('Not Node v0.10.x, not running sauce tests') + +require('./sauce.js') \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js new file mode 100644 index 00000000..c1104848 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js @@ -0,0 +1,78 @@ +var Transform = require('readable-stream/transform') + , inherits = require('util').inherits + , xtend = require('xtend') + + +// a noop _transform function +function noop (chunk, enc, callback) { + callback(null, chunk) +} + + +// create a new export function, used by both the main export and +// the .ctor export, contains common logic for dealing with arguments +function through2 (construct) { + return function (options, transform, flush) { + if (typeof options == 'function') { + flush = transform + transform = options + options = {} + } + + if (typeof transform != 'function') + transform = noop + + if (typeof flush != 'function') + flush = null + + return construct(options, transform, flush) + } +} + + +// main export, just make me a transform stream! +module.exports = through2(function (options, transform, flush) { + var t2 = new Transform(options) + + t2._transform = transform + + if (flush) + t2._flush = flush + + return t2 +}) + + +// make me a reusable prototype that I can `new`, or implicitly `new` +// with a constructor call +module.exports.ctor = through2(function (options, transform, flush) { + function Through2 (override) { + if (!(this instanceof Through2)) + return new Through2(override) + + this.options = xtend(options, override) + + Transform.call(this, this.options) + } + + inherits(Through2, Transform) + + Through2.prototype._transform = transform + + if (flush) + Through2.prototype._flush = flush + + return Through2 +}) + + +module.exports.obj = through2(function (options, transform, flush) { + var t2 = new Transform(xtend({ objectMode: true }, options)) + + t2._transform = transform + + if (flush) + t2._flush = flush + + return t2 +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/package.json new file mode 100644 index 00000000..d289871c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/download/package.json @@ -0,0 +1,55 @@ +{ + "name": "download", + "version": "0.1.10", + "description": "Download and extract files effortlessly", + "keywords": [ + "url", + "http", + "download", + "extract" + ], + "homepage": "https://github.com/kevva/download", + "bugs": { + "url": "https://github.com/kevva/download/issues" + }, + "author": { + "name": "Kevin Martensson", + "email": "kevinmartensson@gmail.com", + "url": "http://kevinmartensson.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/kevva/download.git" + }, + "scripts": { + "test": "mocha --reporter list" + }, + "main": "download.js", + "files": [ + "download.js" + ], + "dependencies": { + "decompress": "~0.1.5", + "each-async": "~0.1.1", + "mkdirp": "~0.3.5", + "request": "~2.31.0", + "through2": "~0.4.0" + }, + "devDependencies": { + "mocha": "~1.17.0", + "nock": "~0.27.1", + "rimraf": "~2.2.5" + }, + "engines": { + "node": ">=0.10.0" + }, + "readme": "# download [![Build Status](https://secure.travis-ci.org/kevva/download.png?branch=master)](http://travis-ci.org/kevva/download)\n\nDownload and extract files effortlessly in Node.js.\n\n## Getting started\n\nInstall with [npm](https://npmjs.org/package/download): `npm install download`\n\n## Examples\n\nIf you're fetching an archive you can set `extract: true` in options and\nit'll extract it for you.\n\n```js\nvar download = require('download');\n\n// download and extract `foo.tar.gz` into `bar/`\ndownload('foo.tar.gz', 'bar', { extract: true });\n\n// download and save `foo.exe` into `bar/foo.exe` with mode `0755`\ndownload('foo.exe', 'bar', { mode: '0755' });\n\n// download and save `foo.zip` into `bar/foobar.zip`\ndownload({ url: 'foo.zip', name: 'foobar.zip' }, 'bar');\n\n// download and save an array of files in `bar/`\nvar files = ['foo.jpg', 'bar.jpg', 'cat.jpg'];\ndownload(files, 'bar');\n\n// download, save and rename an array of files in `bar/`\nvar files = [{\n url: 'foo.jpg',\n name: 'foobar.jpg'\n}, {\n url: 'cat.jpg',\n name: 'dog.jpg'\n}];\ndownload(files, 'bar');\n```\n\n## API\n\n### download(url, dest, opts)\n\nDownload a file or an array of files to a given destination. Returns an EventEmitter \nthat emits the following possible events:\n\n* `response` — Relayed when the underlying `http.ClientRequest` emits the same \nevent. Listeners called with a `http.IncomingMessage` instance.\n* `data` — Relayed when the underlying `http.IncomingMessage` emits the same \nevent. Listeners called with a `Buffer` instance.\n* `error` — Relayed when the underlying `http.ClientRequest` emits the same event \nor when the response status code is not in the 200s. Listeners called with an \n`Error` instance (in the first case) or the response status code.\n* `close` — Relayed when the underlying `stream.Duplex` emits the same event.\n\n## Options\n\nYou can define options accepted by the [request](https://github.com/mikeal/request/) module besides from the options below.\n\n### extract\n\nType: `Boolean` \nDefault: `false`\n\nIf set to `true`, try extracting the file using [decompress](https://github.com/kevva/decompress/).\n\n### mode\n\nType: `String` \nDefault: `undefined`\n\nSet mode on the downloaded files.\n\n### strip\n\nType: `Number` \nDefault: `0`\n\nEquivalent to `--strip-components` for tar.\n\n## License\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License) (c) [Kevin Mårtensson](http://kevinmartensson.com)\n", + "readmeFilename": "README.md", + "_id": "download@0.1.10", + "dist": { + "shasum": "dc5d3ab4a7fc78e374e2de0381273b7b999bc29d" + }, + "_from": "download@~0.1.2", + "_resolved": "https://registry.npmjs.org/download/-/download-0.1.10.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore new file mode 100644 index 00000000..2ccbe465 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore @@ -0,0 +1 @@ +/node_modules/ diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml new file mode 100644 index 00000000..c1ffcb31 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - 0.8 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/History.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/History.md new file mode 100644 index 00000000..d1fa5334 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/History.md @@ -0,0 +1,20 @@ + +0.0.2 / 2013-05-29 +================== + + * Updated github url + * Fix bug calling isbin with list of paths + * Add tests for sync version + * Added travis CI passing image to readme + * Added node engines and keywords + * Added travis CI config + * Added basic readme + * Added basic test suite and Makefile + * Add async version + * Some refactorings using 'some' function + * Fixed issue with wrong paths if called multiple times + +0.0.1 / 2012-12-06 +================== + + * Initial release diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile new file mode 100644 index 00000000..1a2444a1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile @@ -0,0 +1,6 @@ +REPORTER ?= dot + +test: + @NODE_ENV=test ./node_modules/mocha/bin/mocha -R $(REPORTER) + +.PHONY: test diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/README.md new file mode 100644 index 00000000..5224d614 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/README.md @@ -0,0 +1,59 @@ +[![Build Status](https://secure.travis-ci.org/mbehrendt/isbin.png?branch=master)](https://travis-ci.org/mbehrendt/isbin) + +# Isbin + +Tiny little helper library to determine if a certain binary is available within $PATH or any additional folder. + +# Installation + +```bash +$ npm install isbin +``` + +# Usage + +```js +var isbin = require('isbin'); + +// Test against $PATH +isbin('mysql', function(exists) { + console.log(exists); // ==> Boolean +}); + +// With additional path to test +isbin('mysql', '/usr/local/bin', function(exists) { + console.log(exists); // ==> Boolean +}); + +// Or multiple ones +isbin('mysql', ['/usr/local/bin', '/home/me/bins'], function(exists) { + console.log(exists); // ==> Boolean +}); +``` + +There are also synchronous versions available + +```js +var exists = isbin('mysql'); +var exists = isbin('mysql', '/usr/local/bin'); +var exists = isbin('mysql', ['/usr/local/bin', '/home/me/bins']); +``` + +# Running the tests + +```bash +$ npm install +$ make test +``` + +# License + +(The MIT License) + +Copyright (c) 2012 Mario Behrendt info@mario-behrendt.de, Stephan Hoyer + +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/index.js new file mode 100644 index 00000000..bb0a047c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/index.js @@ -0,0 +1 @@ +module.exports = require('./lib'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js new file mode 100644 index 00000000..1b8a5cac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js @@ -0,0 +1,51 @@ +/** + * Require dependencies + */ + +var fs = require('fs') + , async = require('async'); + +/** + * Check if given binary exists + * + * @param {String} bin Binary to test + * @param {String|Array} additional Additional paths to check + * @param {Function(result)} isbinChecked Callback when check is done async, optional + * @return {Boolean} True if binary was found + */ + +function isbin(bin, additional, isbinChecked) { + // isbin(bin, cb) + if (!isbinChecked) isbinChecked = additional; + + // Read $PATH to get set up bin folders + var paths = process.env.PATH.split(':') || []; + + // isbin(bin, 'path', cb) + if ('string' === typeof additional) { + paths.push(additional); + } + + // isbin(bin, ['path1', 'path2'], cb) + if ('object' === typeof additional && additional.length !== null) { + paths.concat(additional); + } + + // async check + if ('function' === typeof isbinChecked) { + return async.some(paths, function(path, pathChecked) { + fs.exists(path + '/' + bin, pathChecked); + }, isbinChecked); + } + + // sync check + return paths.reverse().some(function(path) { + return fs.existsSync(path + '/' + bin); + }); +}; + +/** + * Expose module + */ + +module.exports = isbin; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules new file mode 100644 index 00000000..a9aae984 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules @@ -0,0 +1,9 @@ +[submodule "deps/nodeunit"] + path = deps/nodeunit + url = git://github.com/caolan/nodeunit.git +[submodule "deps/UglifyJS"] + path = deps/UglifyJS + url = https://github.com/mishoo/UglifyJS.git +[submodule "deps/nodelint"] + path = deps/nodelint + url = https://github.com/tav/nodelint.git diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore new file mode 100644 index 00000000..9bdfc97c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore @@ -0,0 +1,4 @@ +deps +dist +test +nodelint.cfg \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE new file mode 100644 index 00000000..b7f9d500 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010 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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile new file mode 100644 index 00000000..bad647c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile @@ -0,0 +1,25 @@ +PACKAGE = asyncjs +NODEJS = $(if $(shell test -f /usr/bin/nodejs && echo "true"),nodejs,node) +CWD := $(shell pwd) +NODEUNIT = $(CWD)/node_modules/nodeunit/bin/nodeunit +UGLIFY = $(CWD)/node_modules/uglify-js/bin/uglifyjs +NODELINT = $(CWD)/node_modules/nodelint/nodelint + +BUILDDIR = dist + +all: clean test build + +build: $(wildcard lib/*.js) + mkdir -p $(BUILDDIR) + $(UGLIFY) lib/async.js > $(BUILDDIR)/async.min.js + +test: + $(NODEUNIT) test + +clean: + rm -rf $(BUILDDIR) + +lint: + $(NODELINT) --config nodelint.cfg lib/async.js + +.PHONY: test build all diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md new file mode 100644 index 00000000..1bbbc477 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md @@ -0,0 +1,1021 @@ +# Async.js + +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), it can also be used directly in the +browser. + +Async provides around 20 functions that include the usual 'functional' +suspects (map, reduce, filter, forEach…) 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 + + 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'], path.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. + + +## Download + +Releases are available for download from +[GitHub](http://github.com/caolan/async/downloads). +Alternatively, you can install using Node Package Manager (npm): + + npm install async + + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed + +__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped + + +## In the Browser + +So far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage: + + + + + +## Documentation + +### Collections + +* [forEach](#forEach) +* [map](#map) +* [filter](#filter) +* [reject](#reject) +* [reduce](#reduce) +* [detect](#detect) +* [sortBy](#sortBy) +* [some](#some) +* [every](#every) +* [concat](#concat) + +### Control Flow + +* [series](#series) +* [parallel](#parallel) +* [whilst](#whilst) +* [until](#until) +* [waterfall](#waterfall) +* [queue](#queue) +* [auto](#auto) +* [iterator](#iterator) +* [apply](#apply) +* [nextTick](#nextTick) + +### Utils + +* [memoize](#memoize) +* [unmemoize](#unmemoize) +* [log](#log) +* [dir](#dir) +* [noConflict](#noConflict) + + +## Collections + + +### forEach(arr, iterator, callback) + +Applies an iterator function to each item in an array, 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 this callback, the main +callback for the forEach 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. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(err) - A callback which is called after all the iterator functions + have finished, or an error has occurred. + +__Example__ + + // assuming openFiles is an array of file names and saveFile is a function + // to save the modified contents of that file: + + async.forEach(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error + }); + +--------------------------------------- + + +### forEachSeries(arr, iterator, callback) + +The same as forEach only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. This means the iterator functions will complete in order. + + +--------------------------------------- + + +### forEachLimit(arr, limit, iterator, callback) + +The same as forEach only the iterator is applied to batches of items in the +array, in series. The next batch of iterators is only called once the current +one has completed processing. + +__Arguments__ + +* arr - An array to iterate over. +* limit - How many items should be in each batch. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(err) - A callback which is called after all the iterator functions + have finished, or an error has occurred. + +__Example__ + + // Assume documents is an array of JSON objects and requestApi is a + // function that interacts with a rate-limited REST api. + + async.forEachLimit(documents, 20, requestApi, function(err){ + // if any of the saves produced an error, err would equal that error + }); +--------------------------------------- + + +### map(arr, iterator, callback) + +Produces a new array of values by mapping each value in the given array through +the iterator function. The iterator is called with an item from the array and a +callback for when it has finished processing. The callback takes 2 arguments, +an error and the transformed item from the array. If the iterator passes an +error to this 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 array. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed + with an error (which can be null) and a transformed item. +* callback(err, results) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is an array of the + transformed items from the original array. + +__Example__ + + async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file + }); + +--------------------------------------- + + +### mapSeries(arr, iterator, callback) + +The same as map only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. The results array will be in the same order as the original. + + +--------------------------------------- + + +### filter(arr, iterator, callback) + +__Alias:__ select + +Returns a new array of all the values 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 path.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 the array. + The iterator is passed a callback which must be called once it has completed. +* callback(results) - A callback which is called after all the iterator + functions have finished. + +__Example__ + + async.filter(['file1','file2','file3'], path.exists, function(results){ + // results now equals an array of the existing files + }); + +--------------------------------------- + + +### filterSeries(arr, iterator, callback) + +__alias:__ selectSeries + +The same as filter only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. The results array will be in the same order as the original. + +--------------------------------------- + + +### reject(arr, iterator, callback) + +The opposite of filter. Removes values that pass an async truth test. + +--------------------------------------- + + +### rejectSeries(arr, iterator, callback) + +The same as filter, only the iterator is applied to each item in the array +in series. + + +--------------------------------------- + + +### reduce(arr, memo, iterator, callback) + +__aliases:__ inject, foldl + +Reduces a list of values 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, 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 its 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 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) - A callback which is called after all the iterator + functions have finished. Result is the reduced value. + +__Example__ + + 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 + }); + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, callback) + +__Alias:__ foldr + +Same as reduce, only operates on the items in the array in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, callback) + +Returns the first value in a list 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 array (in terms of order) that passes the test. + +If order within the original array is important then look at detectSeries. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A truth test to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - 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. + +__Example__ + + async.detect(['file1','file2','file3'], path.exists, function(result){ + // result now equals the first file in the list that exists + }); + +--------------------------------------- + + +### detectSeries(arr, iterator, callback) + +The same as detect, only the iterator is applied to each item in the array +in series. This means the result is always the first in the original array (in +terms of array order) that passes the truth test. + + +--------------------------------------- + + +### sortBy(arr, iterator, callback) + +Sorts a list by the results of running each value through an async iterator. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback 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) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is the items from + the original array sorted by the values returned by the iterator calls. + +__Example__ + + 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 + }); + + +--------------------------------------- + + +### some(arr, iterator, callback) + +__Alias:__ any + +Returns true if at least one element in the array 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 path.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. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - 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. + +__Example__ + + async.some(['file1','file2','file3'], path.exists, function(result){ + // if result is true then at least one of the files exists + }); + +--------------------------------------- + + +### every(arr, iterator, callback) + +__Alias:__ all + +Returns true if every element in the array 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 path.exists. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A truth test to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - A callback which is called after all the iterator + functions have finished. Result will be either true or false depending on + the values of the async tests. + +__Example__ + + async.every(['file1','file2','file3'], path.exists, function(result){ + // if result is true then every file exists + }); + +--------------------------------------- + + +### concat(arr, iterator, callback) + +Applies an iterator to each item in a list, concatenating the results. Returns the +concatenated list. The iterators 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 the arguments passed to the iterator function. + +__Arguments__ + +* arr - An array to iterate over +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed + with an error (which can be null) and an array of results. +* callback(err, results) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is an array containing + the concatenated results of the iterator function. + +__Example__ + + async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories + }); + +--------------------------------------- + + +### concatSeries(arr, iterator, callback) + +Same as async.concat, but executes in series instead of parallel. + + +## Control Flow + + +### series(tasks, [callback]) + +Run an array of functions 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 the callback for the series 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. + +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 +async.series. + + +__Arguments__ + +* tasks - An array or object containing functions to run, each function is passed + a callback it must call on completion. +* callback(err, results) - An optional callback to run once all the functions + have completed. This function gets an array of all the arguments passed to + the callbacks used in the array. + +__Example__ + + 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} + }); + + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run an 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. + +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 +async.parallel. + + +__Arguments__ + +* tasks - An array or object containing functions to run, each function is passed a + callback it must call on completion. +* callback(err, results) - An optional callback to run once all the functions + have completed. This function gets an array of all the arguments passed to + the callbacks used in the array. + +__Example__ + + 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} + }); + + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call fn, while test returns true. Calls the callback when stopped, +or an error occurs. + +__Arguments__ + +* test() - synchronous truth test to perform before each execution of fn. +* fn(callback) - A function to call each time the test passes. The function is + passed a callback which must be called once it has completed with an optional + error as the first argument. +* callback(err) - A callback which is called after the test fails and repeated + execution of fn has stopped. + +__Example__ + + var count = 0; + + async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } + ); + + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call fn, until test returns true. Calls the callback when stopped, +or an error occurs. + +The inverse of async.whilst. + + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs an array of functions in series, each passing their results to the next in +the array. However, if any of the functions pass an error to the 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 it + must call on completion. +* 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__ + + async.waterfall([ + function(callback){ + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback){ + callback(null, 'three'); + }, + function(arg1, callback){ + // arg1 now equals 'three' + callback(null, 'done'); + } + ], function (err, result) { + // result now equals 'done' + }); + + +--------------------------------------- + + +### queue(worker, concurrency) + +Creates a queue object with the specified concurrency. Tasks added to the +queue will be processed in parallel (up to the concurrency limit). If all +workers are in progress, the task is queued until one is available. Once +a worker has completed a task, the task's callback is called. + +__Arguments__ + +* worker(task, callback) - An asynchronous function for processing a queued + task. +* concurrency - An integer for determining how many worker functions should be + run in parallel. + +__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. +* 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, 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 + +__Example__ + + // 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 bar'); + }); + + +--------------------------------------- + + +### auto(tasks, [callback]) + +Determines the best order for running functions 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, that function will not complete +(so any other functions depending on it will not run) and the main callback +will be called immediately with the error. Functions also receive an object +containing the results of functions which have completed so far. + +__Arguments__ + +* tasks - An object literal containing named functions or an array of + requirements, with the function itself the last item in the array. The key + used for each function or array is used when specifying requirements. The + syntax is easier to understand by looking at the example. +* callback(err, results) - An optional callback which is called when all the + tasks have been completed. The callback will receive an error as an argument + if any tasks pass an error to their callback. If all tasks complete + successfully, it will receive an object containing their results. + +__Example__ + + async.auto({ + get_data: function(callback){ + // async code to get some data + }, + make_folder: function(callback){ + // async code to create a directory to store a file in + // this is run at the same time as getting the data + }, + write_file: ['get_data', 'make_folder', function(callback){ + // 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){ + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + }] + }); + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + + async.parallel([ + function(callback){ + // async code to get some data + }, + function(callback){ + // async code to create a directory to store a file in + // this is run at the same time as getting the data + } + ], + function(results){ + async.series([ + function(callback){ + // once there is some data and the directory exists, + // write the data to a file in the directory + }, + email_link: function(callback){ + // once the file is written let's email a link to it... + } + ]); + }); + +For a complicated series of async tasks using the auto function makes adding +new tasks much easier and makes the code more readable. + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the array, +returning a continuation to call the next one after that. Its also possible to +'peek' the next iterator by doing 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, each function is passed a callback it + must call on completion. + +__Example__ + + 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' + + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied, a useful +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__ + + // 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: + + node> var fn = async.apply(sys.puts, 'one'); + node> fn('two', 'three'); + one + two + three + +--------------------------------------- + + +### nextTick(callback) + +Calls the callback on a later loop around the event loop. In node.js this just +calls process.nextTick, in the browser it falls back to setTimeout(callback, 0), +which means other higher priority events may precede the execution of the callback. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* callback - The function to call on a later loop around the event loop. + +__Example__ + + var call_order = []; + async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two] + }); + call_order.push('one') + + +## Utils + + +### 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. + +__Arguments__ + +* fn - the function you 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__ + + 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 + }); + + +### unmemoize(fn) + +Undoes a memoized function, reverting it to the original, unmemoized +form. Comes handy in tests. + +__Arguments__ + +* fn - the memoized function + + +### 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__ + + var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); + }; + + node> async.log(hello, 'world'); + 'hello world' + + +--------------------------------------- + + +### 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__ + + var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); + }; + + node> async.dir(hello, 'world'); + {hello: 'world'} + + +--------------------------------------- + + +### noConflict() + +Changes the value of async back to its original value, returning a reference to the +async object. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js new file mode 100644 index 00000000..8e238453 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js @@ -0,0 +1,3 @@ +// This file is just added for convenience so this repository can be +// directly checked out into a project's deps folder +module.exports = require('./lib/async'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js new file mode 100644 index 00000000..7cc4f5ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js @@ -0,0 +1,692 @@ +/*global setTimeout: false, console: false */ +(function () { + + var async = {}; + + // global on the server, window in the browser + var root = this, + previous_async = root.async; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + else { + root.async = async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function (arr, iterator) { + if (arr.forEach) { + return arr.forEach(iterator); + } + for (var i = 0; i < arr.length; i += 1) { + iterator(arr[i], i, arr); + } + }; + + var _map = function (arr, iterator) { + if (arr.map) { + return arr.map(iterator); + } + var results = []; + _forEach(arr, function (x, i, a) { + results.push(iterator(x, i, a)); + }); + return results; + }; + + var _reduce = function (arr, iterator, memo) { + if (arr.reduce) { + return arr.reduce(iterator, memo); + } + _forEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + if (typeof process === 'undefined' || !(process.nextTick)) { + async.nextTick = function (fn) { + setTimeout(fn, 0); + }; + } + else { + async.nextTick = process.nextTick; + } + + async.forEach = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + _forEach(arr, function (x) { + iterator(x, function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(null); + } + } + }); + }); + }; + + async.forEachSeries = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(null); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + + async.forEachLimit = function (arr, limit, iterator, callback) { + callback = callback || function () {}; + if (!arr.length || limit <= 0) { + return callback(); + } + var completed = 0; + var started = 0; + var running = 0; + + (function replenish () { + if (completed === arr.length) { + return callback(); + } + + while (running < limit && started < arr.length) { + started += 1; + running += 1; + iterator(arr[started - 1], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + running -= 1; + if (completed === arr.length) { + callback(); + } + else { + replenish(); + } + } + }); + } + })(); + }; + + + var doParallel = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEach].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.forEachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + main_callback = function () {}; + } + else { + callback(); + } + }); + }, function (err) { + main_callback(); + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + 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 { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + if (!keys.length) { + return callback(null); + } + + var results = {}; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + _forEach(listeners.slice(0), function (fn) { + fn(); + }); + }; + + addListener(function () { + if (_keys(results).length === keys.length) { + callback(null, results); + callback = function () {}; + } + }); + + _forEach(keys, function (k) { + var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; + var taskCallback = function (err) { + if (err) { + callback(err); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + taskComplete(); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + }; + if (ready()) { + task[task.length - 1](taskCallback, results); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + }; + addListener(listener); + } + }); + }; + + async.waterfall = function (tasks, callback) { + callback = callback || function () {}; + if (!tasks.length) { + return callback(); + } + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.nextTick(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + async.parallel = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.forEach(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.forEachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + 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 = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.queue = function (worker, concurrency) { + var workers = 0; + var q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + push: function (data, callback) { + if(data.constructor !== Array) { + data = [data]; + } + _forEach(data, function(task) { + q.tasks.push({ + data: task, + callback: typeof callback === 'function' ? callback : null + }); + if (q.saturated && q.tasks.length == concurrency) { + q.saturated(); + } + async.nextTick(q.process); + }); + }, + process: function () { + if (workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + if(q.empty && q.tasks.length == 0) q.empty(); + workers += 1; + worker(task.data, function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + if(q.drain && q.tasks.length + workers == 0) q.drain(); + q.process(); + }); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + } + }; + return q; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _forEach(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 = {}; + hasher = hasher || function (x) { + return x; + }; + var memoized = function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + callback.apply(null, memo[key]); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([function () { + memo[key] = arguments; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, arguments); + } + }])); + } + }; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + +}()); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json new file mode 100644 index 00000000..31e18559 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json @@ -0,0 +1,36 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "main": "./index", + "author": { + "name": "Caolan McMahon" + }, + "version": "0.1.22", + "repository": { + "type": "git", + "url": "http://github.com/caolan/async.git" + }, + "bugs": { + "url": "http://github.com/caolan/async/issues" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/caolan/async/raw/master/LICENSE" + } + ], + "devDependencies": { + "nodeunit": ">0.0.0", + "uglify-js": "1.2.x", + "nodelint": ">0.0.0" + }, + "readme": "# Async.js\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [node.js](http://nodejs.org), it can also be used directly in the\nbrowser.\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (map, reduce, filter, forEach…) as well as some common patterns\nfor asynchronous control flow (parallel, series, waterfall…). All these\nfunctions assume you follow the node.js convention of providing a single\ncallback as the last argument of your async function.\n\n\n## Quick Examples\n\n async.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n });\n\n async.filter(['file1','file2','file3'], path.exists, function(results){\n // results now equals an array of the existing files\n });\n\n async.parallel([\n function(){ ... },\n function(){ ... }\n ], callback);\n\n async.series([\n function(){ ... },\n function(){ ... }\n ]);\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n\n## Download\n\nReleases are available for download from\n[GitHub](http://github.com/caolan/async/downloads).\nAlternatively, you can install using Node Package Manager (npm):\n\n npm install async\n\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed\n\n__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped\n\n\n## In the Browser\n\nSo far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:\n\n \n \n\n\n## Documentation\n\n### Collections\n\n* [forEach](#forEach)\n* [map](#map)\n* [filter](#filter)\n* [reject](#reject)\n* [reduce](#reduce)\n* [detect](#detect)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [whilst](#whilst)\n* [until](#until)\n* [waterfall](#waterfall)\n* [queue](#queue)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n\n### Utils\n\n* [memoize](#memoize)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n\n### forEach(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the forEach function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n // assuming openFiles is an array of file names and saveFile is a function\n // to save the modified contents of that file:\n\n async.forEach(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n });\n\n---------------------------------------\n\n\n### forEachSeries(arr, iterator, callback)\n\nThe same as forEach only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n\n### forEachLimit(arr, limit, iterator, callback)\n\nThe same as forEach only the iterator is applied to batches of items in the\narray, in series. The next batch of iterators is only called once the current\none has completed processing.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - How many items should be in each batch.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n // Assume documents is an array of JSON objects and requestApi is a\n // function that interacts with a rate-limited REST api.\n\n async.forEachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n });\n---------------------------------------\n\n\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n async.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n });\n\n---------------------------------------\n\n\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a new array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(results) - A callback which is called after all the iterator\n functions have finished.\n\n__Example__\n\n async.filter(['file1','file2','file3'], path.exists, function(results){\n // results now equals an array of the existing files\n });\n\n---------------------------------------\n\n\n### filterSeries(arr, iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n\n### rejectSeries(arr, iterator, callback)\n\nThe same as filter, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. For performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then its probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n array to produce the next step in the reduction. The iterator is passed a\n callback which accepts an optional error as its first argument, and the state\n of the reduction as the second. If an error is passed to the callback, the\n reduction is stopped and the main callback is immediately called with the\n error.\n* callback(err, result) - A callback which is called after all the iterator\n functions have finished. Result is the reduced value.\n\n__Example__\n\n async.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n }, function(err, result){\n // result is now equal to the last value of memo, which is 6\n });\n\n---------------------------------------\n\n\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value undefined if none passed.\n\n__Example__\n\n async.detect(['file1','file2','file3'], path.exists, function(result){\n // result now equals the first file in the list that exists\n });\n\n---------------------------------------\n\n\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and a value to use as the sort criteria.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is the items from\n the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n async.sortBy(['file1','file2','file3'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n }, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n });\n\n\n---------------------------------------\n\n\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n either true or false depending on the values of the async tests.\n\n__Example__\n\n async.some(['file1','file2','file3'], path.exists, function(result){\n // if result is true then at least one of the files exists\n });\n\n---------------------------------------\n\n\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called after all the iterator\n functions have finished. Result will be either true or false depending on\n the values of the async tests.\n\n__Example__\n\n async.every(['file1','file2','file3'], path.exists, function(result){\n // if result is true then every file exists\n });\n\n---------------------------------------\n\n\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array containing\n the concatenated results of the iterator function.\n\n__Example__\n\n async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n });\n\n---------------------------------------\n\n\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n a callback it must call on completion.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets an array of all the arguments passed to\n the callbacks used in the array.\n\n__Example__\n\n async.series([\n function(callback){\n // do some stuff ...\n callback(null, 'one');\n },\n function(callback){\n // do some more stuff ...\n callback(null, 'two');\n },\n ],\n // optional callback\n function(err, results){\n // results is now equal to ['one', 'two']\n });\n\n\n // an example using an object instead of an array\n async.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n },\n },\n function(err, results) {\n // results is now equal to: {one: 1, two: 2}\n });\n\n\n---------------------------------------\n\n\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed a\n callback it must call on completion.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets an array of all the arguments passed to\n the callbacks used in the array.\n\n__Example__\n\n async.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, 'one');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, 'two');\n }, 100);\n },\n ],\n // optional callback\n function(err, results){\n // the results array will equal ['one','two'] even though\n // the second function had a shorter timeout.\n });\n\n\n // an example using an object instead of an array\n async.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n },\n },\n function(err, results) {\n // results is now equals to: {one: 1, two: 2}\n });\n\n\n---------------------------------------\n\n\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n passed a callback which must be called once it has completed with an optional\n error as the first argument.\n* callback(err) - A callback which is called after the test fails and repeated\n execution of fn has stopped.\n\n__Example__\n\n var count = 0;\n\n async.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n );\n\n\n---------------------------------------\n\n\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n\n---------------------------------------\n\n\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a callback it\n must call on completion.\n* callback(err, [results]) - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n async.waterfall([\n function(callback){\n callback(null, 'one', 'two');\n },\n function(arg1, arg2, callback){\n callback(null, 'three');\n },\n function(arg1, callback){\n // arg1 now equals 'three'\n callback(null, 'done');\n }\n ], function (err, result) {\n // result now equals 'done' \n });\n\n\n---------------------------------------\n\n\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task's callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n task.\n* concurrency - An integer for determining how many worker functions should be\n run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n run in parallel. This property can be changed after a queue is created to\n alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n // create a queue object with concurrency 2\n\n var q = async.queue(function (task, callback) {\n console.log('hello ' + task.name);\n callback();\n }, 2);\n\n\n // assign a callback\n q.drain = function() {\n console.log('all items have been processed');\n }\n\n // add some items to the queue\n\n q.push({name: 'foo'}, function (err) {\n console.log('finished processing foo');\n });\n q.push({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n });\n\n // add some items to the queue (batch-wise)\n\n q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n console.log('finished processing bar');\n });\n\n\n---------------------------------------\n\n\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n requirements, with the function itself the last item in the array. The key\n used for each function or array is used when specifying requirements. The\n syntax is easier to understand by looking at the example.\n* callback(err, results) - An optional callback which is called when all the\n tasks have been completed. The callback will receive an error as an argument\n if any tasks pass an error to their callback. If all tasks complete\n successfully, it will receive an object containing their results.\n\n__Example__\n\n async.auto({\n get_data: function(callback){\n // async code to get some data\n },\n make_folder: function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n },\n write_file: ['get_data', 'make_folder', function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, filename);\n }],\n email_link: ['write_file', function(callback, results){\n // once the file is written let's email a link to it...\n // results.write_file contains the filename returned by write_file.\n }]\n });\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n async.parallel([\n function(callback){\n // async code to get some data\n },\n function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n }\n ],\n function(results){\n async.series([\n function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n },\n email_link: function(callback){\n // once the file is written let's email a link to it...\n }\n ]);\n });\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. Its also possible to\n'peek' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a callback it\n must call on completion.\n\n__Example__\n\n var iterator = async.iterator([\n function(){ sys.p('one'); },\n function(){ sys.p('two'); },\n function(){ sys.p('three'); }\n ]);\n\n node> var iterator2 = iterator();\n 'one'\n node> var iterator3 = iterator2();\n 'two'\n node> iterator3();\n 'three'\n node> var nextfn = iterator2.next();\n node> nextfn();\n 'three'\n\n\n---------------------------------------\n\n\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n // using apply\n\n async.parallel([\n async.apply(fs.writeFile, 'testfile1', 'test1'),\n async.apply(fs.writeFile, 'testfile2', 'test2'),\n ]);\n\n\n // the same process without using apply\n\n async.parallel([\n function(callback){\n fs.writeFile('testfile1', 'test1', callback);\n },\n function(callback){\n fs.writeFile('testfile2', 'test2', callback);\n },\n ]);\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n node> var fn = async.apply(sys.puts, 'one');\n node> fn('two', 'three');\n one\n two\n three\n\n---------------------------------------\n\n\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setTimeout(callback, 0),\nwhich means other higher priority events may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n var call_order = [];\n async.nextTick(function(){\n call_order.push('two');\n // call_order now equals ['one','two]\n });\n call_order.push('one')\n\n\n## Utils\n\n\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\n__Arguments__\n\n* fn - the function you to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n results, it has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n var slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n };\n var fn = async.memoize(slow_fn);\n\n // fn can now be used as if it were slow_fn\n fn('some name', function () {\n // callback\n });\n\n\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n var hello = function(name, callback){\n setTimeout(function(){\n callback(null, 'hello ' + name);\n }, 1000);\n };\n\n node> async.log(hello, 'world');\n 'hello world'\n\n\n---------------------------------------\n\n\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n var hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n };\n\n node> async.dir(hello, 'world');\n {hello: 'world'}\n\n\n---------------------------------------\n\n\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/caolan/async", + "_id": "async@0.1.22", + "dist": { + "shasum": "3b270eedc0419d6f92a664444ce98e0f59a8fef7" + }, + "_from": "async@0.1.22", + "_resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/package.json new file mode 100644 index 00000000..1d8c8459 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/package.json @@ -0,0 +1,45 @@ +{ + "name": "isbin", + "version": "0.0.2", + "description": "Checks for available binaries on unix machines", + "main": "index.js", + "engines": { + "node": ">= 0.8.0" + }, + "keywords": [ + "fs", + "bin", + "binary", + "exists", + "check", + "path" + ], + "scripts": { + "test": "make test" + }, + "repository": { + "type": "git", + "url": "git://github.com/behrendtio/isbin.git" + }, + "author": "", + "license": "MIT", + "dependencies": { + "async": "0.1.22" + }, + "devDependencies": { + "mocha": "1.7.3", + "should": "1.2.1" + }, + "readme": "[![Build Status](https://secure.travis-ci.org/mbehrendt/isbin.png?branch=master)](https://travis-ci.org/mbehrendt/isbin)\n\n# Isbin\n\nTiny little helper library to determine if a certain binary is available within $PATH or any additional folder.\n\n# Installation\n\n```bash\n$ npm install isbin\n```\n\n# Usage\n\n```js\nvar isbin = require('isbin');\n\n// Test against $PATH\nisbin('mysql', function(exists) {\n console.log(exists); // ==> Boolean\n});\n\n// With additional path to test\nisbin('mysql', '/usr/local/bin', function(exists) {\n console.log(exists); // ==> Boolean\n});\n\n// Or multiple ones\nisbin('mysql', ['/usr/local/bin', '/home/me/bins'], function(exists) {\n console.log(exists); // ==> Boolean\n});\n```\n\nThere are also synchronous versions available\n\n```js\nvar exists = isbin('mysql');\nvar exists = isbin('mysql', '/usr/local/bin');\nvar exists = isbin('mysql', ['/usr/local/bin', '/home/me/bins']);\n```\n\n# Running the tests\n\n```bash\n$ npm install\n$ make test\n```\n\n# License\n\n(The MIT License)\n\nCopyright (c) 2012 Mario Behrendt info@mario-behrendt.de, Stephan Hoyer \n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/behrendtio/isbin/issues" + }, + "homepage": "https://github.com/behrendtio/isbin", + "_id": "isbin@0.0.2", + "dist": { + "shasum": "2a35fb234ad5ee30f78da61b57e8f42ac43ec5a4" + }, + "_from": "isbin@0.0.2", + "_resolved": "https://registry.npmjs.org/isbin/-/isbin-0.0.2.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js new file mode 100644 index 00000000..068a38a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js @@ -0,0 +1,39 @@ +var isbin = require('../'); + +describe('isbin', function() { + it('accepts binary, additional path and callback', function(done) { + isbin('ls', '/etc', function(exists) { + exists.should.be.a('boolean'); + done(); + }) + }); + + it('accepts array of paths', function(done) { + isbin('ls', ['/etc', '/home'], function(exists) { + exists.should.be.a('boolean'); + done(); + }); + }); + + it('accepts just binary and callback', function(done) { + isbin('ls', function(exists) { + exists.should.be.a('boolean'); + done(); + }); + }); + + it('accepts binary, additional path and callback', function() { + var exists = isbin('ls', '/etc'); + exists.should.be.a('boolean'); + }); + + it('accepts array of paths', function() { + var exists = isbin('ls', ['/etc', '/home']); + exists.should.be.a('boolean'); + }); + + it('accepts just binary', function() { + var exists = isbin('ls'); + exists.should.be.a('boolean'); + }); +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts new file mode 100644 index 00000000..e5eb9f87 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts @@ -0,0 +1,4 @@ +--require should +--bail +--ui bdd +--slow 100 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig new file mode 100644 index 00000000..e036e247 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig @@ -0,0 +1,20 @@ +; EditorConfig is awesome: http://EditorConfig.org + +; top-most EditorConfig file +root = true + +; base rules +[*] +end_of_line = lf +insert_final_newline = false +indent_style = space +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true + +; The default indent on package.json is 2 spaces, better to keep it so we can +; use `npm install --save` and other features that rewrites the package.json +; file automatically +[package.json] +indent_style = space +indent_size = 2 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc new file mode 100644 index 00000000..bbdb29cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc @@ -0,0 +1,69 @@ +{ + // Settings + "passfail" : false, // Stop on first error. + "maxerr" : 50, // Maximum error before stopping. + + + // Predefined globals whom JSHint will ignore. + "browser" : true, // Standard browser globals e.g. `window`, `document`. + "couch" : false, + "dojo" : false, + "jquery" : true, + "mootools" : false, + "node" : false, + "prototypejs" : false, + "rhino" : false, + "wsh" : false, + + // Custom globals. + "predef" : [ + "define", + "require" + ], + + + // Development. + "debug" : false, // Allow debugger statements e.g. browser breakpoints. + "devel" : false, // Allow developments statements e.g. `console.log();`. + + + // EcmaScript 5. + "es5" : false, // Allow EcmaScript 5 syntax. + "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). + "strict" : false, // Require `use strict` pragma in every file. + + + // The Good Parts. + "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). + "bitwise" : false, // Prohibit bitwise operators (&, |, ^, etc.). + "boss" : true, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. + "curly" : false, // Require {} for every new block or scope. + "eqeqeq" : true, // Require triple equals i.e. `===`. + "eqnull" : true, // Tolerate use of `== null`. + "evil" : false, // Tolerate use of `eval`. + "expr" : false, // Tolerate `ExpressionStatement` as Programs. + "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. + "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef" : false, // Prohibit variable use before definition. + "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. + "loopfunc" : false, // Allow functions to be defined within loops. + "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "regexdash" : true, // Tolerate unescaped last dash i.e. `[-...]`. + "regexp" : false, // Prohibit `.` and `[^...]` in regular expressions. + "scripturl" : false, // Tolerate script-targeted URLs. + "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. + "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. + "undef" : false, // Require all non-global variables be declared before they are used. + + + // Personal styling prefrences. + "newcap" : true, // Require capitalization of all constructor functions e.g. `new F()`. + "noempty" : true, // Prohipit use of empty blocks. + "nomen" : false, // Prohibit use of initial or trailing underbars in names. + "nonew" : true, // Prohibit use of constructors for side-effects. + "onevar" : false, // Allow only one `var` statement per function. + "plusplus" : false, // Prohibit use of `++` & `--`. + "sub" : false, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. + "trailing" : true, // Prohibit trailing whitespaces. + "white" : false // Check against strict whitespace and indentation rules. +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore new file mode 100644 index 00000000..1341acd9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore @@ -0,0 +1,30 @@ +# dumb files +# ========== + +.tmp* +.project +.settings/ +.livereload +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db + + +# stuff not needed by node +# ======================== + +node_modules/ +tests/ +_build/ +doc_html/ +coverage/ + +# we keep the doc/ folder in case npm decides to display it in the future +# also good in case user is using an old version or working offline + +# we also keep the src/ folder in case the user still needs the AMD modules +# after build (see issue #102) + +bower.json +build.js diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml new file mode 100644 index 00000000..36de1532 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml @@ -0,0 +1,13 @@ + language: node_js + node_js: + - "0.8" + script: "npm test --coverage" + notifications: + irc: + channels: + - "irc.freenode.org#moutjs" + on_success: always + on_failure: always + use_notice: true + skip_join: true + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md new file mode 100644 index 00000000..0f5eac12 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md @@ -0,0 +1,93 @@ +mout changelog +============== + +v0.6.0 (2013/05/22) +------------------- + + - add optional delimeter to `string/unCamelCase` + - allow custom char on `number/pad` + - allow underscore characters in `string/removeNonWord` + - accept `level` on `array/flatten` instead of a flag + - convert underscores to camelCase in `string/camelCase` + - remove `create()` from number/currencyFormat + - add `date/dayOfTheYear` + - add `date/diff` + - add `date/isSame` + - add `date/startOf` + - add `date/strftime` + - add `date/timezoneAbbr` + - add `date/timezoneOffset` + - add `date/totalDaysInYear` + - add `date/weekOfTheYear` + - add `function/timeout` + - add `object/bindAll` + - add `object/functions` + - add `time/convert` + + +v0.5.0 (2013/04/04) +------------------- + + - add `array/collect` + - add `callback` parameter to `object/equals` and `object/deepEquals` to allow + custom compare operations. + - normalize behavior in `array/*` methods to treat `null` values as empty + arrays when reading from array + - add `date/parseIso` + - add `date/isLeapYear` + - add `date/totalDaysInMonth` + - add `object/deepMatches` + - change `function/makeIterator_` to use `deepMatches` (affects nearly all + iteration methods) + - add `thisObj` parameter to `array/min` and `array/max` + + +v0.4.0 (2013/02/26) +------------------- + + - add `object/equals` + - add `object/deepEquals` + - add `object/matches`. + - add `lang/is` and `lang/isnt`. + - add `lang/isInteger`. + - add `array/findIndex`. + - add shorthand syntax to `array/*`, `object/*` and `collection/*` methods. + - improve `number/sign` behavior when value is NaN or +0 or -0. + - improve `lang/isNaN` to actually check if value *is not a number* without + coercing value; so `[]`, `""`, `null` and `"12"` are considered NaN (#39). + - improve `string/contains` to match ES6 behavior (add fromIndex argument). + + +v0.3.0 (2013/02/01) +------------------- + + - add `lang/clone`. + - add `lang/toString`. + - add `string/replace`. + - add `string/WHITE_SPACES` + - rename `function/curry` to `function/partial`. + - allow custom chars in `string/trim`, `ltrim`, and `rtrim`. + - convert values to strings in the `string/*` functions. + + +v0.2.0 (2013/01/13) +------------------- + + - fix bug in `math/ceil` for negative radixes. + - change `object/deepFillIn` and `object/deepMixIn` to recurse only if both + existing and new values are plain objects. Will not recurse into arrays + or objects not created by the Object constructor. + - add `lang/isPlainObject` to check if a file is a valid object and is created + by the Object constructor + - change `lang/clone` behavior when dealing with custom types (avoid cloning + it by default) and add second argument to allow custom behavior if needed. + - rename `lang/clone` to `lang/deepClone`. + - add VERSION property to index.js + - simplify `math/floor`, `math/round`, `math/ceil` and `math/countSteps`. + + +v0.1.0 (2013/01/09) +------------------- + +- Rename project from "amd-utils" to "mout" + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md new file mode 100644 index 00000000..65d9add1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contributing + +Fork the repo at https://github.com/mout/mout + + > "Write clearly, don't be too clever" - The Elements of Programming Style + +Avoid unnamed functions and follow the other modules structure. By only using named functions it will be easier to extract the code from the AMD module if needed and it will also give better error messages, JavaScript minifiers like [Google Closure Compiler](http://code.google.com/closure/compiler/) and [UglifyJS](https://github.com/mishoo/UglifyJS) will make sure code is as small/optimized as possible. + + > "Make it clear before you make it faster." - The Elements of Programming Style + +Be sure to always create tests for each proposed module. Features will only be merged if they contain proper tests and documentation. + + > "Good code is its own best documentation." - Steve McConnell + +We should do a code review before merging to make sure names makes sense and implementation is as good as possible. + +Try to split your pull requests into logical groups, the smaller the easier to be reviewed/merged. + + + +## Tests & Code Coverage ## + +Tests can be found inside the `tests` folder, to execute them in the browser open the `tests/runner.html`. The same tests also work on node.js by running `npm test`. + +We should have tests for all methods and ensure we have a high code coverage through our continuous integration server ([travis](https://travis-ci.org/mout/mout)). When you ask for a pull request Travis will automatically run the tests on node.js and check the code coverage as well. + +We run `node build pkg` automatically before any `npm test`, so specs and packages should always be in sync. (will avoid human mistakes) + +To check code coverage run `npm test --coverage`, it will generate the reports inside the `coverage` folder and also log the results. Please note that node.js doesn't execute all code branches since we have some conditionals that are only met on old JavaScript engines (eg. IE 7-8), so we will never have 100% code coverage (but should be close to it). + + + +## Build Script ## + +The [build script](https://github.com/mout/mout/wiki/Build-Script) can be extremely helpful and can avoid human mistakes, use it. + + + +## Admins / Pull Requests ## + +Even if you are an admin (have commit rights) please do pull requests when adding new features or changing current behavior, that way we can review the work and discuss. Feel free to push changes that doesn't affect behavior without asking for a pull request (readme, changelog, build script, typos, refactoring, ...). + + + +## Large changes ## + +If you are proposing some major change, please create an issue to discuss it first. (maybe it's outside the scope of the project) + + + +## Questions / IRC / Wiki / Issue Tracker ## + +When in doubt ask someone on IRC to help you ([#moutjs on irc.freenode.net](http://webchat.freenode.net/?channels=moutjs)) or create a [new issue](http://github.com/mout/mout/issues). + +The [project wiki](https://github.com/mout/mout/wiki) can also be a good resource of information. + + +--- + +Check the [contributors list at github](https://github.com/mout/mout/contributors). + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md new file mode 100644 index 00000000..e9ccc2be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md @@ -0,0 +1,21 @@ +# The MIT License (MIT) +## Copyright (c) 2012, 2013 moutjs team and contributors (http://moutjs.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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/README.md new file mode 100644 index 00000000..872943bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/README.md @@ -0,0 +1,63 @@ +![mout](http://moutjs.com/logo.png "Modular JavaScript Utilties") + +http://moutjs.com/ + +[![Build Status](https://travis-ci.org/mout/mout.png?branch=master)](https://travis-ci.org/mout/mout) + +All code is library agnostic and consist mostly of helper methods that aren't +directly related with the DOM, the purpose of this library isn't to replace +Dojo, jQuery, YUI, Mootools, etc, but to provide modular solutions for common +problems that aren't solved by most of them. Consider it as a crossbrowser +JavaScript standard library. + + + +## Main goals ## + + - increase code reuse; + - be clear (code should be clean/readable); + - be easy to debug; + - be easy to maintain; + - follow best practices; + - follow standards when possible; + - **don't convert JavaScript into another language!** + - be compatible with other frameworks; + - be modular; + - have unit tests for all modules; + - work on multiple environments (IE7+, modern browsers, node.js); + + + +## What shouldn't be here ## + + - UI components; + - CSS selector engine; + - Event system - pub/sub; + - Template engine; + - Anything that isn't generic enough to be on a standard library; + - Anything that could be a separate library and/or isn't a modular utility... + + + +## API Documentation ## + +Online documentation can be found at http://moutjs.com/ or inside the +`doc` folder. + + + +## FAQ / Wiki / IRC ## + +For more info about project structure, design decisions, tips, how to +contribute, build system, etc, please check the [project +wiki](https://github.com/mout/mout/wiki). + +We also have an IRC channel [#moutjs on +irc.freenode.net](http://webchat.freenode.net/?channels=moutjs) + + + +## License ## + +Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array.js new file mode 100644 index 00000000..89d388ba --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array.js @@ -0,0 +1,46 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'append' : require('./array/append'), + 'collect' : require('./array/collect'), + 'combine' : require('./array/combine'), + 'compact' : require('./array/compact'), + 'contains' : require('./array/contains'), + 'difference' : require('./array/difference'), + 'every' : require('./array/every'), + 'filter' : require('./array/filter'), + 'find' : require('./array/find'), + 'findIndex' : require('./array/findIndex'), + 'flatten' : require('./array/flatten'), + 'forEach' : require('./array/forEach'), + 'indexOf' : require('./array/indexOf'), + 'insert' : require('./array/insert'), + 'intersection' : require('./array/intersection'), + 'invoke' : require('./array/invoke'), + 'join' : require('./array/join'), + 'lastIndexOf' : require('./array/lastIndexOf'), + 'map' : require('./array/map'), + 'max' : require('./array/max'), + 'min' : require('./array/min'), + 'pick' : require('./array/pick'), + 'pluck' : require('./array/pluck'), + 'range' : require('./array/range'), + 'reduce' : require('./array/reduce'), + 'reduceRight' : require('./array/reduceRight'), + 'reject' : require('./array/reject'), + 'remove' : require('./array/remove'), + 'removeAll' : require('./array/removeAll'), + 'shuffle' : require('./array/shuffle'), + 'some' : require('./array/some'), + 'sort' : require('./array/sort'), + 'split' : require('./array/split'), + 'toLookup' : require('./array/toLookup'), + 'union' : require('./array/union'), + 'unique' : require('./array/unique'), + 'xor' : require('./array/xor'), + 'zip' : require('./array/zip') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js new file mode 100644 index 00000000..bf74037e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js @@ -0,0 +1,21 @@ + + + /** + * Appends an array to the end of another. + * The first array will be modified. + */ + function append(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var pad = arr1.length, + i = -1, + len = arr2.length; + while (++i < len) { + arr1[pad + i] = arr2[i]; + } + return arr1; + } + module.exports = append; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js new file mode 100644 index 00000000..58637493 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js @@ -0,0 +1,27 @@ +var append = require('./append'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Maps the items in the array and concatenates the result arrays. + */ + function collect(arr, callback, thisObj){ + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + var value = callback(arr[i], i, arr); + if (value != null) { + append(results, value); + } + } + + return results; + } + + module.exports = collect; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js new file mode 100644 index 00000000..d66e6212 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js @@ -0,0 +1,22 @@ +var indexOf = require('./indexOf'); + + /** + * Combines an array with all the items of another. + * Does not allow duplicates and is case and type sensitive. + */ + function combine(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var i = -1, len = arr2.length; + while (++i < len) { + if (indexOf(arr1, arr2[i]) === -1) { + arr1.push(arr2[i]); + } + } + + return arr1; + } + module.exports = combine; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js new file mode 100644 index 00000000..74c176ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js @@ -0,0 +1,13 @@ +var filter = require('./filter'); + + /** + * Remove all null/undefined items from array. + */ + function compact(arr) { + return filter(arr, function(val){ + return (val != null); + }); + } + + module.exports = compact; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js new file mode 100644 index 00000000..92bb6ad9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js @@ -0,0 +1,10 @@ +var indexOf = require('./indexOf'); + + /** + * If array contains values. + */ + function contains(arr, val) { + return indexOf(arr, val) !== -1; + } + module.exports = contains; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js new file mode 100644 index 00000000..d0570510 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js @@ -0,0 +1,22 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var some = require('./some'); +var contains = require('./contains'); + + + /** + * Return a new Array with elements that aren't present in the other Arrays. + */ + function difference(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return !some(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + module.exports = difference; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js new file mode 100644 index 00000000..ac598832 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js @@ -0,0 +1,27 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Array every + */ + function every(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (!callback(arr[i], i, arr) ) { + result = false; + break; + } + } + + return result; + } + + module.exports = every; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js new file mode 100644 index 00000000..ebeb58dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js @@ -0,0 +1,27 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array filter + */ + function filter(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + module.exports = filter; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js new file mode 100644 index 00000000..b4a73131 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js @@ -0,0 +1,13 @@ +var findIndex = require('./findIndex'); + + /** + * Returns first item that matches criteria + */ + function find(arr, iterator, thisObj){ + var idx = findIndex(arr, iterator, thisObj); + return idx >= 0? arr[idx] : void(0); + } + + module.exports = find; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js new file mode 100644 index 00000000..53f22a5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js @@ -0,0 +1,23 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Returns the index of the first item that matches criteria + */ + function findIndex(arr, iterator, thisObj){ + iterator = makeIterator(iterator, thisObj); + if (arr == null) { + return -1; + } + + var i = -1, len = arr.length; + while (++i < len) { + if (iterator(arr[i], i, arr)) { + return i; + } + } + + return -1; + } + + module.exports = findIndex; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js new file mode 100644 index 00000000..aa9757ab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js @@ -0,0 +1,43 @@ +var isArray = require('../lang/isArray'); +var append = require('./append'); + + /* + * Helper function to flatten to a destination array. + * Used to remove the need to create intermediate arrays while flattening. + */ + function flattenTo(arr, result, level) { + if (arr == null) { + return result; + } else if (level === 0) { + append(result, arr); + return result; + } + + var value, + i = -1, + len = arr.length; + while (++i < len) { + value = arr[i]; + if (isArray(value)) { + flattenTo(value, result, level - 1); + } else { + result.push(value); + } + } + return result; + } + + /** + * Recursively flattens an array. + * A new array containing all the elements is returned. + * If `shallow` is true, it will only flatten one level. + */ + function flatten(arr, level) { + level = level == null? -1 : level; + return flattenTo(arr, [], level); + } + + module.exports = flatten; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js new file mode 100644 index 00000000..268e506f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js @@ -0,0 +1,23 @@ + + + /** + * Array forEach + */ + function forEach(arr, callback, thisObj) { + if (arr == null) { + return; + } + var i = -1, + len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback.call(thisObj, arr[i], i, arr) === false ) { + break; + } + } + } + + module.exports = forEach; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js new file mode 100644 index 00000000..6a9ac832 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js @@ -0,0 +1,28 @@ + + + /** + * Array.indexOf + */ + function indexOf(arr, item, fromIndex) { + fromIndex = fromIndex || 0; + if (arr == null) { + return -1; + } + + var len = arr.length, + i = fromIndex < 0 ? len + fromIndex : fromIndex; + while (i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[i] === item) { + return i; + } + + i++; + } + + return -1; + } + + module.exports = indexOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js new file mode 100644 index 00000000..f1f95b75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js @@ -0,0 +1,15 @@ +var difference = require('./difference'); +var toArray = require('../lang/toArray'); + + /** + * Insert item into array if not already present. + */ + function insert(arr, rest_items) { + var diff = difference(toArray(arguments).slice(1), arr); + if (diff.length) { + Array.prototype.push.apply(arr, diff); + } + return arr.length; + } + module.exports = insert; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js new file mode 100644 index 00000000..e6170062 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js @@ -0,0 +1,23 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var every = require('./every'); +var contains = require('./contains'); + + + /** + * Return a new Array with elements common to all Arrays. + * - based on underscore.js implementation + */ + function intersection(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return every(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + module.exports = intersection; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js new file mode 100644 index 00000000..c01aab1b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); + + /** + * Call `methodName` on each item of the array passing custom arguments if + * needed. + */ + function invoke(arr, methodName, var_args){ + if (arr == null) { + return arr; + } + + var args = Array.prototype.slice.call(arguments, 2); + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + value[methodName].apply(value, args); + } + + return arr; + } + + module.exports = invoke; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js new file mode 100644 index 00000000..71d8bd20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js @@ -0,0 +1,17 @@ +var filter = require('./filter'); + + function isValidString(val) { + return (val != null && val !== ''); + } + + /** + * Joins strings with the specified separator inserted between each value. + * Null values and empty strings will be excluded. + */ + function join(items, separator) { + separator = separator || ''; + return filter(items, isValidString).join(separator); + } + + module.exports = join; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js new file mode 100644 index 00000000..ee44a25b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js @@ -0,0 +1,28 @@ + + + /** + * Array lastIndexOf + */ + function lastIndexOf(arr, item, fromIndex) { + if (arr == null) { + return -1; + } + + var len = arr.length; + fromIndex = (fromIndex == null || fromIndex >= len)? len - 1 : fromIndex; + fromIndex = (fromIndex < 0)? len + fromIndex : fromIndex; + + while (fromIndex >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[fromIndex] === item) { + return fromIndex; + } + fromIndex--; + } + + return -1; + } + + module.exports = lastIndexOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js new file mode 100644 index 00000000..54064f6b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array map + */ + function map(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null){ + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + results[i] = callback(arr[i], i, arr); + } + + return results; + } + + module.exports = map; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js new file mode 100644 index 00000000..183b10ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js @@ -0,0 +1,35 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Return maximum value inside array + */ + function max(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return Infinity; + } else if (arr.length && !iterator) { + return Math.max.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = -Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp > compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + module.exports = max; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js new file mode 100644 index 00000000..dd00b6cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js @@ -0,0 +1,35 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Return minimum value inside array + */ + function min(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return -Infinity; + } else if (arr.length && !iterator) { + return Math.min.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp < compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + module.exports = min; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js new file mode 100644 index 00000000..6a54846c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js @@ -0,0 +1,14 @@ +var randInt = require('../random/randInt'); + + /** + * Remove a random item from the Array and return it + */ + function pick(arr){ + if (arr == null || !arr.length) return; + var idx = randInt(0, arr.length - 1); + return arr.splice(idx, 1)[0]; + } + + module.exports = pick; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js new file mode 100644 index 00000000..fef4043b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js @@ -0,0 +1,12 @@ +var map = require('./map'); + + /** + * Extract a list of property values. + */ + function pluck(arr, propName){ + return map(arr, propName); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js new file mode 100644 index 00000000..31d3c770 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js @@ -0,0 +1,27 @@ +var countSteps = require('../math/countSteps'); + + /** + * Returns an Array of numbers inside range. + */ + function range(start, stop, step) { + if (stop == null) { + stop = start; + start = 0; + } + step = step || 1; + + var result = [], + nSteps = countSteps(stop - start, step), + i = start; + + while (i <= stop) { + result.push(i); + i += step; + } + + return result; + } + + module.exports = range; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js new file mode 100644 index 00000000..1a350c6e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js @@ -0,0 +1,33 @@ +var forEach = require('./forEach'); + + /** + * Array reduce + */ + function reduce(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2, + result = initVal; + + if (arr == null || !arr.length) { + if (!hasInit) { + throw new Error('reduce of empty array with no initial value'); + } else { + return initVal; + } + } + + var i = -1, len = arr.length; + while (++i < len) { + if (!hasInit) { + result = arr[i]; + hasInit = true; + } else { + result = fn(result, arr[i], i, arr); + } + } + + return result; + } + + module.exports = reduce; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js new file mode 100644 index 00000000..e36fd4aa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js @@ -0,0 +1,34 @@ + + + /** + * Array reduceRight + */ + function reduceRight(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2; + + if (arr == null || !arr.length) { + if (hasInit) { + return initVal; + } else { + throw new Error('reduce of empty array with no initial value'); + } + } + + var i = arr.length, result = initVal, value; + while (--i >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + value = arr[i]; + if (!hasInit) { + result = value; + hasInit = true; + } else { + result = fn(result, value, i, arr); + } + } + return result; + } + + module.exports = reduceRight; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js new file mode 100644 index 00000000..685f2918 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js @@ -0,0 +1,26 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array reject + */ + function reject(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (!callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + module.exports = reject; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js new file mode 100644 index 00000000..aa6517db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js @@ -0,0 +1,13 @@ +var indexOf = require('./indexOf'); + + /** + * Remove a single item from the array. + * (it won't remove duplicates, just a single item) + */ + function remove(arr, item){ + var idx = indexOf(arr, item); + if (idx !== -1) arr.splice(idx, 1); + } + + module.exports = remove; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js new file mode 100644 index 00000000..d5f7f3b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js @@ -0,0 +1,15 @@ +var indexOf = require('./indexOf'); + + /** + * Remove all instances of an item from array. + */ + function removeAll(arr, item){ + var idx = indexOf(arr, item); + while (idx !== -1) { + arr.splice(idx, 1); + idx = indexOf(arr, item, idx); + } + } + + module.exports = removeAll; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js new file mode 100644 index 00000000..97805ec8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js @@ -0,0 +1,29 @@ +var randInt = require('../random/randInt'); +var forEach = require('./forEach'); + + /** + * Shuffle array items. + */ + function shuffle(arr) { + var results = [], + rnd; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + if (!i) { + results[0] = arr[0]; + } else { + rnd = randInt(0, i); + results[i] = results[rnd]; + results[rnd] = arr[i]; + } + } + + return results; + } + + module.exports = shuffle; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js new file mode 100644 index 00000000..8d17772b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js @@ -0,0 +1,27 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Array some + */ + function some(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback(arr[i], i, arr) ) { + result = true; + break; + } + } + + return result; + } + + module.exports = some; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js new file mode 100644 index 00000000..7807339b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js @@ -0,0 +1,55 @@ + + + /** + * Merge sort (http://en.wikipedia.org/wiki/Merge_sort) + */ + function mergeSort(arr, compareFn) { + if (arr == null) { + return []; + } else if (arr.length < 2) { + return arr; + } + + if (compareFn == null) { + compareFn = defaultCompare; + } + + var mid, left, right; + + mid = ~~(arr.length / 2); + left = mergeSort( arr.slice(0, mid), compareFn ); + right = mergeSort( arr.slice(mid, arr.length), compareFn ); + + return merge(left, right, compareFn); + } + + function defaultCompare(a, b) { + return a < b ? -1 : (a > b? 1 : 0); + } + + function merge(left, right, compareFn) { + var result = []; + + while (left.length && right.length) { + if (compareFn(left[0], right[0]) <= 0) { + // if 0 it should preserve same order (stable) + result.push(left.shift()); + } else { + result.push(right.shift()); + } + } + + if (left.length) { + result.push.apply(result, left); + } + + if (right.length) { + result.push.apply(result, right); + } + + return result; + } + + module.exports = mergeSort; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js new file mode 100644 index 00000000..4f3ba50c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js @@ -0,0 +1,35 @@ + + + /** + * Split array into a fixed number of segments. + */ + function split(array, segments) { + segments = segments || 2; + var results = []; + if (array == null) { + return results; + } + + var minLength = Math.floor(array.length / segments), + remainder = array.length % segments, + i = 0, + len = array.length, + segmentIndex = 0, + segmentLength; + + while (i < len) { + segmentLength = minLength; + if (segmentIndex < remainder) { + segmentLength++; + } + + results.push(array.slice(i, i + segmentLength)); + + segmentIndex++; + i += segmentLength; + } + + return results; + } + module.exports = split; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js new file mode 100644 index 00000000..ce4c55dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js @@ -0,0 +1,28 @@ +var isFunction = require('../lang/isFunction'); + + /** + * Creates an object that holds a lookup for the objects in the array. + */ + function toLookup(arr, key) { + var result = {}; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length, value; + if (isFunction(key)) { + while (++i < len) { + value = arr[i]; + result[key(value)] = value; + } + } else { + while (++i < len) { + value = arr[i]; + result[value[key]] = value; + } + } + + return result; + } + module.exports = toLookup; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js new file mode 100644 index 00000000..f1334a91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js @@ -0,0 +1,19 @@ +var unique = require('./unique'); +var append = require('./append'); + + /** + * Concat multiple arrays and remove duplicates + */ + function union(arrs) { + var results = []; + var i = -1, len = arguments.length; + while (++i < len) { + append(results, arguments[i]); + } + + return unique(results); + } + + module.exports = union; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js new file mode 100644 index 00000000..0192b2df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js @@ -0,0 +1,17 @@ +var indexOf = require('./indexOf'); +var filter = require('./filter'); + + /** + * @return {array} Array of unique items + */ + function unique(arr){ + return filter(arr, isUnique); + } + + function isUnique(item, i, arr){ + return indexOf(arr, item, i+1) === -1; + } + + module.exports = unique; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js new file mode 100644 index 00000000..c125a996 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js @@ -0,0 +1,26 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var contains = require('./contains'); + + + /** + * Exclusive OR. Returns items that are present in a single array. + * - like ptyhon's `symmetric_difference` + */ + function xor(arr1, arr2) { + arr1 = unique(arr1); + arr2 = unique(arr2); + + var a1 = filter(arr1, function(item){ + return !contains(arr2, item); + }), + a2 = filter(arr2, function(item){ + return !contains(arr1, item); + }); + + return a1.concat(a2); + } + + module.exports = xor; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js new file mode 100644 index 00000000..931eb818 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js @@ -0,0 +1,29 @@ +var max = require('./max'); +var pluck = require('./pluck'); +var map = require('./map'); + + function getLength(arr) { + return arr == null ? 0 : arr.length; + } + + /** + * Merges together the values of each of the arrays with the values at the + * corresponding position. + */ + function zip(arr){ + var len = arr ? max(map(arguments, getLength)) : 0, + results = [], + i = -1, + item; + while (++i < len) { + results.push(map(arguments, function(item) { + return item == null ? undefined : item[i]; + })); + } + + return results; + } + + module.exports = zip; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection.js new file mode 100644 index 00000000..d5cf6cad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection.js @@ -0,0 +1,22 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'contains' : require('./collection/contains'), + 'every' : require('./collection/every'), + 'filter' : require('./collection/filter'), + 'find' : require('./collection/find'), + 'forEach' : require('./collection/forEach'), + 'make_' : require('./collection/make_'), + 'map' : require('./collection/map'), + 'max' : require('./collection/max'), + 'min' : require('./collection/min'), + 'pluck' : require('./collection/pluck'), + 'reduce' : require('./collection/reduce'), + 'reject' : require('./collection/reject'), + 'size' : require('./collection/size'), + 'some' : require('./collection/some') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js new file mode 100644 index 00000000..a73f994b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrContains = require('../array/contains'); +var objContains = require('../object/contains'); + + /** + */ + module.exports = make(arrContains, objContains); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js new file mode 100644 index 00000000..300e03c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrEvery = require('../array/every'); +var objEvery = require('../object/every'); + + /** + */ + module.exports = make(arrEvery, objEvery); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js new file mode 100644 index 00000000..38757005 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * filter collection values, returns array. + */ + function filter(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + var results = []; + if (!list) { + return results; + } + forEach(list, function(value, index, list) { + if (iterator(value, index, list)) { + results[results.length] = value; + } + }); + return results; + } + + module.exports = filter; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js new file mode 100644 index 00000000..14317e64 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrFind = require('../array/find'); +var objFind = require('../object/find'); + + /** + * Find value that returns true on iterator check. + */ + module.exports = make(arrFind, objFind); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js new file mode 100644 index 00000000..6e28dcb1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrForEach = require('../array/forEach'); +var objForEach = require('../object/forOwn'); + + /** + */ + module.exports = make(arrForEach, objForEach); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js new file mode 100644 index 00000000..029d27bf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js @@ -0,0 +1,19 @@ + + + /** + * internal method used to create other collection modules. + */ + function makeCollectionMethod(arrMethod, objMethod, defaultReturn) { + return function(){ + var args = Array.prototype.slice.call(arguments); + if (args[0] == null) { + return defaultReturn; + } + // array-like is treated as array + return (typeof args[0].length === 'number')? arrMethod.apply(null, args) : objMethod.apply(null, args); + }; + } + + module.exports = makeCollectionMethod; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js new file mode 100644 index 00000000..fc157f53 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js @@ -0,0 +1,23 @@ +var isObject = require('../lang/isObject'); +var values = require('../object/values'); +var arrMap = require('../array/map'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Map collection values, returns Array. + */ + function map(list, callback, thisObj) { + callback = makeIterator(callback, thisObj); + // list.length to check array-like object, if not array-like + // we simply map all the object values + if( isObject(list) && list.length == null ){ + list = values(list); + } + return arrMap(list, function (val, key, list) { + return callback(val, key, list); + }); + } + + module.exports = map; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js new file mode 100644 index 00000000..a8490e7e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrMax = require('../array/max'); +var objMax = require('../object/max'); + + /** + * Get maximum value inside collection + */ + module.exports = make(arrMax, objMax); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js new file mode 100644 index 00000000..51d9f148 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrMin = require('../array/min'); +var objMin = require('../object/min'); + + /** + * Get minimum value inside collection. + */ + module.exports = make(arrMin, objMin); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js new file mode 100644 index 00000000..9b283776 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js @@ -0,0 +1,14 @@ +var map = require('./map'); + + /** + * Extract a list of property values. + */ + function pluck(list, key) { + return map(list, function(value) { + return value[key]; + }); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js new file mode 100644 index 00000000..4c075735 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrReduce = require('../array/reduce'); +var objReduce = require('../object/reduce'); + + /** + */ + module.exports = make(arrReduce, objReduce); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js new file mode 100644 index 00000000..2a92e3b3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Inverse or collection/filter + */ + function reject(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + return filter(list, function(value, index, list) { + return !iterator(value, index, list); + }, thisObj); + } + + module.exports = reject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js new file mode 100644 index 00000000..244e33e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js @@ -0,0 +1,19 @@ +var isArray = require('../lang/isArray'); +var objSize = require('../object/size'); + + /** + * Get collection size + */ + function size(list) { + if (!list) { + return 0; + } + if (isArray(list)) { + return list.length; + } + return objSize(list); + } + + module.exports = size; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js new file mode 100644 index 00000000..48fd252e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrSome = require('../array/some'); +var objSome = require('../object/some'); + + /** + */ + module.exports = make(arrSome, objSome); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date.js new file mode 100644 index 00000000..1cde1a95 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date.js @@ -0,0 +1,21 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'dayOfTheYear' : require('./date/dayOfTheYear'), + 'diff' : require('./date/diff'), + 'i18n_' : require('./date/i18n_'), + 'isLeapYear' : require('./date/isLeapYear'), + 'isSame' : require('./date/isSame'), + 'parseIso' : require('./date/parseIso'), + 'startOf' : require('./date/startOf'), + 'strftime' : require('./date/strftime'), + 'timezoneAbbr' : require('./date/timezoneAbbr'), + 'timezoneOffset' : require('./date/timezoneOffset'), + 'totalDaysInMonth' : require('./date/totalDaysInMonth'), + 'totalDaysInYear' : require('./date/totalDaysInYear'), + 'weekOfTheYear' : require('./date/weekOfTheYear') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js new file mode 100644 index 00000000..85905c5a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js @@ -0,0 +1,13 @@ +var isDate = require('../lang/isDate'); + + /** + * return the day of the year (1..366) + */ + function dayOfTheYear(date){ + return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - + Date.UTC(date.getFullYear(), 0, 1)) / 86400000 + 1; + } + + module.exports = dayOfTheYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js new file mode 100644 index 00000000..1131cdcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js @@ -0,0 +1,130 @@ +var totalDaysInMonth = require('./totalDaysInMonth'); +var totalDaysInYear = require('./totalDaysInYear'); +var convert = require('../time/convert'); + + /** + * calculate the difference between dates (range) + */ + function diff(start, end, unitName){ + // sort the dates to make it easier to process (specially year/month) + if (start > end) { + var swap = start; + start = end; + end = swap; + } + + var output; + + if (unitName === 'month') { + output = getMonthsDiff(start, end); + } else if (unitName === 'year'){ + output = getYearsDiff(start, end); + } else if (unitName != null) { + if (unitName === 'day') { + // ignore timezone difference because of daylight savings time + start = toUtc(start); + end = toUtc(end); + } + output = convert(end - start, 'ms', unitName); + } else { + output = end - start; + } + + return output; + } + + + function toUtc(d){ + // we ignore timezone differences on purpose because of daylight + // savings time, otherwise it would return fractional days/weeks even + // if a full day elapsed. eg: + // Wed Feb 12 2014 00:00:00 GMT-0200 (BRST) + // Sun Feb 16 2014 00:00:00 GMT-0300 (BRT) + // diff should be 4 days and not 4.041666666666667 + return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), + d.getHours(), d.getMinutes(), d.getSeconds(), + d.getMilliseconds()); + } + + + function getMonthsDiff(start, end){ + return getElapsedMonths(start, end) + + getElapsedYears(start, end) * 12 + + getFractionalMonth(start, end); + } + + + function getYearsDiff(start, end){ + var elapsedYears = getElapsedYears(start, end); + return elapsedYears + getFractionalYear(start, end, elapsedYears); + } + + + function getElapsedMonths(start, end){ + var monthDiff = end.getMonth() - start.getMonth(); + if (monthDiff < 0) { + monthDiff += 12; + } + // less than a full month + if (start.getDate() > end.getDate()) { + monthDiff -= 1; + } + return monthDiff; + } + + + function getElapsedYears(start, end){ + var yearDiff = end.getFullYear() - start.getFullYear(); + // less than a full year + if (start.getMonth() > end.getMonth()) { + yearDiff -= 1; + } + return yearDiff; + } + + + function getFractionalMonth(start, end){ + var fractionalDiff = 0; + var startDay = start.getDate(); + var endDay = end.getDate(); + + if (startDay !== endDay) { + var startTotalDays = totalDaysInMonth(start); + var endTotalDays = totalDaysInMonth(end); + var totalDays; + var daysElapsed; + + if (startDay > endDay) { + // eg: Jan 29 - Feb 27 (29 days elapsed but not a full month) + var baseDay = startTotalDays - startDay; + daysElapsed = endDay + baseDay; + // total days should be relative to 1st day of next month if + // startDay > endTotalDays + totalDays = (startDay > endTotalDays)? + endTotalDays + baseDay + 1 : startDay + baseDay; + } else { + // fractional is only based on endMonth eg: Jan 12 - Feb 18 + // (6 fractional days, 28 days until next full month) + daysElapsed = endDay - startDay; + totalDays = endTotalDays; + } + + fractionalDiff = daysElapsed / totalDays; + } + + return fractionalDiff; + } + + + function getFractionalYear(start, end, elapsedYears){ + var base = elapsedYears? + new Date(end.getFullYear(), start.getMonth(), start.getDate()) : + start; + var elapsedDays = diff(base, end, 'day'); + return elapsedDays / totalDaysInYear(end); + } + + + module.exports = diff; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js new file mode 100644 index 00000000..f9526ce4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js @@ -0,0 +1,61 @@ + + // en-US (English, United States) + module.exports = { + "am" : "AM", + "pm" : "PM", + + "x": "%m/%d/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %I:%M:%S %p %Z", + + "months" : [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + + "months_abbr" : [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + + "days_abbr" : [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ] + }; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js new file mode 100644 index 00000000..71ebadb5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js @@ -0,0 +1,61 @@ + + // pt-BR (Brazillian Portuguese) + module.exports = { + "am" : "", + "pm" : "", + + "x": "%d/%m/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %H:%M:%S %Z", + + "months" : [ + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + + "months_abbr" : [ + "Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez" + ], + + "days" : [ + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + + "days_abbr" : [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sáb" + ] + }; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js new file mode 100644 index 00000000..723fc103 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js @@ -0,0 +1,14 @@ +var mixIn = require('../object/mixIn'); +var enUS = require('./i18n/en-US'); + + // we also use mixIn to make sure we don't affect the original locale + var activeLocale = mixIn({}, enUS, { + // we expose a "set" method to allow overriding the global locale + set : function(localeData){ + mixIn(activeLocale, localeData); + } + }); + + module.exports = activeLocale; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js new file mode 100644 index 00000000..4212870b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js @@ -0,0 +1,15 @@ +var isDate = require('../lang/isDate'); + + /** + * checks if it's a leap year + */ + function isLeapYear(fullYear){ + if (isDate(fullYear)) { + fullYear = fullYear.getFullYear(); + } + return fullYear % 400 === 0 || (fullYear % 100 !== 0 && fullYear % 4 === 0); + } + + module.exports = isLeapYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js new file mode 100644 index 00000000..4097d29b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js @@ -0,0 +1,16 @@ +var startOf = require('./startOf'); + + /** + * Check if date is "same" with optional period + */ + function isSame(date1, date2, period){ + if (period) { + date1 = startOf(date1, period); + date2 = startOf(date2, period); + } + return Number(date1) === Number(date2); + } + + module.exports = isSame; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js new file mode 100644 index 00000000..8ea2b171 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js @@ -0,0 +1,146 @@ +var some = require('../array/some'); + + var datePatterns = [ + /^([0-9]{4})$/, // YYYY + /^([0-9]{4})-([0-9]{2})$/, // YYYY-MM (YYYYMM not allowed) + /^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/ // YYYY-MM-DD or YYYYMMDD + ]; + var ORD_DATE = /^([0-9]{4})-?([0-9]{3})$/; // YYYY-DDD + + var timePatterns = [ + /^([0-9]{2}(?:\.[0-9]*)?)$/, // HH.hh + /^([0-9]{2}):?([0-9]{2}(?:\.[0-9]*)?)$/, // HH:MM.mm + /^([0-9]{2}):?([0-9]{2}):?([0-9]{2}(\.[0-9]*)?)$/ // HH:MM:SS.ss + ]; + + var DATE_TIME = /^(.+)T(.+)$/; + var TIME_ZONE = /^(.+)([+\-])([0-9]{2}):?([0-9]{2})$/; + + function matchAll(str, patterns) { + var match; + var found = some(patterns, function(pattern) { + return !!(match = pattern.exec(str)); + }); + + return found ? match : null; + } + + function getDate(year, month, day) { + var date = new Date(Date.UTC(year, month, day)); + + // Explicitly set year to avoid Date.UTC making dates < 100 relative to + // 1900 + date.setUTCFullYear(year); + + var valid = + date.getUTCFullYear() === year && + date.getUTCMonth() === month && + date.getUTCDate() === day; + return valid ? +date : NaN; + } + + function parseOrdinalDate(str) { + var match = ORD_DATE.exec(str); + if (match ) { + var year = +match[1], + day = +match[2], + date = new Date(Date.UTC(year, 0, day)); + + if (date.getUTCFullYear() === year) { + return +date; + } + } + + return NaN; + } + + function parseDate(str) { + var match, year, month, day; + + var match = matchAll(str, datePatterns); + if (match === null) { + // Ordinal dates are verified differently. + return parseOrdinalDate(str); + } + + year = (match[1] === void 0) ? 0 : +match[1]; + month = (match[2] === void 0) ? 0 : +match[2] - 1; + day = (match[3] === void 0) ? 1 : +match[3]; + + return getDate(year, month, day); + } + + function getTime(hr, min, sec) { + var valid = + (hr < 24 && hr >= 0 && + min < 60 && min >= 0 && + sec < 60 && min >= 0) || + (hr === 24 && min === 0 && sec === 0); + if (!valid) { + return NaN; + } + + return ((hr * 60 + min) * 60 + sec) * 1000; + } + + function parseOffset(str) { + var match; + if (str.charAt(str.length - 1) === 'Z') { + str = str.substring(0, str.length - 1); + } else if ((match = TIME_ZONE.exec(str))) { + var match = TIME_ZONE.exec(str); + if (match) { + var hours = +match[3], + minutes = (match[4] === void 0) ? 0 : +match[4], + offset = getTime(hours, minutes, 0); + + if (match[2] === '-') { + offset *= -1; + } + + return { offset: offset, time: match[1] }; + } + } + + // No time zone specified, assume UTC + return { offset: 0, time: str }; + } + + function parseTime(str) { + var match; + var offset = parseOffset(str); + + str = offset.time; + offset = offset.offset; + if (isNaN(offset)) { + return NaN; + } + + match = matchAll(str, timePatterns); + if (match === null) { + return NaN; + } + + var hours = (match[1] === void 0) ? 0 : +match[1], + minutes = (match[2] === void 0) ? 0 : +match[2], + seconds = (match[3] === void 0) ? 0 : +match[3]; + + return getTime(hours, minutes, seconds) - offset; + } + + /** + * Parse an ISO8601 formatted date string, and return a Date object. + */ + function parseISO8601(str){ + var match = DATE_TIME.exec(str); + if (!match) { + // No time specified + return parseDate(str); + } + + return parseDate(match[1]) + parseTime(match[2]); + } + + module.exports = parseISO8601; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js new file mode 100644 index 00000000..072bc0ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js @@ -0,0 +1,54 @@ +var clone = require('../lang/clone'); + + /** + * get a new Date object representing start of period + */ + function startOf(date, period){ + date = clone(date); + + // intentionally removed "break" from switch since start of + // month/year/etc should also reset the following periods + switch (period) { + case 'year': + date.setMonth(0); + /* falls through */ + case 'month': + date.setDate(1); + /* falls through */ + case 'week': + case 'day': + date.setHours(0); + /* falls through */ + case 'hour': + date.setMinutes(0); + /* falls through */ + case 'minute': + date.setSeconds(0); + /* falls through */ + case 'second': + date.setMilliseconds(0); + break; + default: + throw new Error('"'+ period +'" is not a valid period'); + } + + // week is the only case that should reset the weekDay and maybe even + // overflow to previous month + if (period === 'week') { + var weekDay = date.getDay(); + var baseDate = date.getDate(); + if (weekDay) { + if (weekDay >= baseDate) { + //start of the week is on previous month + date.setDate(0); + } + date.setDate(date.getDate() - date.getDay()); + } + } + + return date; + } + + module.exports = startOf; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js new file mode 100644 index 00000000..f033d10f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js @@ -0,0 +1,118 @@ +var pad = require('../number/pad'); +var i18n = require('./i18n_'); +var dayOfTheYear = require('./dayOfTheYear'); +var timezoneOffset = require('./timezoneOffset'); +var timezoneAbbr = require('./timezoneAbbr'); +var weekOfTheYear = require('./weekOfTheYear'); + + var _combinations = { + 'D': '%m/%d/%y', + 'F': '%Y-%m-%d', + 'r': '%I:%M:%S %p', + 'R': '%H:%M', + 'T': '%H:%M:%S', + 'x': 'locale', + 'X': 'locale', + 'c': 'locale' + }; + + + /** + * format date based on strftime format + */ + function strftime(date, format, localeData){ + localeData = localeData || i18n; + var reToken = /%([a-z%])/gi; + + function makeIterator(fn) { + return function(match, token){ + return fn(date, token, localeData); + }; + } + + return format + .replace(reToken, makeIterator(expandCombinations)) + .replace(reToken, makeIterator(convertToken)); + } + + + function expandCombinations(date, token, l10n){ + if (token in _combinations) { + var expanded = _combinations[token]; + return expanded === 'locale'? l10n[token] : expanded; + } else { + return '%'+ token; + } + } + + + function convertToken(date, token, l10n){ + switch (token){ + case 'a': + return l10n.days_abbr[date.getDay()]; + case 'A': + return l10n.days[date.getDay()]; + case 'h': + case 'b': + return l10n.months_abbr[date.getMonth()]; + case 'B': + return l10n.months[date.getMonth()]; + case 'C': + return pad(Math.floor(date.getFullYear() / 100), 2); + case 'd': + return pad(date.getDate(), 2); + case 'e': + return pad(date.getDate(), 2, ' '); + case 'H': + return pad(date.getHours(), 2); + case 'I': + return pad(date.getHours() % 12, 2); + case 'j': + return pad(dayOfTheYear(date), 3); + case 'L': + return pad(date.getMilliseconds(), 3); + case 'm': + return pad(date.getMonth() + 1, 2); + case 'M': + return pad(date.getMinutes(), 2); + case 'n': + return '\n'; + case 'p': + return date.getHours() >= 12? l10n.pm : l10n.am; + case 'P': + return convertToken(date, 'p', l10n).toLowerCase(); + case 's': + return date.getTime() / 1000; + case 'S': + return pad(date.getSeconds(), 2); + case 't': + return '\t'; + case 'u': + var day = date.getDay(); + return day === 0? 7 : day; + case 'U': + return pad(weekOfTheYear(date), 2); + case 'w': + return date.getDay(); + case 'W': + return pad(weekOfTheYear(date, 1), 2); + case 'y': + return pad(date.getFullYear() % 100, 2); + case 'Y': + return pad(date.getFullYear(), 4); + case 'z': + return timezoneOffset(date); + case 'Z': + return timezoneAbbr(date); + case '%': + return '%'; + default: + // keep unrecognized tokens + return '%'+ token; + } + } + + + module.exports = strftime; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js new file mode 100644 index 00000000..b1006875 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js @@ -0,0 +1,17 @@ +var timezoneOffset = require('./timezoneOffset'); + + /** + * Abbreviated time zone name or similar information. + */ + function timezoneAbbr(date){ + // Date.toString gives different results depending on the + // browser/system so we fallback to timezone offset + // chrome: 'Mon Apr 08 2013 09:02:04 GMT-0300 (BRT)' + // IE: 'Mon Apr 8 09:02:04 UTC-0300 2013' + var tz = /\(([A-Z]{3,4})\)/.exec(date.toString()); + return tz? tz[1] : timezoneOffset(date); + } + + module.exports = timezoneAbbr; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js new file mode 100644 index 00000000..9492dceb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js @@ -0,0 +1,16 @@ +var pad = require('../number/pad'); + + /** + * time zone as hour and minute offset from UTC (e.g. +0900) + */ + function timezoneOffset(date){ + var offset = date.getTimezoneOffset(); + var abs = Math.abs(offset); + var h = pad(Math.floor(abs / 60), 2); + var m = pad(abs % 60, 2); + return (offset > 0? '-' : '+') + h + m; + } + + module.exports = timezoneOffset; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js new file mode 100644 index 00000000..8aafeb84 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js @@ -0,0 +1,25 @@ +var isDate = require('../lang/isDate'); +var isLeapYear = require('./isLeapYear'); + + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + /** + * returns the total amount of days in the month (considering leap years) + */ + function totalDaysInMonth(fullYear, monthIndex){ + if (isDate(fullYear)) { + var date = fullYear; + year = date.getFullYear(); + monthIndex = date.getMonth(); + } + + if (monthIndex === 1 && isLeapYear(fullYear)) { + return 29; + } else { + return DAYS_IN_MONTH[monthIndex]; + } + } + + module.exports = totalDaysInMonth; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js new file mode 100644 index 00000000..b4b7e9b7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js @@ -0,0 +1,13 @@ +var isLeapYear = require('./isLeapYear'); + + /** + * return the amount of days in the year following the gregorian calendar + * and leap years + */ + function totalDaysInYear(fullYear){ + return isLeapYear(fullYear)? 366 : 365; + } + + module.exports = totalDaysInYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js new file mode 100644 index 00000000..dd51b7f1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js @@ -0,0 +1,16 @@ +var dayOfTheYear = require('./dayOfTheYear'); + + /** + * Return the week of the year based on given firstDayOfWeek + */ + function weekOfTheYear(date, firstDayOfWeek){ + firstDayOfWeek = firstDayOfWeek == null? 0 : firstDayOfWeek; + var doy = dayOfTheYear(date); + var dow = (7 + date.getDay() - firstDayOfWeek) % 7; + var relativeWeekDay = 6 - firstDayOfWeek - dow; + return Math.floor((doy + relativeWeekDay) / 7); + } + + module.exports = weekOfTheYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md new file mode 100644 index 00000000..1f390fbc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md @@ -0,0 +1,773 @@ +# array # + +Array utilities. + + + + +## append(arr1, arr2):Array + +Appends an array to the end of the other. +The first array will be modified and will contain the appended items. + +See: [`union()`](#union), [`combine()`](#combine) + +```js +var foo = ['a', 'b'], + bar = ['b', 'd']; + +append(foo, bar); // ['a', 'b', 'b', 'd'] +``` + + + +## collect(arr, callback, [thisObj]):Array + +Maps the items in `arr` and concatenates the resulting arrays. + +See: [`map()`](#map) + +```js +collect([1, 2, 3], function(val) { + return [val, val % 2]; +}); // [1, 1, 2, 0, 3, 1]; + +collect(['a', 'bb', ''], function(val) { + return val.split(''); +}); // ['a', 'b', 'b'] +``` + +It also supports a shorthand syntax: + +```js +var items = [{ a: [1] }, { b: 'foo' }, { a: [2, 3] }]; +collect(items, 'a'); // [1, 2, 3]; +``` + + + +## combine(arr1, arr2):Array + +Combines an array with all the items of another. +The first array will be modified and will contain the combined items. +Does not allow duplicates and is case and type sensitive. + +See: [`union()`](#union), [`append()`](#append) + +```js +var foo = ['a', 'b'], + bar = ['b', 'd']; + +combine(foo, bar); // ['a', 'b', 'd'] +``` + + + +## compact(arr):Array + +Returns a new Array without any `null` or `undefined` values. Note that it will +keep empty strings and other falsy values (simillar to Ruby Array#compact). + +```js +var arr = [0, 1, null, false, '', 'foo', undefined, 'bar']; +compact(arr); // [0, 1, false, '', 'foo', 'bar']; +``` + + + +## contains(arr, value):Boolean + +Checks if Array contains value. Alias to `indexOf(arr, val) !== -1`. + +```js +var arr = [1, 2, 3]; +contains(arr, 2); // true +contains(arr, 'foo'); // false +``` + + + +## difference(...arrs):Array + +Return a new Array with elements that aren't present in the other Arrays +besides the first one. + +Works like [Python set#difference](http://docs.python.org/library/stdtypes.html#set.difference). + +It will remove duplicates. + +See: [`xor()`](#xor), [`intersection()`](#intersection) + +```js +var a = ['a', 'b', 1]; +var b = ['c', 1]; +difference(a, b); // ['a', 'b'] +``` + + + +## every(arr, callback, [thisObj]):Array + +Crossbrowser `Array.every()`. + +Tests whether all elements in the array pass the test implemented by the provided function. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = [1, 'foo', 'bar']; +every(items, isString); // false +every(items, isFunction); // false +every(items, function(val, key, arr){ + return val != null; +}); // true +``` + +more info at [MDN Array#every](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every) + +It also supports a shorthand syntax: + +```js +var items = [{id:1, active:true}, {id:3, active:true}, {id:8, active:true}]; +// all items with `id === 8` +every(items, {id:8}); // false +// `active` is truthy on all items +every(items, 'active'); // true +``` + + + +## filter(arr, callback, [thisObj]):Array + +Crossbrowser `Array.filter()`. + +Creates a new array with all elements that pass the callback test. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var nums = [1, 2, 3, 4, 5, 6]; +var oddNumbers = filter(nums, function(val, key, arr){ + return (val % 2) !== 0; +}); +// > [1, 3, 5] +``` + +more info at [MDN Array#filter](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter) + +Filter also supports shorthand notation: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true}, + {name:'jane', surname:'doe', beard:false} +]; +// filter item that matches all properties/values pairs +filter(arr, {name:'john', beard:false}); +// > [{name:'john', surnname:'connor', beard:false}] +// items where 'beard' is a truthy value +filter(arr, 'beard'); +// > [{name:'john', surnname:'doe', beard:true}] +``` + +See [`reject()`](#reject) + + + +## find(arr, callback, [thisObj]):void + +Loops through all the items in the Array and returns the first one that passes +a truth test (callback). + +```js +var arr = [123, {a:'b'}, 'foo', 'bar']; +find(arr, isString); // "foo" +find(arr, isNumber); // 123 +find(arr, isObject); // {a:'b'} +``` + +Find also supports shorthand notation: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true} +]; +// first item that matches all properties/values pairs +find(arr, {name:'john'}); // {name:'john', surnname:'connor', beard:false} +// first item where 'beard' is a truthy value +find(arr, 'beard'); // {name:'john', surnname:'doe', beard:true} +``` + +See: [findIndex()](#findIndex) + + + +## findIndex(arr, iterator, [thisObj]):Number + +Loops through the items in the Array and returns the index of the first one +that passes a truth test (callback). + +Returns `-1` if no item was found that passes the truth test. + +```js +var arr = [1, { a: 1 }, 'foo', 'bar']; +findIndex(arr, isString); // 2 +findIndex(arr, isNumber); // 0 +findIndex(arr, isObject); // 1 +findIndex(arr, isRegExp); // -1 +``` + +`findIndex` also supports shorthand notation: + +```js +var pets = [ + { pet: 'dog', name: 'Sam' }, + { pet: 'dog', name: 'Maggie' } +]; + +findIndex(pets, { pet: 'dog' }); // 0 +findIndex(pets, { name: 'Maggie' }); // 1 +``` + +See: [find()](#find) + + + +## flatten(arr, [level]):Array + +Recursively flattens an array. A new array containing all the elements is +returned. If `level` is specified, it will only flatten up to that level. + +### Example + +```js +flatten([1, [2], [3, [4, 5]]]); +// > [1, 2, 3, 4, 5] +flatten([1, [2], [3, [4, 5]]], 1); +// > [1, 2, 3, [4, 5]] +``` + + + +## forEach(arr, callback, [thisObj]):void + +Crossbrowser `Array.forEach()`. + +It allows exiting the iteration early by returning `false` on the callback. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = ['foo', 'bar', 'lorem', 'ipsum']; +forEach(items, function(val, key, arr){ + console.log(key +' : '+ val); + if (val === 'lorem') { + // stop iteration (break) + return false; + } +}); +``` + +more info at [MDN Array#forEach](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach) + + + +## indexOf(arr, item, [fromIndex]):Number + +Crossbrowser `Array.indexOf()`. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#indexOf](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf) + + + + +## insert(arr, ...items):Number + +Push items into array only if they aren't contained by it. Returns the new +`length` of the array. + +See: [`remove()`](#remove), [`removeAll()`](#removeAll), +[`contains()`](#contains) + +```js +var arr = ['a', 'b']; +insert(arr, 'a'); // 2 : ['a', 'b'] +insert(arr, 'c'); // 3 : ['a', 'b', 'c'] +insert(arr, 1, 2, 'b'); // 5 : ['a', 'b', 'c', 1, 2] +``` + + + +## intersection(...arrs):Array + +Return a new Array with elements common to all Arrays. + +Similar to Python set#intersection and underscore.js intersection. + +It will remove duplicates. + +See: [`difference()`](#difference), [`xor()`](#xor) + +```js +var a = ['a', 'b', 1], + b = ['c', 1], + c = [1, 2, 3]; +intersection(a, b, c); // [1] +``` + + + +## invoke(arr, methodName[, ...args]):Array + +Call `methodName` on each item of the array passing custom arguments if needed. + +```js +invoke([[3,2,1], [9,5,2]], 'sort'); // [[1,2,3], [2,5,9]] +``` + + + +## join(arr, [separator]):String + +Joins the strings in `arr`, inserting `separator` between each value. + +This ignores null values and empty strings that are in the array. `separator` +defaults to an empty string. This will convert all non-string objects in the +array to a string. + +### Example + +```js +join(['a', 'b', 'c']); // 'abc' +join(['foo', 'bar'], ', '); // 'foo, bar' +join([null, 'foo', '', 'bar', undefined], ':'); // 'foo:bar' +``` + + + +## lastIndexOf(arr, item, [fromIndex]):Number + +Crossbrowser `Array.lastIndexOf()`. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#lastIndexOf](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf) + + + +## map(arr, callback, [thisObj]]):Array + +Crossbrowser `Array.map()`. + +Creates a new array with the results of calling a provided function on every +element in this array. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +See: [`collect()`](#collect) + +```js +var nums = [1,2,3,4]; +var double = map(nums, function(val, key, arr){ + return val * 2; +}); +// > [2, 4, 6, 8] +``` + +more info at [MDN Array#map](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map) + +It also supports a shorthand notation which can be used to achieve same result +as [`array/pluck`](#pluck): + +```js +var src = ['lorem', 'ipsum', 'foo', 'amet']; +// grab the "length" property of all items +var lengths = map(src, 'length'); // [5, 5, 3, 4] +``` + + + +## max(arr, [iterator], [thisObj]):* + +Returns maximum value inside array or use a custom iterator to define how items +should be compared. + +See: [`min()`](#min) + +```js +max([10, 2, 7]); // 10 +max(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'lorem' +``` + +It also supports a shorthand notation: + +```js +max(['foo', 'lorem', 'amet'], 'length'); // "lorem" +``` + + + +## min(arr, [iterator], [thisObj]):* + +Returns minimum value inside array or use a custom iterator to define how items +should be compared. + +See: [`max()`](#max) + +```js +min([10, 2, 7]); // 2 +min(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'foo' +``` + +It also supports a shorthand notation: + +```js +min(['foo', 'lorem', 'amet'], 'length'); // "foo" +``` + + + +## pick(arr):* + +Gets a random item and remove it from the array. + +### Example: + + var arr = [1, 2, 3, 4, 5, 6]; + var item_1 = pick(arr); // 4 + var item_2 = pick(arr); // 1 + console.log(arr); // [2, 3, 5, 6] + + + +## pluck(arr, propName):Array + +Extract a list of property values. + +See: [`function/prop()`](function.html#prop) + +```js +var users = [{name : 'John', age: 21}, {name: 'Jane', age : 27}]; +var names = pluck(users, 'name'); // ["John", "Jane"] +var ages = pluck(users, 'age'); // [21, 27] +``` + + + +## range([start], stop[, step]):Array + +Creates a new Array with all the values inside the range. Works similarly to +Python#range or PHP#range. + +### Arguments + + 1. `[start]` (Number) : Range start. Default is `0`. + 2. `stop` (Number) : Range limit. + 3. `[step]` (Number) : Step size. Default is `1`. + +### Example + +```js +range(5); // [0, 1, 2, 3, 4, 5] +range(0, 5); // [0, 1, 2, 3, 4, 5] +range(0, 5, 2); // [0, 2, 4] +range(20, 40, 5); // [20, 25, 30, 35, 40] +``` + + + +## reduce(arr, fn):* + +Crossbrowser `Array.reduce()`. + +Apply a function against an accumulator and each value of the array (from +left-to-right) as to reduce it to a single value. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#reduce](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce) + + + +## reduceRight(arr, fn):* + +Crossbrowser `Array.reduceRight()`. + +Apply a function simultaneously against two values of the array (from +right-to-left) as to reduce it to a single value. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#reduceRight](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduceRight) + + + +## reject(arr, fn, thisObj):Array + +Creates a new array with all the elements that do **not** pass the truth test. +Opposite of [`filter()`](#filter). + +See [`filter()`](#filter) + +### Example + +```js +var numbers = [1, 2, 3, 4, 5, 6]; +reject(numbers, function(x) { return (x % 2) !== 0; }); // [2, 4, 6] +``` + +It also supports a shorthand syntax: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true}, + {name:'jane', surname:'doe', beard:false} +]; +// reject items that matches all properties/values pairs +reject(arr, {name:'john'}); +// > [{name:'jane', surnname:'doe', beard:false}] +// reject items where 'beard' is a truthy value +filter(arr, 'beard'); +// > [{name:'john', surnname:'connor', beard:false}, +// {name:'jane', surname:'doe', beard:false}] +``` + + + +## remove(arr, item):void + +Remove a single item from the array. + +IMPORTANT: it won't remove duplicates, just a single item. + +### Example + +```js +var foo = [1, 2, 3, 4]; +remove(foo, 2); +console.log(foo); // [1, 3, 4] +``` + + + +## removeAll(arr, item):void + +Remove all instances of an item from the array. + +### Example + +```js +var foo = [1, 2, 3, 4, 2, 2]; +removeAll(foo, 2); +console.log(foo); // [1, 3, 4]; +``` + + + +## shuffle(arr):Array + +Returns a new Array with items randomly sorted (shuffled). Similar to Ruby Array#shuffle. + +### Example + +```js +var arr = ['a', 'b', 'c', 'd', 'e']; +shuffle(arr); // ['b', 'd', 'e', 'c', 'a'] +``` + + + +## some(arr, callback, [thisObj]):Array + +Crossbrowser `Array.some()`. + +Tests whether some element in the array passes the test implemented by the provided function. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = [1, 'foo', 'bar']; +some(items, isString); // true +some(items, isFunction); // false +``` + +more info at [MDN Array#some](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some) + +It also supports a shorthand syntax: + +```js +var items = [{id:1, active:true}, {id:3, active:false}, {id:8, active:false}]; +// at least one item with `id === 8` +some(items, {id:8}); // true +// `active` is truthy on at least one item +some(items, 'active'); // true +``` + +see also: [`object/matches`](object.html#matches) + + + +## sort(arr, [compareFn]):Array + +Returns a sorted Array using the [Merge Sort](http://en.wikipedia.org/wiki/Merge_sort) algorithm (stable sort). + +The `Array.prototype.sort` browser implementations differ since the sorting algorithm isn't described in the ES spec - [in V8 it isn't stable](http://code.google.com/p/v8/issues/detail?id=90) and [on Firefox it is stable](https://bugzilla.mozilla.org/show_bug.cgi?id=224128) - so this function doesn't use the browser native implementation and is recommended in cases where a stable sort is required (items should preserve same order if already sorted). + +**Important:** It does logical comparisson by default (greater/less than) and +not a string comparisson like the native `Array#sort`. + +### compareFn + +If `compareFn` is supplied elements are sorted based on the value returned by +the `compareFn`. + + - If `compareFn(a, b)` is less than `0`, sort `a` to a lower index than `b`. + - If `compareFn(a, b)` returns `0`, leave `a` and `b` unchanged with respect + to each other, but sorted with respect to all different elements. + - If `compareFn(a, b)` is greater than `0`, sort `b` to a lower index than + `a`. + +### Example + +```js +sort([187, 23, 47, 987, 12, 59, 0]); // [0, 12, 23, 47, 59, 187, 987] +sort(['a', 'z', 'c', 'beta', 'b']); // ['a', 'b', 'beta', 'c', 'z'] + +// ['sit', 'amet', 'lorem', 'ipsum'] +sort(['lorem', 'ipsum', 'sit', 'amet'], function(a, b){ + // sort by length, items with same length + // will keep the relative order (stable) + return a.length - b.length; +}); + +// [4, 3, 2, 1] +sort([2, 3, 1, 4], function(a, b){ + // reverse sort + return b - a; +}); +``` + + + +## split(arr, [segments]):Array + +Splits an array into a fixed number of segments. + +The number of segments is specified by `segments` and defaults to 2. If the +array cannot be evenly split, the first segments will contain the extra items. +If `arr` is empty, an empty array is returned. If `arr.length` is less than +`segments`, then the resulting array will have `arr.length` number of +single-element arrays. + +### Example +```js +split([1, 2, 3, 4, 5], 3) // [ [1, 2], [3, 4], [5] ] +split([1, 2, 3, 4, 5]) // [ [1, 2, 3], [4, 5] ] +split([]) // [] +split([1, 2], 3) // [ [1], [2] ] +``` + + + +## toLookup(arr, key):Object + +Create an object that indexes the items in the array by a key. If `key` is a function, the key for each value in the resulting object will be the result of calling the function with the value as an argument. Otherwise `key` specifies the property on each value to use as the key. + +### Example + +```js +var foo = [{ name: 'a', thing: 1 }, { name: 'b', thing: 2 }]; +// { a: { name: 'a', thing: 1 }, b: { name: 'b', thing: 2 } } +toLookup(foo, 'name'); +// same as above +toLookup(foo, function (value) { return value.name; }); +``` + + + +## union(...arrs):Array + +Concat multiple arrays removing duplicates. + +```js +var a = ['a', 'b'], + b = ['c', 'a'], + c = [1, 'b', 2, 3, 'a']; + +//note that unique remove from begin to end +union(a, b, c); // ['c', 1, 'b', 2, 3, 'a'] +``` + + + +## unique(arr):Array + +Return a new Array of unique items. + +### Example + +```js +var foo = [1, 2, 3, 4, 2, 2, 3, 4]; +var bar = unique(foo); +console.log(foo); // [1, 2, 3, 4]; +``` + + + +## xor(arr1, arr2):Array + +Exclusive OR. Returns items that are present in a single array. + +Works like [Python set#symmetric_difference](http://docs.python.org/library/stdtypes.html#set.symmetric_difference) renamed for brevity. + +It will remove duplicates. + +See: [`difference()`](#difference), [`intersection()`](#intersection) + +```js +var a = ['a', 'b', 1]; +var b = ['c', 1]; +xor(a, b); // ['a', 'b', 'c'] +``` + + + +## zip(...arrs):Array + +Groups the elements of each array at their corresponding indexes. + +Useful for separate data sources that are coordinated through matching array +indexes. For a matrix of nested arrays, `zip.apply(...)` can transpose the +matrix in a similar fashion. + +```js +// [['moe', 30, true], ['larry', 40, false], ['curly', 50, false]] +zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); +``` + + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md new file mode 100644 index 00000000..2ffcab10 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md @@ -0,0 +1,233 @@ +# collection # + +Methods for dealing with collections (Array or Objects). + + + +## contains(list, value):Boolean + +Checks if collection contains value. + +```js +contains({a: 1, b: 2, c: 'bar'}, 2); // true +contains([1, 2, 3], 'foo'); // false +``` + +See: [array/contains](array.html#contains), [object/contains](object.html#contains) + + + +## every(list, callback, [thisObj]):Boolean + +Tests whether all values in the collection pass the test implemented by the +provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +every(obj, isNumber); // false +``` + +See: [array/every](array.html#every), [object/every](object.html#every) + + + +## filter(list, callback, [thisObj]):Array + +Filter collection properties. + +See: [array/filter](array.html#filter), [object/filter](object.html#filter) + + + +## find(list, callback, [thisObj]):* + +Loops through all the values in the collection and returns the first one that +passes a truth test (callback). + +**Important:** loop order over objects properties isn't guaranteed to be the +same on all environments. + +```js +find({a: 'foo', b: 12}, isString); // 'foo' +find(['foo', 12], isNumber); // 12 +``` + +See: [array/find](array.html#find), [object/find](object.html#find) + + + +## forEach(list, callback, [thisObj]) + +Loop through all values of the collection. + +See: [array/forEach](array.html#forEach), [object/forOwn](object.html#forOwn) + + + +## map(list, callback, [thisObj]):Array + +Returns a new collection where the properties values are the result of calling +the callback for each property in the original collection. + +See: [array/map](array.html#map), [object/map](object.html#map) + + + +## max(list, [iterator]):* + +Returns maximum value inside collection or use a custom iterator to define how +items should be compared. + +See: [`min()`](#min), [array/max](array.html#max), [object/max](object.html#max) + +```js +max({a: 100, b: 2, c: 1, d: 3, e: 200}); // 200 +max(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'lorem' +``` + + + +## min(list, [iterator]):* + +Returns minimum value inside collection or use a custom iterator to define how +items should be compared. + +See: [`max()`](#max), [array/min](array.html#min), [object/min](object.html#min) + +```js +min([10, 2, 7]); // 2 +min({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'foo' +``` + + + +## pluck(list, propName):Array + +Extract a list of property values. + +```js +var users = [ + { + name : 'John', + age : 21 + }, + { + name : 'Jane', + age : 27 + } +]; + +pluck(users, 'name'); // ["John", "Jane"] +pluck(users, 'age'); // [21, 27] + +users = { + first: { + name : 'John', + age : 21 + }, + second: { + name : 'Mary', + age : 25 + } +}; + +pluck(users, 'name'); // ['John', 'Mary'] +``` + +See: [array/pluck](array.html#pluck), [object/pluck](object.html#pluck) + + + +## reduce(list, callback, initial, [thisObj]):* + +Apply a function against an accumulator and each value in the collection as to +reduce it to a single value. + +```js +var obj = {a: 1, b: 2, c: 3, d: 4}; + +function sum(prev, cur, key, list) { + return prev + cur; +} + +reduce(obj, sum); // 10 +``` + +See: [array/reduce](array.html#reduce), [object/reduce](object.html#reduce) + + + +## reject(list, fn, [thisObj]):Array + +Creates a new array with all the elements that do **not** pass the truth test. +Opposite of [`filter()`](#filter). + +### Example + +```js +var numbers = [1, 2, 3, 4, 5]; +reject(numbers, function(x) { return (x % 2) !== 0; }); // [2, 4] + +var obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; +reject(obj, function(x) { return (x % 2) !== 0; }); // [2, 4] +``` + +See: [array/reject](array.html#reject), [object/reject](object.html#reject) + + + +## size(list):Number + +Returns the number of values in the collection. + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +size(obj); // 3 +size([1,2,3]); // 3 +size(null); // 0 +``` + +See: [object/size](object.html#size) + + + +## some(list, callback, [thisObj]):Boolean + +Tests whether any values in the collection pass the test implemented by the +provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +some(obj, isNumber); // true +some(obj, isString); // true +some([1, 2, 3], isNumber) // true +some([1, 2, 3], isString) // false +``` + +See: [array/some](array.html#some), [object/some](object.html#some) + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md new file mode 100644 index 00000000..b3f7f40e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md @@ -0,0 +1,295 @@ +# date # + +Date utilities. + + +## dayOfTheYear(date):Number + +How many days elapsed since begining of the year (following gregorian +calendar). + +```js +// Jan 1st +dayOfTheYear(new Date(2013, 0, 1)); // 1 +// Dec 31th +dayOfTheYear(new Date(2013, 11, 31)); // 364 +``` + + + +## diff(date1, date2, [unitName]):Number + +Calculate the difference between dates (range). + +The returned value is always positive. The default `unitName` is `"ms"`. + +Available units: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`, +`millisecond`. + +See: [`time/convert()`](time.html#convert) + +```js +var d1 = new Date(2012, 4, 5); +var d2 = new Date(2013, 4, 8); +diff(d1, d2); // 31795200000 +diff(d1, d2, 'hour'); // 8832 +diff(d1, d2, 'week'); // 52.57142857142857 +diff(d1, d2, 'month'); // 12.096774193548388 +diff(d1, d2, 'year'); // 1.0082191780821919 +``` + + + +## isLeapYear(fullYear|date):Boolean + +Checks if it's a [leap year](http://en.wikipedia.org/wiki/Leap_year) according +to the Gregorian calendar. + +see: [`totalDaysInMonth()`](#totalDaysInMonth) + +```js +isLeapYear(2012); // true +isLeapYear(2013); // false +isLeapYear(new Date(2012, 2, 28)); // true +``` + + +## isSame(date1, date2[, period]):Boolean + +Check if both dates are the "same". + +You can pass an optional *period* used to set the comparisson precision. + +Available periods: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`. + +```js +var date1 = new Date(2013, 1, 3); +var date2 = new Date(2013, 2, 9); +isSame(date1, date2); // false +isSame(date1, date2, 'day'); // false +isSame(date1, date2, 'month'); // false +isSame(date1, date2, 'year'); // true +``` + + + +## parseIso(str):Number + +Parses an [ISO8601](http://en.wikipedia.org/wiki/Iso8601) date and returns the +number of milliseconds since January 1, 1970, 00:00:00 UTC, or `NaN` if it is +not a valid ISO8601 date. + +This parses *all* ISO8601 dates, including dates without times, [ordinal +dates](https://en.wikipedia.org/wiki/ISO_8601#Ordinal_dates), and the compact +representation (omitting delimeters). The only exception is [ISO week +dates](https://en.wikipedia.org/wiki/ISO_week_date), which are not parsed. + +If no time zone offset is specified, it assumes UTC time. + +```js +// Jan 01, 1970 00:00 GMT +parseIso('1970-01-01T00:00:00') // 0 +parseIso('1970-001') // 0 +parseIso('1970-01-01') // 0 +parseIso('19700101T000000.00') // 0 +parseIso('1970-01-01T02:00+02:00') // 0 + +// Jan 02, 2000 20:10 GMT+04:00 +parseIso('2000-01-02T20:10+04:00') // 946829400000 +``` + + + +## startOf(date, period):Date + +Get a new Date at the start of the period. + +Available periods: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`. + +```js +// Apr 05 2013 11:27:43 +var date = new Date(2013, 3, 5, 11, 27, 43, 123); +startOf(date, 'year'); // Jan 01 2013 00:00:00 +startOf(date, 'month'); // Apr 01 2013 00:00:00 +startOf(date, 'day'); // Apr 05 2013 00:00:00 +startOf(date, 'hour'); // Apr 05 2013 11:00:00 +``` + + + +## strftime(date, format, [l10n]):String + +Format date based on strftime format. + +Replaced tokens: + +
      +
      %a
      locale's abbreviated weekday name.
      +
      %A
      locale's full weekday name.
      +
      %b
      locale's abbreviated month name.
      +
      %B
      locale's full month name.
      +
      %c
      locale's appropriate date and time representation.
      +
      %C
      century number (the year divided by 100 and truncated +to an integer) as a decimal number [00..99].
      +
      %d
      day of the month as a decimal number [01..31].
      +
      %D
      same as %m/%d/%y.
      +
      %e
      day of the month as a decimal number [1..31]; +a single digit is preceded by a space.
      +
      %F
      The ISO 8601 date format (%Y-%m-%d)
      +
      %h
      same as %b.
      +
      %H
      hour (24-hour clock) as a decimal number [00..23].
      +
      %I
      hour (12-hour clock) as a decimal number [01..12].
      +
      %j
      day of the year as a decimal number [001..366].
      +
      %L
      zero-padded milliseconds [000..999]
      +
      %m
      month as a decimal number [01..12].
      +
      %M
      minute as a decimal number [00..59].
      +
      %n
      newline character.
      +
      %p
      locale's equivalent of either "am" or "pm"
      +
      %P
      locale's equivalent of either "AM" or "PM"
      +
      %r
      time in a.m. and +p.m. notation; in the POSIX locale this is equivalent to %I:%M:%S %p.
      +
      %R
      time in 24 hour notation (%H:%M).
      +
      %s
      seconds since Epoch (1970-01-01 00:00:00 UTC)
      +
      %S
      second as a decimal number [00..60].
      +
      %t
      tab character.
      +
      %T
      time (%H:%M:%S).
      +
      %u
      weekday as a decimal number [1..7], with 1 representing +Monday.
      +
      %U
      week number of the year (Sunday as the first day of +the week) as a decimal number [00..53].
      +
      %V
      week number of the year (Monday as the first day of the +week) as a decimal number [01..53]. If the week containing 1 January has +four or more days in the new year, then it is considered week 1. Otherwise, +it is the last week of the previous year, and the next week is week 1.
      +
      %w
      weekday as a decimal number [0..6], with 0 representing +Sunday.
      +
      %W
      week number of the year (Monday as the first day of +the week) as a decimal number [00..53]. All days in a new year preceding +the first Monday are considered to be in week 0.
      +
      %x
      locale's appropriate date representation.
      +
      %X
      locale's appropriate time representation.
      +
      %y
      year without century as a decimal number [00..99].
      +
      %Y
      year with century as a decimal number.
      +
      %Z
      timezone name or abbreviation, or by no bytes +if no timezone information exists.
      +
      %%
      is replaced by %.
      +
      + +```js +var date = new Date(2013, 3, 8, 9, 2, 4); +strftime(date, '%Y-%m-%d'); // "2013-04-08" +strftime(date, '%R'); // "09:02" +strftime(date, '%Y-%m-%dT%H:%M:%S%z'); // "2013-04-08T09:02:04+0000" +``` + +You can also set a custom locale: + +```js +var ptBr = require('mout/date/i18n/pt-BR'); +strftime(date, '%a, %d %b', ptBr); // 'Seg, 08 Abr' +strftime(date, '%A, %d %B', ptBr); // 'Segunda, 08 Abril' +``` + +To set it globally: + +```js +require('mout/date/i18n_').set( customLocaleData ); +``` + +See [date/i18n](https://github.com/mout/mout/tree/master/src/date/i18n) +for localization examples. + + + +## timezoneAbbr(date):String + +Return timezone abbreviation or similar data. + +The result will vary based on the OS/browser since some environments doesn't +provide enough info about the current locale. + +```js +// IE 7-8 +timezoneAbbr(new Date()); // "-0500" +// Chrome, FF, V8 +timezoneAbbr(new Date()); // "EST" +``` + + + +## timezoneOffset(date):String + +Return time zone as hour and minute offset from UTC (e.g. +0900). + +It's important to note that JavaScript Date object will use the system locale +info to determinate the [timezone +offset](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset) +and that daylight saving time affects the result. + +```js +// if system locale is EST +timezoneOffset(new Date()); // -0500 +``` + + + +## totalDaysInMonth(fullYear, monthIndex):Number + +Returns the amount of days in the month taking into consideration leap years +(following Gregorian calendar). + +see: [`isLeapYear()`](#isLeapYear) + +```js +totalDaysInMonth(2008, 1); // 29 (leap year) +totalDaysInMonth(2009, 1); // 28 + +// you can also pass a Date object as single argument +totalDaysInMonth( new Date(2013, 0, 1) ); // 31 +``` + + +## totalDaysInYear(fullYear):Number + +Returns the amount of days in the year taking into consideration leap years +(following Gregorian calendar). + +see: [`isLeapYear()`](#isLeapYear), [`totalDaysInMonth()`](#totalDaysInMonth) + +```js +totalDaysInYear(2008); // 366 (leap year) +totalDaysInYear(2009); // 365 + +// you can also pass a Date object as single argument +totalDaysInYear( new Date(2013, 0, 1) ); // 365 +``` + + + +## weekOfTheYear(date, [firstDayOfWeek]):Number + +Returns how many weeks elapsed since start of the year (`0..53`). + +`firstDayOfWeek` can be `0` (Sunday) or `1` (Monday). By default weeks start at +Sunday. + +It will return `0` if `date` is before the first `firstDayOfWeek` of the year. + +```js +// Tue Jan 01 2013 +weekOfTheYear( new Date(2013,0,1) ); // 0 +// Wed Jan 09 2013 +weekOfTheYear( new Date(2013,0,9) ); // 1 +// Sun Jan 01 2012 +weekOfTheYear( new Date(2012,0,1) ); // 1 +// Mon Jan 09 2012 +weekOfTheYear( new Date(2012,0,9) ); // 2 +``` + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md new file mode 100644 index 00000000..2695a025 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md @@ -0,0 +1,174 @@ +# function # + +Function*(al)* utilities. + + + +## bind(fn, context, [...args]):Function + +Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + +### Arguments + + 1. `fn` (Function) : Target Function + 2. `context` (Object) : Execution context (object used as `this`) + 3. `[...args]` (*) : Arguments (0...n arguments) + +See: [`partial()`](#partial), [object/bindAll](./object.html#bindAll) + + + +## compose(...fn):Function + +Returns the composition of a list of functions, where each function consumes +the return value of the function that follows. In math terms, composing the +functions `f()`, `g()`, and `h()` produces `f(g(h()))`. + +```js +function add2(x) { return x + 2 } +function multi2(x) { return x * 2 } +map([1, 2, 3], compose(add2, multi2)); // [4, 6, 8] + +//same as +map([1, 2, 3], function(x){ + return add2( multi2(x) ); +}); +``` + + + +## debounce(fn, delay[, isAsap]):Function + +Creates a function that will delay the execution of `fn` until after `delay` +milliseconds have elapsed since the last time it was invoked. + +Subsequent calls to the debounced function will return the result of the last +`fn` call. + +```js +// sometimes less is more +var lazyRedraw = debounce(redraw, 300); +foo.on.resize.add(lazyRedraw); +``` + +In this visualization, `|` is a debounced-function call and `X` is the actual +callback execution: + + Default + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X + + Debounced with `isAsap == true`: + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X + +See: [`throttle()`](#throttle) + + +## func(name):Function + +Returns a function that calls a method with given `name` on supplied object. +Useful for iteration methods like `array/map` and `array/forEach`. + +See: [`prop()`](#prop) + +```js +// will call the method `getName()` for each `user` +var names = map(users, func('getName')); +``` + + + +## partial(fn, [...args]):Function + +Return a partially applied function supplying default arguments. + +This method is similar to [`bind`](#bind), except it does not alter the this +binding. + +### Arguments + + 1. `fn` (Function) : Target Function + 3. `[...args]` (*) : Arguments (0...n arguments) + +See: [`bind()`](#bind) + +```js +function add(a, b){ return a + b } +var add10 = partial(add, 10); +console.log( add10(2) ); // 12 +``` + + + +## prop(name):Function + +Returns a function that gets a property with given `name` from supplied object. +Useful for using in conjunction with `array/map` and/or for creating getters. + +See: [`array/pluck()`](array.html#pluck) + +```js +var users = [{name:"John", age:21}, {name:"Jane", age:25}]; +// ["John", "Jane"] +var names = map(users, prop('name')); +``` + + + +## series(...fn):Function + +Returns a function that will execute all the supplied functions in order and +passing the same parameters to all of them. Useful for combining multiple +`array/forEach` into a single one and/or for debugging. + + +```js +// call `console.log()` and `doStuff()` for each item item in the array +forEach(arr, series(console.log, doStuff)); +``` + + + +## throttle(fn, interval):Function + +Creates a function that, when executed, will only call the `fn` function at +most once per every `interval` milliseconds. + +If the throttled function is invoked more than once during the wait timeout, +`fn` will also be called on the trailing edge of the timeout. + +Subsequent calls to the throttled function will return the result of the last +`fn` call. + +```js +// sometimes less is more +var lazyRedraw = throttle(redraw, 300); +foo.on.resize.add(lazyRedraw); +``` + +In this visualization, `|` is a throttled-function call and `X` is the actual +`fn` execution: + + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X X X X X X X X X X X + +See: [`debounce()`](#debounce) + + +## timeout(fn, millis, context, [...args]):Number + +Functions as a wrapper for `setTimeout`. Calls a the function `fn` after a given delay `millis` in milliseconds. +The function is called within the specified context. The return value can be used to clear the timeout using `clearTimeout`. + +```js +var id = timeout(doStuff, 300, this); + +clearTimeout(id); +``` + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md new file mode 100644 index 00000000..56d7879b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md @@ -0,0 +1,385 @@ +# lang # + +Language Utilities. Easier inheritance, scope handling, type checks. + + + +## clone(val):* + +Clone native types like Object, Array, RegExp, Date and primitives. + +This method will not clone values that are referenced within `val`. It will +only copy the value reference to the new value. If the value is not a plain +object but is an object, it will return the value unchanged. + +### Example + +```js +var a = { foo: 'bar' }; +var b = clone(a); +console.log(a === b); // false +console.log(a.foo === b.foo); // true + +var c = [1, 2, 3]; +var d = clone(b); +console.log(c === d); // false +console.log(c); // [1, 2, 3] +``` + +See: [`deepClone()`](#deepClone) + + + +## createObject(parent, [props]):Object + +Create Object using prototypal inheritance and setting custom properties. + +Mix between [Douglas Crockford Prototypal Inheritance](http://javascript.crockford.com/prototypal.html) and the EcmaScript 5 `Object.create()` method. + +### Arguments + + 1. `parent` (Object) : Parent Object + 2. `[props]` (Object) : Object properties + +### Example + +```js +var base = { + trace : function(){ + console.log(this.name); + } +}; + +var myObj = createObject(base, { + name : 'Lorem Ipsum' +}); + +myObject.trace(); // "Lorem Ipsum" +``` + + + +## ctorApply(constructor, args):Object + +Do `Function.prototype.apply()` on a constructor while maintaining prototype +chain. + +```js +function Person(name, surname) { + this.name = name; + this.surname = surname; +} + +Person.prototype.walk = function(){ + console.log(this.name +' is walking'); +}; + +var args = ['John', 'Doe']; + +// "similar" effect as calling `new Person("John", "Doe")` +var john = ctorApply(Person, args); +john.walk(); // "John is walking" +``` + + + +## deepClone(val, [instanceClone]):* + +Deep clone native types like Object, Array, RegExp, Date and primitives. + +The `instanceClone` function will be invoked to clone objects that are not +"plain" objects (as defined by [`isPlainObject`](#isPlainObject)) if it is +provided. If `instanceClone` is not specified, it will not attempt to clone +non-plain objects, and will copy the object reference. + +### Example + +```js +var a = {foo:'bar', obj: {a:1, b:2}}; +var b = deepClone(a); // {foo:'bar', obj: {a:1, b:2}} +console.log( a === b ); // false +console.log( a.obj === b.obj ); // false + +var c = [1, 2, [3, 4]]; +var d = deepClone(c); // [1, 2, [3, 4]] +var e = c.concat(); // [1, 2, [3, 4]] + +console.log( c[2] === d[2] ); // false +// concat doesn't do a deep clone, arrays are passed by reference +console.log( e[2] === d[2] ); // true + +function Custom() { } +function cloneCustom(x) { return new Custom(); } +var f = { test: new Custom() }; +var g = deepClone(f, cloneCustom); +g.test === f.test // false, since new Custom instance will be created +``` + +See: [`clone()`](#clone) + + + +## defaults(val, ...defaults):void + +Return first value that isn't `null` or `undefined`. + + function doSomethingAwesome(foo, bar) { + // default arguments + foo = defaults(foo, 'lorem'); + bar = defaults(bar, 123); + // ... + } + + + +## inheritPrototype(child, parent):void + +Inherit prototype from another Object. + +```js +function Foo(name){ + this.name = name; +} +Foo.prototype = { + getName : function(){ + return this.name; + } +}; + +function Bar(name){ + this.name = name; +} +//should be called before calling constructor +inheritPrototype(Bar, Foo); + +var myObj = new Bar('lorem ipsum'); +myObj.getName(); // "lorem ipsum" +``` + + +## is(x, y):Boolean + +Check if both values are identical/egal. + +```js +// wtfjs +NaN === NaN; // false +-0 === +0; // true + +is(NaN, NaN); // true +is(-0, +0); // false +is('a', 'b'); // false +``` + +See: [`isnt()`](#isnt) + + + +## isnt(x, y):Boolean + +Check if both values are not identical/egal. + +```js +// wtfjs +NaN === NaN; // false +-0 === +0; // true + +isnt(NaN, NaN); // false +isnt(-0, +0); // true +isnt('a', 'b'); // true +``` + +See: [`is()`](#is) + + + + +## isArguments(val):Boolean + +If value is an "Arguments" object. + + + +## isArray(val):Boolean + +If value is an Array. Uses native ES5 `Array.isArray()` if available. + + + +## isBoolean(val):Boolean + +If value is a Boolean. + + + +## isDate(val):Boolean + +If value is a Date. + + + +## isEmpty(val):Boolean + +Checks if Array/Object/String is empty. + + +```js +isEmpty(''); // true +isEmpty('bar'); // false +isEmpty([]); // true +isEmpty([1, 2]); // false +isEmpty({}); // true +isEmpty({a:1, b:2}); // false +``` + + +## isFinite(val):Boolean + +Checks if value is Finite. + +Note: This is not the same as native `isFinite`, which will return `true` for +booleans and empty strings. See http://es5.github.com/#x15.1.2.5. + + + +## isFunction(val):Boolean + +If value is a Function. + + + +## isKind(val, kind):Boolean + +If value is of "kind". (used internally by some of the *isSomething* checks). + +Favor the other methods since strings are commonly mistyped and also because +some "kinds" can only be accurately checked by using other methods (e.g. +`Arguments`), some of the other checks are also faster. + +```js +isKind([1,2], 'Array'); // true +isKind(3, 'Array'); // false +isKind(3, 'Number'); // true +``` + +See: [`kindOf()`](#kindOf) + + + +## isInteger(val):Boolean + +Check if value is an integer. + +```js +isInteger(123); // true +isInteger(123.45); // false +isInteger({}); // false +isInteger('foo'); // false +isInteger('123'); // false +``` + + + +## isNaN(val):Boolean + +Check if value is `NaN`. + +Note: This is not the same as native `isNaN`, which will return `true` for +`undefined` and other values. See [ES5 isNaN](http://es5.github.com/#x15.1.2.4) + + + +## isNull(val):Boolean + +If value is `null`. + + + +## isNumber(val):Boolean + +If value is a Number. + + + +## isObject(val):Boolean + +If value is an Object. + + + +## isPlainObject(val):Boolean + +If the value is an Object created by the Object constructor. + + + +## isRegExp(val):Boolean + +If value is a RegExp. + + + +## isString(val):Boolean + +If value is a String. + + + +## isUndefined(val):Boolean + +If value is `undefined`. + + + +## kindOf(val):String + +Gets kind of value (e.g. "String", "Number", "RegExp", "Null", "Date"). +Used internally by `isKind()` and most of the other *isSomething* checks. + +```js +kindOf([1,2]); // "Array" +kindOf('foo'); // "String" +kindOf(3); // "Number" +``` + +See: [`isKind()`](#isKind) + + +## toArray(val):Array + +Convert array-like object into Array or wrap value into Array. + +```js +toArray({ + "0" : "foo", + "1" : "bar", + "length" : 2 +}); // ["foo", "bar"] + +function foo(){ + return toArray(arguments); +} +foo("lorem", 123); // ["lorem", 123] + +toArray("lorem ipsum"); // ["lorem ipsum"] +toArray(window); // [window] +toArray({foo:"bar", lorem:123}); // [{foo:"bar", lorem:123}] +``` + +See: object/values() + + + +## toString(val):String + +Convert any value to its string representation. + +Will return an empty string for `undefined` or `null`, otherwise will convert +the value to its string representation. + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md new file mode 100644 index 00000000..f45be3ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md @@ -0,0 +1,298 @@ +# math # + +Math utilities. + + +## ceil(val[, step]):Number + +Round value up to full steps. Similar to `Math.ceil()` but can round value +to an arbitrary *radix*. + + ceil(7.2); // 8 + ceil(7.8); // 8 + ceil(7, 5); // 10 + ceil(11, 5); // 15 + ceil(15, 5); // 15 + +### Common use cases + +Round values by increments of 5/10/1000/etc. + +See: [`round()`](#round), [`floor()`](#floor), [`countSteps()`](#countSteps) + + + +## clamp(val, min, max):Number + +Clamps value inside range. + +`clamp()` is extremely useful in cases where you need to limit a value inside +a certain range. So instead of doing a complex `if/else` to filter/process the +value you can restrict it to always be inside the desired range: + + clamp(-5, 0, 10); // 0 + clamp(7, 1, 10); // 7 + clamp(8, 1, 10); // 8 + clamp(10, 1, 10); // 10 + clamp(11, 1, 10); // 10 + +If the value is smaller than `min` it returns the `min`, if `val` is higher +than `max` it returns `max`. + +### Common use cases + +Any situation where you need to limit a number inside a range like: slider +position, image galleries (so user can't skip to an image that doesn't +exist), drag and drop, scroll boundaries, etc. + +See: [`loop()`](#loop) + + + + +## countSteps(val, step[, overflow]):Number + +Count number of full steps. + +### Arguments: + + 1. `val` (Number) : Value. + 2. `step` (Number) : Step size. + 3. `[overflow]` (Number) : Maximum number of steps, nSteps will loop if +`>=` than overflow. + + +Count steps is very useful for cases where you need to know how many "full +steps" the number *completed*. Think of it as a division that only returns +integers and ignore remainders. + + countSteps(3, 5); // 0 + countSteps(6, 5); // 1 + countSteps(12, 5); // 2 + countSteps(18, 5); // 3 + countSteps(21, 5); // 4 + +You can also set an `overflow` which will reset the *counter* before reaching +this number. + + countSteps(3, 5, 3); // 0 + countSteps(6, 5, 3); // 1 + countSteps(12, 5, 3); // 2 + countSteps(18, 5, 3); // 0 + countSteps(21, 5, 3); // 1 + +### Common use cases + +#### How many items fit inside an area: + + var containerWidth = 100; + var itemWidth = 8; + var howManyFit = countSteps(containerWidth, itemWidth); // 12 + +#### Split value into different scales or convert value from one scale to another + +From [mout/time/parseMs](time.html#parseMs): + + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + // {days:27, hours:4, minutes:26, seconds:5, milliseconds:454} + parseMs(2348765454); + + + +## floor(val[, step]):Number + +Round value down to full steps. Similar to `Math.floor()` but can round value +to an arbitrary *radix*. (formerly `snap`) + + floor(7.2); // 7 + floor(7.8); // 7 + floor(7, 5); // 5 + floor(11, 5); // 10 + floor(15, 5); // 15 + +### Common use cases + +Round values by increments of 5/10/1000/etc. + +See: [`round()`](#round), [`ceil()`](#ceil), [`countSteps()`](#countSteps) + + + +## inRange(val, min, max[, threshold]):Boolean + +Checks if value is inside the range. + + inRange(-6, 1, 10); // false + inRange( 5, 1, 10); // true + inRange(12, 1, 10); // false + +The threshold can be useful when you want granular control of what should match +and/or the precision could change at runtime or by some configuration option, +avoids the clutter of adding/subtracting the `threshold` from `mix` and `max`. + + inRange(12, 1, 10, 2); // true + inRange(13, 1, 10, 2); // false + +### Common use cases + +Anything that needs to check if value is inside a range, be it collision +detection, limiting interaction by mouse position, ignoring parts of the logic +that shouldn't happen if value isn't valid, simplify `if/else` conditions, +making code more readable, etc... + + + + +## isNear(val, target, threshold):Boolean + +Check if value is close to target. + +Similar to `inRange()` but used to check if value is close to a certain value +or match the desired value. Basically to simplify `if/else` conditions and to +make code clearer. + + isNear( 10.2, 10, 0.5); // true + isNear( 10.5, 10, 0.5); // true + isNear(10.51, 10, 0.5); // false + +### Common use cases + +Games where a certain action should happen if an *actor* is close to a target, +gravity fields, any numeric check that has some tolerance. + + + + +## lerp(ratio, start, end):Number + +Linear interpolation. + + lerp(0.5, 0, 10); // 5 + lerp(0.75, 0, 10); // 7.5 + +### Common use cases + +Linear interpolation is commonly used to create animations of elements moving +from one point to another, where you simply update the current ratio (which in +this case represents time) and get back the position of the element at that +"frame". + +The core idea of `lerp` is that you are using a number that goes from `0` to +`1` to specify a ratio inside that scale. This concept can be applied to +convert numbers from different scales easily. + +See: [`map()`](#map), [`norm()`](#norm) + + + + +## loop(val, min, max):Number + +Loops value inside range. Will return `min` if `val > max` and `max` if `val +< min`, otherwise it returns `val`. + + loop(-1, 0, 10); // 10 + loop( 1, 0, 10); // 1 + loop( 5, 0, 10); // 5 + loop( 9, 0, 10); // 9 + loop(10, 0, 10); // 10 + loop(11, 0, 10); // 0 + +Similar to [`clamp()`](#clamp) but *loops* the value inside the range when an +overflow occurs. + +### Common use cases + +Image galleries, infinite scroll, any kind of logic that requires that the +first item should be displayed after the last one or the last one should be +displayed after first if going on the opposite direction. + +See: [`clamp()`](#clamp) + + + + +## map(val, min1, max1, min2, max2):Number + +Maps a number from one scale to another. + + map(3, 0, 4, -1, 1) // 0.5 + map(3, 0, 10, 0, 100) // 30 + +### Common use cases + +Very useful to convert values from/to multiple scales. + +Let's suppose we have a slider that needs to go from `2000` to `5000` and that slider +has `300px` of width, here is how we would translate the knob position into the +current value: + + var knobX = 123; + var sliderWid = 300; + var minVal = 2000; + var maxVal = 5000; + + var curVal = map(knobX, 0, sliderWid, minVal, maxVal); // 3230 + +See: [`lerp()`](#lerp), [`norm()`](#norm) + + + + +## norm(val, min, max):Number + +Gets normalized ratio of value inside range. + + norm(50, 0, 100); // 0.5 + norm(75, 0, 100); // 0.75 + +### Common use cases + +Convert values between scales, used by [`map()`](#map) internally. Direct +opposite of [`lerp()`](#lerp). + +See: [`lerp()`](#lerp), [`map()`](#map) + + + +## round(val[, step]):Number + +Round value to full steps. Similar to `Math.round()` but allow setting an +arbitrary *radix*. + + // default + round(0.22); // 0 + round(0.49); // 0 + round(0.51); // 1 + + // custom radix + round(0.22, 0.5); // 0 + round(0.49, 0.5); // 0.5 + round(0.51, 0.5); // 0.5 + round(0.74, 0.5); // 0.5 + round(0.75, 0.5); // 1 + round(1.24, 0.5); // 1 + round(1.25, 0.5); // 1.5 + round(1.74, 0.5); // 1.5 + +### Common use cases + +Round values by increments of 0.5/5/10/1000/etc. + +See: [`floor()`](#floor), [`ceil()`](#ceil), [`countSteps()`](#countSteps) + + + +------------------------------------------------------------------------------- + +For more usage more info check the specs and source code. + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md new file mode 100644 index 00000000..8d93865b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md @@ -0,0 +1,225 @@ +# number # + +Number utilities. + + +## abbreviate(val[, nDecimalDigits, dictionary]):String + +Abbreviate number to thousands (K), millions (M) or billions (B). + +The default value for `nDecimalDigits` is `1`. + +### Example + + abbreviate(123456); // "123.5K" + abbreviate(12345678); // "12.3M" + abbreviate(1234567890); // "1.2B" + +You can set the amount of decimal digits (default is `1`): + + abbreviate(543); // "0.5K" + abbreviate(543, 1); // "0.5K" + abbreviate(543, 2); // "0.54K" + abbreviate(543, 3); // "0.543K" + +You can customize the abbreviation by passing a custom "dictionary": + + var _ptbrDict = { + thousands : ' mil', + millions : ' Mi', + billions : ' Bi' + }; + function customAbbr(val) { + return abbreviate(val, 1, _ptbrDict); + } + + customAbbr(123456); // "123.5 mil" + customAbbr(12345678); // "12.3 Mi" + customAbbr(1234567890); // "1.2 Bi" + + + +## currencyFormat(val[, nDecimalDigits, decimalSeparator, thousandsSeparator]):String + +Format a number as currency. + +### Example: + + currencyFormat(1000); // "1,000.00" + currencyFormat(1000, 1); // "1,000.0" + currencyFormat(1000, 2, ',', '.'); // "1.000,00" + + + +## enforcePrecision(val, nDecimalDigits):Number + +Enforce a specific amount of decimal digits and also fix floating point +rounding issues. + +### Example: + +```js +enforcePrecision(0.615, 2); // 0.62 +enforcePrecision(0.625, 2); // 0.63 +//floating point rounding "error" (rounds to odd number) ++(0.615).toFixed(2); // 0.61 ++(0.625).toFixed(2); // 0.63 +``` + + + +## MAX_INT:Number + +Maximum 32-bit signed integer value. `Math.pow(2, 31) - 1` + +### Example: + +```js +console.log( MAX_INT ); // 2147483647 +``` + + +## MAX_UINT:Number + +Maximum 32-bit unsigned integer value. `Math.pow(2, 32) - 1` + +### Example: + +```js +console.log( MAX_UINT ); // 4294967295 +``` + + +## MIN_INT:Number + +Minimum 32-bit signed integer value. `Math.pow(2, 31) * -1`. + +### Example: + +```js +console.log( MIN_INT ); // -2147483648 +``` + + +## pad(n, minLength[, char]):String + +Add padding zeros if `n.length` < `minLength`. + +### Example: + +```js +pad(1, 5); // "00001" +pad(12, 5); // "00012" +pad(123, 5); // "00123" +pad(1234, 5); // "01234" +pad(12345, 5); // "12345" +pad(123456, 5); // "123456" + +// you can also specify the "char" used for padding +pad(12, 5, '_'); // "___12" +``` + +see: [string/lpad](./string.html#lpad) + + + +## rol(val, shift):Number + +Bitwise circular shift left. + +More info at [Wikipedia#Circular_shift](http://en.wikipedia.org/wiki/Circular_shift) + + + +## ror(val, shift):Number + +Bitwise circular shift right. + +More info at [Wikipedia#Circular_shift](http://en.wikipedia.org/wiki/Circular_shift) + + + +## sign(val):Number + +Returns `-1` if value is negative, `0` if the value is `0` and `1` if value is positive. Useful for +multiplications. + +```js +sign(-123); // -1 +sign(123); // 1 +sign(0); // 0 +``` + + + +## toInt(val):Number + +"Convert" value into an 32-bit integer. Works like `Math.floor` if `val > 0` and +`Math.ceil` if `val < 0`. + +**IMPORTANT:** val will wrap at [number/MIN_INT](#MIN_INT) and +[number/MAX_INT](#MAX_INT). + +Created because most people don't know bitwise operations and also because this +feature is commonly needed. + +[Perf tests](http://jsperf.com/vs-vs-parseint-bitwise-operators/7) + +### Example: + +```js +toInt(1.25); // 1 +toInt(0.75); // 0 +toInt(-0.55); // 0 +toInt(-5.0001) // -5 +``` + + + +## toUInt(val):Number + +"Convert" value into an 32-bit unsigned integer. + +Works like AS3#uint(). + +**IMPORTANT:** val will wrap at 2^32. + +### Example: + +```js +toUInt(1.25); // 1 +toUInt(0.75); // 0 +toUInt(-0.55); // 0 +toUInt(-5.0001); // 4294967291 +toUInt(Math.pow(2,32) - 0.5); // 4294967295 +toUInt(Math.pow(2,32) + 0.5); // 0 +``` + + +## toUInt31(val):Number + +"Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + +Useful since all bitwise operators besides `>>>` treat numbers as signed +integers. + +**IMPORTANT:** val will wrap at 2^31 and negative numbers will be treated as +`zero`. + +### Example: + +```js +toUInt31(1.25); // 1 +toUInt31(0.75); // 0 +toUInt31(-0.55); // 0 +toUInt31(-5.0001); // 0 +toUInt31(Math.pow(2,31) - 0.5); // 21474836470 +toUInt31(Math.pow(2,31) + 0.5); // 0 +``` + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md new file mode 100644 index 00000000..b4d5e483 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md @@ -0,0 +1,780 @@ +# object # + +Object utilities. + + + +## bindAll(obj, [...methodNames]):void + +Bind methods of the target object to always execute on its own context +(ovewritting the original function). + +See: [function/bind](./function.html#bind) + +```js +var view = { + name: 'Lorem Ipsum', + logNameOnClick: function() { + console.log(this.name); + } +}; + +// binds all methods by default +bindAll(view); +jQuery('#docs').on('click', view.logNameOnClick); +``` + +You can also specify the list of methods that you want to bind (in case you +just want to bind a few of them). + +```js +// only the listed methods will be bound to `obj` context +bindAll(obj, 'logNameOnClick', 'doAwesomeStuffOnDrag'); +``` + + + +## contains(obj, value):Boolean + +Similar to [Array/contains](array.html#contains). Checks if Object contains +value. + +```js +var obj = { + a: 1, + b: 2, + c: 'bar' +}; +contains(obj, 2); // true +contains(obj, 'foo'); // false +``` + + + +## deepEquals(a, b, [callback]):Boolean + +Recursively tests whether two objects contain the same keys and equal values. + +`callback` specifies the equality comparison function used to compare +non-object values. It defaults to using the strict equals (`===`) operator. + +If the values are both an object, it will recurse into the objects, checking if +their keys/values are equal. It will only check the keys and values contained +by the objects; it will not check the objects' prototypes. If the either of +the values are not objects, they will be checked using the `callback` function. + +Example: + +```js +deepEquals({ a: 1 }, { a: 1 }); // true +deepEquals({ value: { a: 1 } }, { value: { a: 1 } }); // true +deepEquals({ value: { a: 1 } }, { value: { a: 2 } }); // false +deepEquals({ value: { a: 1 } }, { value: { a: 1, b: 2 } }); // false +deepEquals({}, null); // false +deepEquals(null, null); // true +deepEquals( + { a: { b: 1 } }, + { a: { b: '1' } }, + function(a, b) { return a == b; }); // true +``` + +See: [`equals()`](#equals) + + + +## deepFillIn(target, ...objects):Object + +Fill missing properties recursively. + +It's different from `deepMixIn` since it won't override any existing property. +It's also different from `merge` since it won't clone child objects during the +process. + +It returns the target object and mutates it in place. + +See: [`fillIn()`](#fillIn), [`deepMixIn()`](#deepMixIn), [`merge()`](#merge) + +```js +var base = { + foo : { + bar : 123 + }, + lorem : 'ipsum' +}; +var options = deepFillIn({foo : { baz : 45 }, lorem : 'amet'}, base); +// > {foo: {bar:123, baz : 45}, lorem : 'amet'} +``` + + + +## deepMatches(target, pattern):Boolean + +Recursively checks if object contains all properties/value pairs. When both +the target and pattern values are arrays, it checks that the target value +contain matches for all the items in the pattern array (independent of order). + +```js +var john = { + name: 'John', + age: 22, + pets: [ + { type: 'cat', name: 'Grumpy Cat' }, + { type: 'dog', name: 'Hawk' } + ] +}; + +deepMatches(john, { name: 'John' }); // true +deepMatches(john, { age: 21 }); // false +deepMatches(john, { pets: [ { type: 'cat' } ] }); // true +deepMatches(john, { pets: [ { name: 'Hawk' } ] }); // true +deepMatches(john, { pets: [ { name: 'Hairball' } ] }); // false +``` + +See [`matches()`](#matches) + + + +## deepMixIn(target, ...objects):Object + +Mixes objects into the target object, recursively mixing existing child objects +as well. + +It will only recursively mix objects if both (existing and new) values are +plain objects. + +Returns the target object. Like [`merge()`](#merge), but mutates the target +object, and does not clone child objects. + +```js +var target = { + foo: { + name: "foo", + id: 1 + } +}; + +deepMixIn(target, { foo: { id: 2 } }); +console.log(target); // { foo: { name: "foo", id: 2 } } +``` + +See: [`mixIn()`](#mixIn), [`merge()`](#merge), [`deepFillIn()`](#deepFillIn) + + + +## equals(a, b, [callback]):Boolean + +Tests whether two objects contain the same keys and values. + +`callback` specifies the equality comparison function used to compare the +values. It defaults to using the strict equals (`===`) operator. + +It will only check the keys and values contained by the objects; it will not +check the objects' prototypes. If either of the values are not objects, they +will be compared using the `callback` function. + +```js +equals({}, {}); // true +equals({ a: 1 }, { a: 1 }); // true +equals({ a: 1 }, { a: 2 }); // false +equals({ a: 1, b: 2 }, { a: 1 }); // false +equals({ a: 1 }, { a: 1, b: 2 }); // false +equals(null, null); // true +equals(null, {}); // false +equals({ a: 1 }, { a: '1' }, function(a, b) { return a == b; }); // true +``` + + + +## every(obj, callback, [thisObj]):Boolean + +Similar to [Array/every](array.html#every). Tests whether all properties in the +object pass the test implemented by the provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +every(obj, isNumber); // false +``` + + + +## fillIn(obj, ...default):Object + +Fill in missing properties in object with values from the *defaults* objects. + + var base = { + foo : 'bar', + num : 123 + }; + + fillIn({foo:'ipsum'}, base); // {foo:'ipsum', num:123} + +PS: it allows merging multiple objects at once, the first ones will take +precedence. + +See: [`mixIn()`](#mixIn), [`merge()`](#merge), [`deepFillIn()`](#deepFillIn) + + + +## filter(obj, callback, [thisObj]) + +Returns a new object containing all properties where `callback` returns true, +similar to Array/filter. It does not use properties from the object's +prototype. + +Callback receives the same arguments as `forOwn()`. + +See: [`forOwn()`](#forOwn), [`forIn()`](#forIn), [`pick()`](#pick) + +```js +var obj = { + foo: 'value', + bar: 'bar value' +}; + +// returns { bar: 'bar value' } +filter(obj, function(v) { return value.length > 5; }); + +// returns { foo: 'value' } +filter(obj, function(v, k) { return k === 'foo'; }); +``` + + + +## find(obj, callback, [thisObj]) + +Loops through all the properties in the Object and returns the first one that +passes a truth test (callback), similar to [Array/find](array.html#find). +Unlike Array/find, order of iteration is not guaranteed. + +```js +var obj = { + a: 'foo', + b: 12 +}; + +find(obj, isString); // 'foo' +find(obj, isNumber); // 12 +``` + + + +## forIn(obj, callback[, thisObj]) + +Iterate over all properties of an Object, similar to +[Array/forEach](array.html#forEach). + +It [avoids don't enum bug on IE](https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). +It **will** iterate over inherited (enumerable) properties from the prototype. + +It allows exiting the iteration early by returning `false` on the callback. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys), [`values()`](#values) + +### Callback arguments + +Callback will receive the following arguments: + + 1. Property Value (*) + 2. Key name (String) + 3. Target object (Object) + +### Example + +```js +function Foo(){ + this.foo = 1; + this.bar = 2; +} + +Foo.prototype.lorem = 4; + +var obj = new Foo(); + +var result = 0; +var keys = []; + +forIn(obj, function(val, key, o){ + result += val; + keys.push(key); +}); + +console.log(result); // 7 +console.log(keys); // ['foo', 'bar', 'lorem'] +``` + + + +## forOwn(obj, callback[, thisObj]) + +Iterate over all own properties from an Object, similar to +[Array/forEach](array.html#forEach). + +It [avoids don't enum bug on IE](https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). +Notice that it **won't** iterate over properties from the prototype. + +It allows exiting the iteration early by returning `false` on the callback. + +See: [`forIn()`](#forIn), [`keys()`](#keys), [`values()`](#values) + +### Callback arguments + +Callback will receive the following arguments: + + 1. Property Value (*) + 2. Key name (String) + 3. Target object (Object) + +### Example + +```js +function Foo(){ + this.foo = 1; + this.bar = 2; +} + +// will be ignored +Foo.prototype.lorem = 4; + +var obj = new Foo(); + +var result = 0; +var keys = []; + +forOwn(obj, function(val, key, o){ + result += val; + keys.push(key); +}); + +console.log(result); // 3 +console.log(keys); // ['foo', 'bar'] +``` + + + +## functions(obj):Array + +Returns a sorted list of all enumerable properties that have function values +(including inherited properties). + +```js +var obj = { + foo : function(){}, + bar : 'baz' +}; +functions(obj); // ['foo'] +``` + + + +## get(obj, propName):* + +Returns nested property value. Will return `undefined` if property doesn't +exist. + +See: [`set()`](#set), [`namespace()`](#namespace), [`has()`](#has) + +```js +var lorem = { + ipsum : { + dolor : { + sit : 'amet' + } + } + }; + +get(lorem, 'ipsum.dolor.sit'); // "amet" +get(lorem, 'foo.bar'); // undefined +``` + + + +## has(obj, propName):Boolean + +Checks if object contains a child property. Useful for cases where you need to +check if an object contain a *nested* property. It will get properties +inherited by the prototype. + +see: [`hasOwn()`](#hasOwn), [`get()`](#get) + +```js +var a = { + b : { + c : 123 + } + }; + +has(a, 'b.c'); // true +has(a, 'foo.c'); // false +``` + +### Common use case + +```js +if( has(a, 'foo.c') ){ // false + // ... +} + +if( a.foo.c ){ // ReferenceError: `foo` is not defined + // ... +} +``` + + + +## hasOwn(obj, propName):Boolean + +Safer `Object.hasOwnProperty`. Returns a boolean indicating whether the object +has the specified property. + +see: [`has()`](#has) + +```js +var obj = { + foo: 1, + hasOwnProperty : 'bar' +}; + +obj.hasOwnProperty('foo'); // ERROR! hasOwnProperty is not a function + +hasOwn(obj, 'foo'); // true +hasOwn(obj, 'hasOwnProperty'); // true +hasOwn(obj, 'toString'); // false +``` + + + +## keys(obj):Array + +Returns an array of all own enumerable properties found upon a given object. +It will use the native `Object.keys` if present. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`values()`](#values) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +keys(obj); // ['foo', 'bar', 'lorem'] +``` + + + +## map(obj, callback, [thisObj]):Object + +Returns a new object where the property values are the result of calling the +callback for each property in the original object, similar to Array/map. + +The callback function receives the same arguments as in `forOwn()`. + +See: [`forOwn()`](#forOwn) + +```js +var obj = { foo: 1, bar: 2 }, + data = { foo: 0, bar: 1 }; + +map(obj, function(v) { return v + 1; }); // { foo: 2, bar: 3 } +map(obj, function(v, k) { return k; }); // { foo: "foo", bar: "bar" } +map(obj, function(v, k) { return this[k]; }, data); // { foo: 0, bar: 1 } +``` + + + +## matches(obj, props):Boolean + +Checks if object contains all properties/values pairs. Useful for validation +and filtering. + +```js +var john = {age:25, hair:'long', beard:true}; +var mark = {age:27, hair:'short', beard:false}; +var hippie = {hair:'long', beard:true}; +matches(john, hippie); // true +matches(mark, hippie); // false +``` + +See [`deepMatches()`](#deepMatches) + + + +## merge(...objects):Object + +Deep merges objects. Note that objects and properties will be cloned during the +process to avoid undesired side effects. It return a new object and won't +affect source objects. + +```js +var obj1 = {a: {b: 1, c: 1, d: {e: 1, f: 1}}}; +var obj2 = {a: {b: 2, d : {f : 'yeah'} }}; + +merge(obj1, obj2); // {a: {b : 2, c : 1, d : {e : 1, f : 'yeah'}}} +``` + +See: [`deepMixIn()`](#deppMixIn), [`deepFillIn()`](#deepFillIn) + + + +## max(obj[, iterator]):* + +Returns maximum value inside object or use a custom iterator to define how +items should be compared. Similar to [Array/max](array.html#max). + +See: [`min()`](#min) + +```js +max({a: 100, b: 2, c: 1, d: 3, e: 200}); // 200 +max({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'lorem' +``` + + + +## min(obj[, iterator]):* + +Returns minimum value inside object or use a custom iterator to define how +items should be compared. Similar to [Array/min](array.html#min). + +See: [`max()`](#max) + +```js +min({a: 100, b: 2, c: 1, d: 3, e: 200}); // 1 +min({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'foo' +``` + + + +## mixIn(target, ...objects):Object + +Combine properties from all the objects into first one. + +This method affects target object in place, if you want to create a new Object +pass an empty object as first parameter. + +### Arguments + + 1. `target` (Object) : Target Object. + 2. `...objects` (...Object) : Objects to be combined (0...n objects). + +### Example + +```js +var a = {foo: "bar"}; +var b = {lorem: 123}; + +mixIn({}, a, b); // {foo: "bar", lorem: 123} +console.log(a); // {foo: "bar"} + +mixIn(a, b); // {foo: "bar", lorem: 123} +console.log(a); // {foo: "bar", lorem: 123} +``` + +See: [`fillIn()`](#fillIn), [`merge()`](#merge) + + + + +## namespace(obj, propName):Object + +Creates an empty object inside namespace if not existent. Will return created +object or existing object. + +See: [`get()`](#get), [`set()`](#set) + +```js +var obj = {}; +namespace(obj, 'foo.bar'); // {} +console.log(obj); // {foo:{bar:{}}} +``` + + + +## pick(obj, ...keys):Object + +Return a copy of the object that contains only the whitelisted keys. + +See: [`filter()`](#filter) + +```js +var user = { + firstName : 'John', + lastName : 'Doe', + dob : '1985/07/23', + gender : 'male' +}; + +// can pass an array of keys as second argument +var keys = ['firstName', 'dob'] +pick(user, keys); // {firstName:"John", dob: "1985/07/23"} + +// or multiple arguments +pick(user, 'firstName', 'lastName'); // {firstName:"John", lastName: "Doe"} +``` + + + +## pluck(obj, propName):Object + +Extract an object containing property values with keys as they appear in the +passed object. + +```js +var users = { + first: { + name : 'John', + age : 21 + }, + second: { + name : 'Mary', + age : 25 + } +}; + +pluck(users, 'name'); // {first: 'John', second: 'Mary'} ); +pluck(users, 'age'); // {first: 21, second: 25} ); +``` + + + +## reduce(obj, callback, initial, [thisObj]):* + +Similar to [Array/reduce](array.html#reduce). + +Apply a function against an accumulator and each property of the object (order +is undefined) as to reduce it to a single value. + +```js +var obj = {a: 1, b: 2, c: 3, d: 4}; + +function sum(prev, cur, key, list) { + compare1.push(prev); + return prev + cur; +} + +reduce(obj, sum); // 10 +``` + + + +## reject(obj, callback, thisObj):Object + +Returns a new object containing all properties where `callback` returns true, +similar to [Array/reject](array.html#reject). It does not use properties from +the object's prototype. Opposite of [`filter()`](#filter). + +See [`filter()`](#filter) + +### Example + +```js +var obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; +reject(obj, function(x) { return (x % 2) !== 0; }); // {b: 2, d: 4} +``` + + + +## values(obj):Array + +Returns an array of all own enumerable properties values found upon a given object. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +values(obj); // [1, 2, 3] +``` + + + +## set(obj, propName, value) + +Sets a nested property value. + +See: [`get()`](#get), [`namespace()`](#namespace) + +```js +var obj = {}; +set(obj, 'foo.bar', 123); +console.log(obj.foo.bar); // 123 +console.log(obj); // {foo:{bar:123}} +``` + + + +## size(obj):Number + +Returns the count of own enumerable properties found upon a given object. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +size(obj); // 3 +``` + + + +## some(obj, callback, [thisObj]):Boolean + +Similar to [Array/some](array.html#some). Tests whether any properties in the +object pass the test implemented by the provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +some(obj, isNumber); // true +``` + + + +## unset(obj, propName):Boolean + +Delete object property if existent and returns a boolean indicating succes. It +will also return `true` if property doesn't exist. + +Some properties can't be deleted, to understand why [check this +article](http://perfectionkills.com/understanding-delete/). + +See: [`set()`](#set) + +```js +var lorem = { + ipsum : { + dolor : { + sit : 'amet' + } + } + }; + +unset(lorem, 'ipsum.dolor.sit'); // true +console.log(lorem.ipsum.dolor); // {} +unset(lorem, 'foo.bar'); // true +``` diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md new file mode 100644 index 00000000..1be3c102 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md @@ -0,0 +1,115 @@ +# queryString # + +Utilities for query string manipulation. + + + +## contains(url, paramName):Boolen + +Checks if query string contains parameter. + +### Arguments: + + 1. `url` (String) : URL or query string. + 2. `paramName` (String) : Parameter name. + +### Example: + +```js +var url = 'example.com/?lorem=ipsum'; +contains(url, 'lorem'); // true +contains(url, 'foo'); //false +``` + + + +## decode(queryStr[, shouldTypecast]):Object + +Parses query string and creates an object of keys => vals. + +Will typecast value with [`string/typecast`](string.html#typecast) by default +and decode string parameters using `decodeURIComponent()`. + +```js +var query = '?foo=bar&lorem=123'; +decode(query); // {foo: "bar", lorem: 123} +decode(query, false); // {foo: "bar", lorem: "123"} +``` + + +## encode(obj):String + +Encode object into a query string. + +Will encode parameters with `encodeURIComponent()`. + +```js +encode({foo: "bar", lorem: 123}); // "?foo=bar&lorem=123" +``` + + +## getParam(url, param[, shouldTypecast]):* + +Get query parameter value. + +Will typecast value with [`string/typecast`](string.html#typecast) by default. + +See: [`setParam()`](#setParam) + +### Arguments: + + 1. `url` (String) : Url. + 2. `param` (String) : Parameter name. + 3. `[shouldTypecast]` (Boolean) : If it should typecast value. + +### Example: + +```js +var url = 'example.com/?foo=bar&lorem=123&ipsum=false'; +getParam(url, 'dolor'); // "amet" +getParam(url, 'lorem'); // 123 +getParam(url, 'lorem', false); // "123" +``` + + +## parse(url[, shouldTypecast]):Object + +Parses URL, extracts query string and decodes it. + +It will typecast all properties of the query object unless second argument is +`false`. + +Alias to: `decode(getQuery(url))`. + +```js +var url = 'example.com/?lorem=ipsum&a=123'; +parse(url); // {lorem: "ipsum", a: 123} +parse(url, false); // {lorem: "ipsum", a: "123"} +``` + + +## getQuery(url):String + +Gets full query as string with all special chars decoded. + +```js +getQuery('example.com/?lorem=ipsum'); // "?lorem=ipsum" +``` + + +## setParam(url, paramName, value):String + +Add new query string parameter to URL or update existing value. + +See: [`getParam()`](#getParam) + +```js +setParam('?foo=bar&lorem=0', 'lorem', 'ipsum'); // '?foo=bar&lorem=ipsum' +setParam('?lorem=1', 'foo', 123); // '?lorem=1&foo=123' +``` + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md new file mode 100644 index 00000000..b058b4e0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md @@ -0,0 +1,218 @@ +# random # + +Pseudo-random generators. + +mout uses `Math.random` by default on all the pseudo-random generators, if +you need a seeded random or a better algorithm see the [`random()`](#random) +documentation for instructions. + + + +## choice(...items):* + +Returns a random element from the supplied arguments or from an array if single +argument is an array. + +### Example: + +```js +choice(1, 2, 3, 4, 5); // 3 + +var arr = ['lorem', 'ipsum', 'dolor']; +choice(arr); // 'dolor' +``` + + + +## guid():String + +Generates a pseudo-random [Globally Unique Identifier](http://en.wikipedia.org/wiki/Globally_unique_identifier) (v4). + +Since the total number of GUIDs is 2122 the chance of generating the +same value twice is negligible. + +**Important:** this method uses `Math.random` by default so the UUID isn't +*safe* (sequence of outputs can be predicted in some cases), check the +[`random()`](#random) documentation for more info on how to replace the default +PRNG if you need extra safety or need *seeded* results. + +See: [`randHex()`](#randHex), [`random()`](#random) + +### Example: + +```js +guid(); // 830e9f50-ac7f-4369-a14f-ed0e62b2fa0b +guid(); // 5de3d09b-e79c-4727-932b-48c49228d508 +``` + + + +## rand([min], [max]):Number + +Gets a random number inside range or snap to min/max values. + +### Arguments: + + 1. `[min]` (Number) : Minimum value. Defaults to `number/MIN_INT`. + 2. `[max]` (Number) : Maximum value. Defaults to `number/MAX_INT`. + + +### Example: + +```js +rand(); // 448740433.55274725 +rand(); // -31797596.097682 +rand(0, 10); // 7.369723 +rand(0, 10); // 5.987042 +``` + +See: [`random()`](#random) + + + +## randBit():Number + +Returns a random "bit" (0 or 1). Useful for addition/subtraction. + +It's slightly faster than `choice(0, 1)` since implementation is simpler (not +that it will make a huge difference in most cases). + +See: [`choice()`](#choice) + +### Example: + +```js +randBit(); // 1 +randBit(); // 0 + +//same effect as +choice(0, 1); +``` + + + +## randHex([size]):String + +Returns a random hexadecimal string. + +The default `size` is `6`. + +### Example: + +```js +randHex(); // "dd8575" +randHex(); // "e6baeb" +randHex(2); // "a2" +randHex(30); // "effd7e2ad9a4a3067e30525fab983a" +``` + + + +## randInt([min], [max]):Number + +Gets a random integer inside range or snap to min/max values. + +### Arguments: + + 1. `[min]` (Number) : Minimum value. Defaults to `number/MIN_INT`. + 2. `[max]` (Number) : Maximum value. Defaults to `number/MAX_INT`. + + +### Example: + +```js +randInt(); // 448740433 +randInt(); // -31797596 +randInt(0, 10); // 7 +randInt(0, 10); // 5 +``` + + + +## randSign():Number + +Returns a random "sign" (-1 or 1). Useful for multiplications. + +It's slightly faster than `choice(-1, 1)` since implementation is simpler (not +that it will make a huge difference in most cases). + +See: [`choice()`](#choice) + +### Example: + +```js +randSign(); // -1 +randSign(); // 1 + +//same effect as +choice(-1, 1); +``` + + + +## random():Number + +Returns a random number between `0` and `1`. Same as `Math.random()`. + +```js +random(); // 0.35435103671625257 +random(); // 0.8768321881070733 +``` + +**Important:** No methods inside mout should call `Math.random()` +directly, they all use `random/random` as a proxy, that way we can +inject/replace the pseudo-random number generator if needed (ie. in case we +need a seeded random or a better algorithm than the native one). + +### Replacing the PRNG + +In some cases we might need better/different algorithms than the one provided +by `Math.random` (ie. safer, seeded). + +Because of licensing issues, file size limitations and different needs we +decided to **not** implement a custom PRNG and instead provide a easy way to +override the default behavior. - [issue #99](https://github.com/millermedeiros/amd-utils/issues/99) + +If you are using mout with a loader that supports the [AMD map +config](https://github.com/amdjs/amdjs-api/wiki/Common-Config), such as +[RequireJS](http://requirejs.org/), you can use it to replace the PRNG +(recommended approach): + +```js +requirejs.config({ + map : { + // all modules will load "my_custom_prng" instead of + // "mout/random/random" + '*' : { + 'mout/random/random' : 'my_custom_prng' + } + } +}); +``` + +You also have the option to override `random.get` in case you are using +mout on node.js or with a loader which doesn't support the map config: + +```js +// replace the PRNG +var n = 0; +random.get = function(){ + return ++n % 2? 0 : 1; // not so random :P +}; +random(); // 0 +random(); // 1 +random(); // 0 +random(); // 1 +``` + +See this [detailed explanation about PRNG in +JavaScript](http://baagoe.org/en/w/index.php/Better_random_numbers_for_javascript) +to understand the issues with the native `Math.random` and also for a list of +algorithms that could be used instead. + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md new file mode 100644 index 00000000..2b282315 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md @@ -0,0 +1,594 @@ +# string # + +String utilities. + + +## camelCase(str):String + +Convert string to "camelCase" text. + +See: [`pascalCase()`](#pascalCase), [`unCamelCase()`](#unCamelCase) + +### Example + +```js +camelCase('lorem-ipsum-dolor'); // "loremIpsumDolor" +camelCase('lorem ipsum dolor'); // "loremIpsumDolor" +``` + + + +## contains(str, substring, [fromIndex]):Boolean + +Checks if string contains the given substring. + +See: [`startsWith()`](#startsWith), [`endsWith()`](#endsWith) + +### Example + +```js +contains('lorem', 'or'); // true +contains('lorem', 'bar'); // false +``` + + + +## crop(str, maxChars, [append]):String + +Truncate string at full words. Alias to `truncate(str, maxChars, append, true);`. + +See: [`truncate()`](#truncate) + +### Example + +```js +crop('lorem ipsum dolor', 10); // "lorem..." +crop('lorem ipsum dolor', 10, '+'); // "lorem+" +``` + + + +## endsWith(str, suffix):Boolean + +Checks if string ends with specified suffix. + +See: [`startsWith()`](#startsWith), [`contains()`](#contains) + +### Example + +```js +endsWith('lorem ipsum', 'lorem'); // false +endsWith('lorem ipsum', 'ipsum'); // true +``` + + + +## escapeHtml(str):String + +Escapes HTML special chars (`>`, `<`, `&`, `"`, `'`). + +See: [`unescapeHtml()`](#unescapeHtml) + +### Example + +```js +escapeHtml('lorem & "ipsum"'); // "lorem &amp; &quot;ipsum&quot;" +``` + + + +## escapeRegExp(str):String + +Escape special chars to be used as literals in RegExp constructors. + +### Example + +```js +str = escapeRegExp('[lorem.ipsum]'); // "\\[lorem\\.ipsum\\]" +reg = new RegExp(str); // /\[lorem\.ipsum\]/ +``` + + + +## escapeUnicode(str[, shouldEscapePrintable]):String + +Unicode escape chars. + +It will only escape non-printable ASCII chars unless `shouldEscapePrintable` is +set to `true`. + +See: [`unescapeUnicode()`](#unescapeUnicode) + +```js +escapeUnicode('føo bår'); +// > "f\u00f8o b\u00e5r" +escapeUnicode('føo bår', true); +// > "\u0066\u00f8\u006f\u0020\u0062\u00e5\u0072" +``` + + + +## hyphenate(str):String + +Replaces spaces with hyphens, split camelCase text, remove non-word chars, +remove accents and convert to lower case. + +See: [`slugify()`](#slugify), [`underscore()`](#underscore), +[`unhyphenate`](#unhyphenate) + +```js +hyphenate(' %# lorem ipsum ? $ dolor'); // "lorem-ipsum-dolor" +hyphenate('spéçïãl çhârs'); // "special-chars" +hyphenate('loremIpsum'); // "lorem-ipsum" +``` + + + +## interpolate(str, replacements[, syntax]):String + +String interpolation. Format/replace tokens with object properties. + +```js +var tmpl = 'Hello {{name}}!'; +interpolate(tmpl, {name: 'World'}); // "Hello World!" +interpolate(tmpl, {name: 'Lorem Ipsum'}); // "Hello Lorem Ipsum!" +``` + +It uses a mustache-like syntax by default but you can set your own format if +needed. You can also use Arrays for the replacements (since Arrays are +objects as well): + +```js +// matches everything inside "${}" +var syntax = /\$\{([^}]+)\}/g; +var tmpl = "Hello ${0}!"; +interpolate(tmpl, ['Foo Bar'], syntax); // "Hello Foo Bar!" +``` + + + +## lowerCase(str):String + +"Safer" `String.toLowerCase()`. (Used internally) + +### Example + +```js +(null).toLowerCase(); // Error! +(undefined).toLowerCase(); // Error! +lowerCase(null); // "" +lowerCase(undefined); // "" +``` + + + +## lpad(str, minLength[, char]):String + +Pad string from left with `char` if its' length is smaller than `minLen`. + +See: [`rpad()`](#rpad) + +### Example + +```js +lpad('a', 5); // " a" +lpad('a', 5, '-'); // "----a" +lpad('abc', 3, '-'); // "abc" +lpad('abc', 4, '-'); // "-abc" +``` + + + +## ltrim(str, [chars]):String + +Remove chars or white-spaces from beginning of string. + +`chars` is an array of chars to remove from the beginning of the string. If +`chars` is not specified, Unicode whitespace chars will be used instead. + +See: [`rtrim()`](#rtrim), [`trim()`](#trim) + +### Example + +```js +ltrim(' lorem ipsum '); // "lorem ipsum " +ltrim('--lorem ipsum--', ['-']); // "lorem ipsum--" +``` + + + +## makePath(...args):String + +Group arguments as path segments, if any of the args is `null` or `undefined` +it will be ignored from resulting path. It will also remove duplicate "/". + +See: [`array/join()`](array.html#join) + +### Example + +```js +makePath('lorem', 'ipsum', null, 'dolor'); // "lorem/ipsum/dolor" +makePath('foo///bar/'); // "foo/bar/" +``` + + + +## normalizeLineBreaks(str, [lineBreak]):String + +Normalize line breaks to a single format. Defaults to Unix `\n`. + +It handles DOS (`\r\n`), Mac (`\r`) and Unix (`\n`) formats. + +### Example + +```js +// "foo\nbar\nlorem\nipsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum'); + +// "foo\rbar\rlorem\ripsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum', '\r'); + +// "foo bar lorem ipsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum', ' '); +``` + + + +## pascalCase(str):String + +Convert string to "PascalCase" text. + +See: [`camelCase()`](#camelCase) + +### Example + +```js +pascalCase('lorem-ipsum-dolor'); // "LoremIpsumDolor" +pascalCase('lorem ipsum dolor'); // "LoremIpsumDolor" +``` + + + +## properCase(str):String + +UPPERCASE first char of each word, lowercase other chars. + +### Example + +```js +properCase('loRem iPSum'); // "Lorem Ipsum" +``` + + + +## removeNonASCII(str):String + +Remove [non-printable ASCII +chars](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). + +### Example + +```js +removeNonASCII('äÄçÇéÉêlorem-ipsumöÖÐþúÚ'); // "lorem-ipsum" +``` + + + +## removeNonWord(str):String + +Remove non-word chars. + +### Example + +```js +var str = 'lorem ~!@#$%^&*()_+`-={}[]|\\:";\'/?><., ipsum'; +removeNonWord(str); // "lorem - ipsum" +``` + + + +## repeat(str, n):String + +Repeat string n-times. + +### Example + +```js +repeat('a', 3); // "aaa" +repeat('bc', 2); // "bcbc" +repeat('a', 0); // "" +``` + + + +## replace(str, search, replacements):String + +Replace string(s) with the replacement(s) in the source. + +`search` and `replacements` can be an array, or a single item. For every item +in `search`, it will call `str.replace` with the search item and the matching +replacement in `replacements`. If `replacements` only contains one replacement, +it will be used for all the searches, otherwise it will use the replacement at +the same index as the search. + +### Example + +```js +replace('foo bar', 'foo', 'test'); // "test bar" +replace('test 1 2', ['1', '2'], 'n'); // "test n n" +replace('test 1 2', ['1', '2'], ['one', 'two']); // "test one two" +replace('123abc', [/\d/g, /[a-z]/g], ['0', '.']); // "000..." +``` + + + +## replaceAccents(str):String + +Replaces all accented chars with regular ones. + +**Important:** Only covers **Basic Latin** and **Latin-1** unicode chars. + +### Example + +```js +replaceAccents('spéçïãl çhârs'); // "special chars" +``` + + + +## rpad(str, minLength[, char]):String + +Pad string from right with `char` if its' length is smaller than `minLen`. + +See: [`lpad()`](#lpad) + +### Example + +```js +rpad('a', 5); // "a " +rpad('a', 5, '-'); // "a----" +rpad('abc', 3, '-'); // "abc" +rpad('abc', 4, '-'); // "abc-" +``` + + + +## rtrim(str, [chars]):String + +Remove chars or white-spaces from end of string. + +`chars` is an array of chars to remove from the end of the string. If +`chars` is not specified, Unicode whitespace chars will be used instead. + +See: [`trim()`](#trim), [`ltrim()`](#ltrim) + +### Example + +```js +rtrim(' lorem ipsum '); // " lorem ipsum" +rtrim('--lorem ipsum--', ['-']); // "--lorem ipsum" +``` + + + +## sentenceCase(str):String + +UPPERCASE first char of each sentence and lowercase other chars. + +### Example + +```js +var str = 'Lorem IpSum DoLOr. maeCeNnas Ullamcor.'; +sentenceCase(str); // "Lorem ipsum dolor. Maecennas ullamcor." +``` + + + +## stripHtmlTags(str):String + +Remove HTML/XML tags from string. + +### Example + +```js +var str = '

      lorem ipsum

      '; +stripHtmlTags(str); // "lorem ipsum" +``` + + + +## startsWith(str, prefix):Boolean + +Checks if string starts with specified prefix. + +See: [`endsWith()`](#endsWith), [`contains()`](#contains) + +### Example + +```js +startsWith('lorem ipsum', 'lorem'); // true +startsWith('lorem ipsum', 'ipsum'); // false +``` + + + +## slugify(str[, delimeter]):String + +Convert to lower case, remove accents, remove non-word chars and replace spaces +with the delimeter. The default delimeter is a hyphen. + +Note that this does not split camelCase text. + +See: [`hyphenate()`](#hyphenate) and [`underscore()`](#underscore) + +### Example + +```js +var str = 'loremIpsum dolor spéçïãl chârs'; +slugify(str); // "loremipsum-dolor-special-chars" +slugify(str, '_'); // "loremipsum_dolor_special_chars" +``` + + + +## trim(str, [chars]):String + +Remove chars or white-spaces from beginning and end of string. + +`chars` is an array of chars to remove from the beginning and end of the +string. If `chars` is not specified, Unicode whitespace chars will be used +instead. + +See: [`rtrim()`](#rtrim), [`ltrim()`](#ltrim) + +### Example + +```js +trim(' lorem ipsum '); // "lorem ipsum" +trim('-+-lorem ipsum-+-', ['-', '+']); // "lorem ipsum" +``` + + + +## truncate(str, maxChars, [append], [onlyFullWords]):String + +Limit number of chars. Returned string `length` will be `<= maxChars`. + +See: [`crop()`](#crop) + +### Arguments + + 1. `str` (String) : String + 2. `maxChars` (Number) : Maximum number of characters including `append.length`. + 3. `[append]` (String) : Value that should be added to the end of string. + Defaults to "...". + 4. `[onlyFullWords]` (Boolean) : If it shouldn't break words. Default is + `false`. (favor [`crop()`](#crop) since code will be clearer). + +### Example + +```js +truncate('lorem ipsum dolor', 11); // "lorem ip..." +truncate('lorem ipsum dolor', 11, '+'); // "lorem ipsu+" +truncate('lorem ipsum dolor', 11, null, true); // "lorem..." +``` + + + +## typecast(str):* + +Parses string and convert it into a native value. + +### Example + +```js +typecast('lorem ipsum'); // "lorem ipsum" +typecast('123'); // 123 +typecast('123.45'); // 123.45 +typecast('false'); // false +typecast('true'); // true +typecast('null'); // null +typecast('undefined'); // undefined +``` + + + +## unCamelCase(str, [delimiter]):String + +Add the delimiter between camelCase text and convert first char of each word to +lower case. + +The delimiter defaults to a space character. + +See: [`camelCase()`][#camelCase] + +### Example + +```js +unCamelCase('loremIpsumDolor'); // "lorem ipsum dolor" +unCamelCase('loremIpsumDolor', '-'); // "lorem-ipsum-color" +``` + + +## underscore(str):String + +Replaces spaces with underscores, split camelCase text, remove non-word chars, +remove accents and convert to lower case. + +See: [`slugify()`](#slugify), [`hyphenate()`](#hyphenate) + +```js +underscore(' %# lorem ipsum ? $ dolor'); // "lorem_ipsum_dolor" +underscore('spéçïãl çhârs'); // "special_chars" +underscore('loremIpsum'); // "lorem_ipsum" +``` + + + +## unescapeHtml(str):String + +Unescapes HTML special chars (`>`, `<`, `&`, `"`, `'`). + +See: [`escapeHtml()`](#escapeHtml) + +### Example + +```js +unescapeHtml('lorem &amp; &quot;ipsum&quot;'); // 'lorem & "ipsum"' +``` + + + +## unescapeUnicode(str):String + +Unescapes unicode char sequences. + +See: [`escapeUnicode()`](#escapeUnicode) + +```js +unescapeUnicode('\\u0066\\u00f8\\u006f\\u0020\\u0062\\u00e5\\u0072'); +// > 'føo bår' +``` + + + +## unhyphenate(str):String + +Replaces hyphens with spaces. (only hyphens between word chars) + +See : [`hyphenate()`](#hyphenate) + +### Example + +```js +unhyphenate('lorem-ipsum-dolor'); // "lorem ipsum dolor" +``` + + +## upperCase(str):String + +"Safer" `String.toUpperCase()`. (Used internally) + +### Example + +```js +(null).toUpperCase(); // Error! +(undefined).toUpperCase(); // Error! +upperCase(null); // "" +upperCase(undefined); // "" +``` + + + +## WHITE_SPACES:Array + +Constant array of all [Unicode white-space +characters](http://en.wikipedia.org/wiki/Whitespace_character). + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md new file mode 100644 index 00000000..628c2a9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md @@ -0,0 +1,64 @@ +# time # + +Utilities for time manipulation. + + +## convert(value, sourceUnit, [destinationUnit]):Number + +Converts time between units. + +Available units: `millisecond`, `second`, `minute`, `hour`, `day`, `week`. +Abbreviations: `ms`, `s`, `m`, `h`, `d`, `w`. + +We do **not** support year and month as a time unit since their values are not +fixed. + +The default `destinationUnit` is `ms`. + +```js +convert(1, 'minute'); // 60000 +convert(2.5, 's', 'ms'); // 2500 +convert(2, 'm', 's'); // 120 +convert(500, 'ms', 's'); // 0.5 +``` + + + +## now():Number + +Returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. +Uses `Date.now()` if available. + +### Example + +```js +now(); // 1335449614650 +``` + + + +## parseMs(ms):Object + +Parse timestamp (milliseconds) into an object `{milliseconds:number, +seconds:number, minutes:number, hours:number, days:number}`. + +### Example + +```js +// {days:27, hours:4, minutes:26, seconds:5, milliseconds:454} +parseMs(2348765454); +``` + + + +## toTimeString(ms):String + +Convert timestamp (milliseconds) into a time string in the format "[H:]MM:SS". + +### Example + +```js +toTimeString(12513); // "00:12" +toTimeString(951233); // "15:51" +toTimeString(8765235); // "2:26:05" +``` diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function.js new file mode 100644 index 00000000..43a16ef4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function.js @@ -0,0 +1,18 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'bind' : require('./function/bind'), + 'compose' : require('./function/compose'), + 'debounce' : require('./function/debounce'), + 'func' : require('./function/func'), + 'makeIterator_' : require('./function/makeIterator_'), + 'partial' : require('./function/partial'), + 'prop' : require('./function/prop'), + 'series' : require('./function/series'), + 'throttle' : require('./function/throttle'), + 'timeout' : require('./function/timeout') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js new file mode 100644 index 00000000..71bc1257 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js @@ -0,0 +1,23 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + * @param {Function} fn Function. + * @param {object} context Execution context. + * @param {rest} args Arguments (0...n arguments). + * @return {Function} Wrapped Function. + */ + function bind(fn, context, args){ + var argsArr = slice(arguments, 2); //curried args + return function(){ + return fn.apply(context, argsArr.concat(slice(arguments))); + }; + } + + module.exports = bind; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js new file mode 100644 index 00000000..8cd5c5f3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js @@ -0,0 +1,23 @@ + + + /** + * Returns a function that composes multiple functions, passing results to + * each other. + */ + function compose() { + var fns = arguments; + return function(arg){ + // only cares about the first argument since the chain can only + // deal with a single return value anyway. It should start from + // the last fn. + var n = fns.length; + while (n--) { + arg = fns[n].call(this, arg); + } + return arg; + }; + } + + module.exports = compose; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js new file mode 100644 index 00000000..a0ed07f5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js @@ -0,0 +1,29 @@ + + + /** + * Debounce callback execution + */ + function debounce(fn, threshold, isAsap){ + var timeout, result; + function debounced(){ + var args = arguments, context = this; + function delayed(){ + if (! isAsap) { + result = fn.apply(context, args); + } + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (isAsap) { + result = fn.apply(context, args); + } + timeout = setTimeout(delayed, threshold); + return result; + } + return debounced; + } + + module.exports = debounce; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js new file mode 100644 index 00000000..b81bf0a8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js @@ -0,0 +1,14 @@ + + + /** + * Returns a function that call a method on the passed object + */ + function func(name){ + return function(obj){ + return obj[name](); + }; + } + + module.exports = func; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js new file mode 100644 index 00000000..767610a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js @@ -0,0 +1,34 @@ +var prop = require('./prop'); +var deepMatches = require('../object/deepMatches'); + + /** + * Converts argument into a valid iterator. + * Used internally on most array/object/collection methods that receives a + * callback/iterator providing a shortcut syntax. + */ + function makeIterator(src, thisObj){ + switch(typeof src) { + case 'object': + // typeof null == "object" + return (src != null)? function(val, key, target){ + return deepMatches(val, src); + } : src; + case 'string': + case 'number': + return prop(src); + case 'function': + if (typeof thisObj === 'undefined') { + return src; + } else { + return function(val, i, arr){ + return src.call(thisObj, val, i, arr); + }; + } + default: + return src; + } + } + + module.exports = makeIterator; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js new file mode 100644 index 00000000..d63ff1be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js @@ -0,0 +1,19 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Creates a partially applied function. + */ + function partial(fn, var_args){ + var argsArr = slice(arguments, 1); //curried args + return function(){ + return fn.apply(this, argsArr.concat(slice(arguments))); + }; + } + + module.exports = partial; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js new file mode 100644 index 00000000..734acb7a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js @@ -0,0 +1,14 @@ + + + /** + * Returns a function that gets a property of the passed object + */ + function prop(name){ + return function(obj){ + return obj[name]; + }; + } + + module.exports = prop; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js new file mode 100644 index 00000000..25159c2c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js @@ -0,0 +1,22 @@ + + + /** + * Returns a function that will execute a list of functions in sequence + * passing the same arguments to each one. (useful for batch processing + * items during a forEach loop) + */ + function series(){ + var fns = arguments; + return function(){ + var i = 0, + n = fns.length; + while (i < n) { + fns[i].apply(this, arguments); + i += 1; + } + }; + } + + module.exports = series; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js new file mode 100644 index 00000000..619dc540 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js @@ -0,0 +1,32 @@ +var now = require('../time/now'); + + /** + */ + function throttle(fn, delay){ + var context, timeout, result, args, + cur, diff, prev = 0; + function delayed(){ + prev = now(); + timeout = null; + result = fn.apply(context, args); + } + function throttled(){ + context = this; + args = arguments; + cur = now(); + diff = delay - (cur - prev); + if (diff <= 0) { + clearTimeout(timeout); + prev = cur; + result = fn.apply(context, args); + } else if (! timeout) { + timeout = setTimeout(delayed, diff); + } + return result; + } + return throttled; + } + + module.exports = throttle; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js new file mode 100644 index 00000000..e0d21a66 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js @@ -0,0 +1,21 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Delays the call of a function within a given context. + */ + function timeout(fn, millis, context){ + + var args = slice(arguments, 3); + + return setTimeout(function() { + fn.apply(context, args); + }, millis); + } + + module.exports = timeout; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/index.js new file mode 100644 index 00000000..32a1c639 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/index.js @@ -0,0 +1,24 @@ +/**@license + * mout v0.6.0 | http://moutjs.com | MIT license + */ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'VERSION' : '0.6.0', + 'array' : require('./array'), + 'collection' : require('./collection'), + 'date' : require('./date'), + 'function' : require('./function'), + 'lang' : require('./lang'), + 'math' : require('./math'), + 'number' : require('./number'), + 'object' : require('./object'), + 'queryString' : require('./queryString'), + 'random' : require('./random'), + 'string' : require('./string'), + 'time' : require('./time') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang.js new file mode 100644 index 00000000..b9816218 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang.js @@ -0,0 +1,36 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'clone' : require('./lang/clone'), + 'createObject' : require('./lang/createObject'), + 'ctorApply' : require('./lang/ctorApply'), + 'deepClone' : require('./lang/deepClone'), + 'defaults' : require('./lang/defaults'), + 'inheritPrototype' : require('./lang/inheritPrototype'), + 'is' : require('./lang/is'), + 'isArguments' : require('./lang/isArguments'), + 'isArray' : require('./lang/isArray'), + 'isBoolean' : require('./lang/isBoolean'), + 'isDate' : require('./lang/isDate'), + 'isEmpty' : require('./lang/isEmpty'), + 'isFinite' : require('./lang/isFinite'), + 'isFunction' : require('./lang/isFunction'), + 'isInteger' : require('./lang/isInteger'), + 'isKind' : require('./lang/isKind'), + 'isNaN' : require('./lang/isNaN'), + 'isNull' : require('./lang/isNull'), + 'isNumber' : require('./lang/isNumber'), + 'isObject' : require('./lang/isObject'), + 'isPlainObject' : require('./lang/isPlainObject'), + 'isRegExp' : require('./lang/isRegExp'), + 'isString' : require('./lang/isString'), + 'isUndefined' : require('./lang/isUndefined'), + 'isnt' : require('./lang/isnt'), + 'kindOf' : require('./lang/kindOf'), + 'toArray' : require('./lang/toArray'), + 'toString' : require('./lang/toString') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js new file mode 100644 index 00000000..33c4e949 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js @@ -0,0 +1,49 @@ +var kindOf = require('./kindOf'); +var isPlainObject = require('./isPlainObject'); +var mixIn = require('../object/mixIn'); + + /** + * Clone native types. + */ + function clone(val){ + switch (kindOf(val)) { + case 'Object': + return cloneObject(val); + case 'Array': + return cloneArray(val); + case 'RegExp': + return cloneRegExp(val); + case 'Date': + return cloneDate(val); + default: + return val; + } + } + + function cloneObject(source) { + if (isPlainObject(source)) { + return mixIn({}, source); + } else { + return source; + } + } + + function cloneRegExp(r) { + var flags = ''; + flags += r.multiline ? 'm' : ''; + flags += r.global ? 'g' : ''; + flags += r.ignorecase ? 'i' : ''; + return new RegExp(r.source, flags); + } + + function cloneDate(date) { + return new Date(+date); + } + + function cloneArray(arr) { + return arr.slice(); + } + + module.exports = clone; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js new file mode 100644 index 00000000..bbc14c1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js @@ -0,0 +1,18 @@ +var mixIn = require('../object/mixIn'); + + /** + * Create Object using prototypal inheritance and setting custom properties. + * - Mix between Douglas Crockford Prototypal Inheritance and the EcmaScript 5 `Object.create()` method. + * @param {object} parent Parent Object. + * @param {object} [props] Object properties. + * @return {object} Created object. + */ + function createObject(parent, props){ + function F(){} + F.prototype = parent; + return mixIn(new F(), props); + + } + module.exports = createObject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js new file mode 100644 index 00000000..d68dc506 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js @@ -0,0 +1,17 @@ + + + function F(){} + + /** + * Do fn.apply on a constructor. + */ + function ctorApply(ctor, args) { + F.prototype = ctor.prototype; + var instance = new F(); + ctor.apply(instance, args); + return instance; + } + + module.exports = ctorApply; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js new file mode 100644 index 00000000..25fd95f1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js @@ -0,0 +1,48 @@ +var clone = require('./clone'); +var forOwn = require('../object/forOwn'); +var kindOf = require('./kindOf'); +var isPlainObject = require('./isPlainObject'); + + /** + * Recursively clone native types. + */ + function deepClone(val, instanceClone) { + switch ( kindOf(val) ) { + case 'Object': + return cloneObject(val, instanceClone); + case 'Array': + return cloneArray(val, instanceClone); + default: + return clone(val); + } + } + + function cloneObject(source, instanceClone) { + if (isPlainObject(source)) { + var out = {}; + forOwn(source, function(val, key) { + this[key] = deepClone(val, instanceClone); + }, out); + return out; + } else if (instanceClone) { + return instanceClone(source); + } else { + return source; + } + } + + function cloneArray(arr, instanceClone) { + var out = [], + i = -1, + n = arr.length, + val; + while (++i < n) { + out[i] = deepClone(arr[i], instanceClone); + } + return out; + } + + module.exports = deepClone; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js new file mode 100644 index 00000000..1111b2ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js @@ -0,0 +1,17 @@ +var toArray = require('./toArray'); +var find = require('../array/find'); + + /** + * Return first non void argument + */ + function defaults(var_args){ + return find(toArray(arguments), nonVoid); + } + + function nonVoid(val){ + return val != null; + } + + module.exports = defaults; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js new file mode 100644 index 00000000..cd8a379e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js @@ -0,0 +1,16 @@ +var createObject = require('./createObject'); + + /** + * Inherit prototype from another Object. + * - inspired by Nicholas Zackas Solution + * @param {object} child Child object + * @param {object} parent Parent Object + */ + function inheritPrototype(child, parent){ + var p = createObject(parent.prototype); + p.constructor = child; + child.prototype = p; + } + + module.exports = inheritPrototype; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js new file mode 100644 index 00000000..4a835739 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js @@ -0,0 +1,23 @@ + + + /** + * Check if both arguments are egal. + */ + function is(x, y){ + // implementation borrowed from harmony:egal spec + if (x === y) { + // 0 === -0, but they are not identical + return x !== 0 || 1 / x === 1 / y; + } + + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is a NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN("foo") => true + return x !== x && y !== y; + } + + module.exports = is; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js new file mode 100644 index 00000000..f7b08ba4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js @@ -0,0 +1,15 @@ +var isKind = require('./isKind'); + + /** + */ + var isArgs = isKind(arguments, 'Arguments')? + function(val){ + return isKind(val, 'Arguments'); + } : + function(val){ + // Arguments is an Object on IE7 + return !!(val && Object.prototype.hasOwnProperty.call(val, 'callee')); + }; + + module.exports = isArgs; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js new file mode 100644 index 00000000..262ee400 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + var isArray = Array.isArray || function (val) { + return isKind(val, 'Array'); + }; + module.exports = isArray; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js new file mode 100644 index 00000000..86557cb9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isBoolean(val) { + return isKind(val, 'Boolean'); + } + module.exports = isBoolean; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js new file mode 100644 index 00000000..4a5130f2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isDate(val) { + return isKind(val, 'Date'); + } + module.exports = isDate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js new file mode 100644 index 00000000..0e9f77da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js @@ -0,0 +1,24 @@ +var forOwn = require('../object/forOwn'); +var isArray = require('./isArray'); + + function isEmpty(val){ + if (val == null) { + // typeof null == 'object' so we check it first + return false; + } else if ( typeof val === 'string' || isArray(val) ) { + return !val.length; + } else if ( typeof val === 'object' || typeof val === 'function' ) { + var result = true; + forOwn(val, function(){ + result = false; + return false; // break loop + }); + return result; + } else { + return false; + } + } + + module.exports = isEmpty; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js new file mode 100644 index 00000000..6d4006f9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js @@ -0,0 +1,21 @@ +var isNumber = require('./isNumber'); + + var global = this; + + /** + * Check if value is finite + */ + function isFinite(val){ + var is = false; + if (typeof val === 'string' && val !== '') { + is = global.isFinite( parseFloat(val) ); + } else if (isNumber(val)){ + // need to use isNumber because of Number constructor + is = global.isFinite( val ); + } + return is; + } + + module.exports = isFinite; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js new file mode 100644 index 00000000..216879f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isFunction(val) { + return isKind(val, 'Function'); + } + module.exports = isFunction; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js new file mode 100644 index 00000000..29f95d96 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js @@ -0,0 +1,12 @@ +var isNumber = require('./isNumber'); + + /** + * Check if value is an integer + */ + function isInteger(val){ + return isNumber(val) && (val % 1 === 0); + } + + module.exports = isInteger; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js new file mode 100644 index 00000000..02301e04 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js @@ -0,0 +1,9 @@ +var kindOf = require('./kindOf'); + /** + * Check if value is from a specific "kind". + */ + function isKind(val, kind){ + return kindOf(val) === kind; + } + module.exports = isKind; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js new file mode 100644 index 00000000..f6efeb1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js @@ -0,0 +1,15 @@ +var isNumber = require('./isNumber'); + + /** + * Check if value is NaN for realz + */ + function isNaN(val){ + // based on the fact that NaN !== NaN + // need to check if it's a number to avoid conflicts with host objects + // also need to coerce ToNumber to avoid edge case `new Number(NaN)` + return !isNumber(val) || val != +val; + } + + module.exports = isNaN; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js new file mode 100644 index 00000000..6252f9ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js @@ -0,0 +1,9 @@ + + /** + */ + function isNull(val){ + return val === null; + } + module.exports = isNull; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js new file mode 100644 index 00000000..126c1cce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isNumber(val) { + return isKind(val, 'Number'); + } + module.exports = isNumber; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js new file mode 100644 index 00000000..7350c891 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isObject(val) { + return isKind(val, 'Object'); + } + module.exports = isObject; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js new file mode 100644 index 00000000..0d2d7b65 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js @@ -0,0 +1,14 @@ + + + /** + * Checks if the value is created by the `Object` constructor. + */ + function isPlainObject(value) { + return (!!value + && typeof value === 'object' + && value.constructor === Object); + } + + module.exports = isPlainObject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js new file mode 100644 index 00000000..fc5459a9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isRegExp(val) { + return isKind(val, 'RegExp'); + } + module.exports = isRegExp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js new file mode 100644 index 00000000..f8906584 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isString(val) { + return isKind(val, 'String'); + } + module.exports = isString; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js new file mode 100644 index 00000000..fb2261df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js @@ -0,0 +1,10 @@ + + var UNDEF; + + /** + */ + function isUndef(val){ + return val === UNDEF; + } + module.exports = isUndef; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js new file mode 100644 index 00000000..9dad58ce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js @@ -0,0 +1,12 @@ +var is = require('./is'); + + /** + * Check if both values are not identical/egal + */ + function isnt(x, y){ + return !is(x, y); + } + + module.exports = isnt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js new file mode 100644 index 00000000..663464d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js @@ -0,0 +1,20 @@ + + + var _rKind = /^\[object (.*)\]$/, + _toString = Object.prototype.toString, + UNDEF; + + /** + * Gets the "kind" of value. (e.g. "String", "Number", etc) + */ + function kindOf(val) { + if (val === null) { + return 'Null'; + } else if (val === UNDEF) { + return 'Undefined'; + } else { + return _rKind.exec( _toString.call(val) )[1]; + } + } + module.exports = kindOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js new file mode 100644 index 00000000..e39b8734 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js @@ -0,0 +1,31 @@ +var kindOf = require('./kindOf'); + + var _win = this; + + /** + * Convert array-like object into array + */ + function toArray(val){ + var ret = [], + kind = kindOf(val), + n; + + if (val != null) { + if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) { + //string, regexp, function have .length but user probably just want + //to wrap value into an array.. + ret[ret.length] = val; + } else { + //window returns true on isObject in IE7 and may have length + //property. `typeof NodeList` returns `function` on Safari so + //we can't use it (#58) + n = val.length; + while (n--) { + ret[n] = val[n]; + } + } + } + return ret; + } + module.exports = toArray; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js new file mode 100644 index 00000000..ae5c2b0f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js @@ -0,0 +1,13 @@ + + + /** + * Typecast a value to a String, using an empty string value for null or + * undefined. + */ + function toString(val){ + return val == null ? '' : val.toString(); + } + + module.exports = toString; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math.js new file mode 100644 index 00000000..c6ee889b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math.js @@ -0,0 +1,19 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'ceil' : require('./math/ceil'), + 'clamp' : require('./math/clamp'), + 'countSteps' : require('./math/countSteps'), + 'floor' : require('./math/floor'), + 'inRange' : require('./math/inRange'), + 'isNear' : require('./math/isNear'), + 'lerp' : require('./math/lerp'), + 'loop' : require('./math/loop'), + 'map' : require('./math/map'), + 'norm' : require('./math/norm'), + 'round' : require('./math/round') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js new file mode 100644 index 00000000..a279e158 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js @@ -0,0 +1,11 @@ + + /** + * Round value up with a custom radix. + */ + function ceil(val, step){ + step = Math.abs(step || 1); + return Math.ceil(val / step) * step; + } + + module.exports = ceil; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js new file mode 100644 index 00000000..e929a9a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js @@ -0,0 +1,9 @@ + + /** + * Clamps value inside range. + */ + function clamp(val, min, max){ + return val < min? min : (val > max? max : val); + } + module.exports = clamp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js new file mode 100644 index 00000000..60ac90c3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js @@ -0,0 +1,16 @@ + + /** + * Count number of full steps. + */ + function countSteps(val, step, overflow){ + val = Math.floor(val / step); + + if (overflow) { + return val % overflow; + } + + return val; + } + + module.exports = countSteps; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js new file mode 100644 index 00000000..9de50531 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js @@ -0,0 +1,10 @@ + + /** + * Floor value to full steps. + */ + function floor(val, step){ + step = Math.abs(step || 1); + return Math.floor(val / step) * step; + } + module.exports = floor; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js new file mode 100644 index 00000000..763218f8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js @@ -0,0 +1,11 @@ + + /** + * Checks if value is inside the range. + */ + function inRange(val, min, max, threshold){ + threshold = threshold || 0; + return (val + threshold >= min && val - threshold <= max); + } + + module.exports = inRange; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js new file mode 100644 index 00000000..45486b6d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js @@ -0,0 +1,9 @@ + + /** + * Check if value is close to target. + */ + function isNear(val, target, threshold){ + return (Math.abs(val - target) <= threshold); + } + module.exports = isNear; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js new file mode 100644 index 00000000..111e2717 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js @@ -0,0 +1,11 @@ + + /** + * Linear interpolation. + * IMPORTANT:will return `Infinity` if numbers overflow Number.MAX_VALUE + */ + function lerp(ratio, start, end){ + return start + (end - start) * ratio; + } + + module.exports = lerp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js new file mode 100644 index 00000000..35207c1a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js @@ -0,0 +1,10 @@ + + /** + * Loops value inside range. + */ + function loop(val, min, max){ + return val < min? max : (val > max? min : val); + } + + module.exports = loop; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js new file mode 100644 index 00000000..96c4b787 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js @@ -0,0 +1,11 @@ +var lerp = require('./lerp'); +var norm = require('./norm'); + /** + * Maps a number from one scale to another. + * @example map(3, 0, 4, -1, 1) -> 0.5 + */ + function map(val, min1, max1, min2, max2){ + return lerp( norm(val, min1, max1), min2, max2 ); + } + module.exports = map; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js new file mode 100644 index 00000000..54caf78a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js @@ -0,0 +1,9 @@ + + /** + * Gets normalized ratio of value inside range. + */ + function norm(val, min, max){ + return (val - min) / (max - min); + } + module.exports = norm; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js new file mode 100644 index 00000000..d108e6cd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js @@ -0,0 +1,12 @@ + + /** + * Round number to a specific radix + */ + function round(value, radix){ + radix = radix || 1; // default round 1 + return Math.round(value / radix) * radix; + } + + module.exports = round; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number.js new file mode 100644 index 00000000..0b6186cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number.js @@ -0,0 +1,21 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'MAX_INT' : require('./number/MAX_INT'), + 'MAX_UINT' : require('./number/MAX_UINT'), + 'MIN_INT' : require('./number/MIN_INT'), + 'abbreviate' : require('./number/abbreviate'), + 'currencyFormat' : require('./number/currencyFormat'), + 'enforcePrecision' : require('./number/enforcePrecision'), + 'pad' : require('./number/pad'), + 'rol' : require('./number/rol'), + 'ror' : require('./number/ror'), + 'sign' : require('./number/sign'), + 'toInt' : require('./number/toInt'), + 'toUInt' : require('./number/toUInt'), + 'toUInt31' : require('./number/toUInt31') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js new file mode 100644 index 00000000..1d6f0e48 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit signed integer value. (2^31 - 1) + */ + + module.exports = 2147483647; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js new file mode 100644 index 00000000..700da0f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit unsigned integet value (2^32 - 1) + */ + + module.exports = 4294967295; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js new file mode 100644 index 00000000..b34ab2ce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Minimum 32-bit signed integer value (-2^31). + */ + + module.exports = -2147483648; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js new file mode 100644 index 00000000..dd6716b9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js @@ -0,0 +1,35 @@ +var enforcePrecision = require('./enforcePrecision'); + + var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' + }; + + /** + * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) + */ + function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals != null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; + } + + module.exports = abbreviateNumber; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js new file mode 100644 index 00000000..1cf02497 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js @@ -0,0 +1,26 @@ + + + /** + * Converts number into currency format + */ + function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) { + nDecimalDigits = nDecimalDigits == null? 2 : nDecimalDigits; + decimalSeparator = decimalSeparator == null? '.' : decimalSeparator; + thousandsSeparator = thousandsSeparator == null? ',' : thousandsSeparator; + + //can't use enforce precision since it returns a number and we are + //doing a RegExp over the string + var fixed = val.toFixed(nDecimalDigits), + //separate begin [$1], middle [$2] and decimal digits [$4] + parts = new RegExp('^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{'+ nDecimalDigits +'}))?$').exec( fixed ); + + if(parts){ //val >= 1000 || val <= -1000 + return parts[1] + parts[2].replace(/\d{3}/g, thousandsSeparator + '$&') + (parts[4] ? decimalSeparator + parts[4] : ''); + }else{ + return fixed.replace('.', decimalSeparator); + } + } + + module.exports = currencyFormat; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js new file mode 100644 index 00000000..f73a92d7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js @@ -0,0 +1,13 @@ + + /** + * Enforce a specific amount of decimal digits and also fix floating + * point rounding issues. + * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> + * 0.61` + */ + function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); + } + module.exports = enforcePrecision; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js new file mode 100644 index 00000000..da752706 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js @@ -0,0 +1,12 @@ +var lpad = require('../string/lpad'); + + /** + * Add padding zeros if n.length < minLength. + */ + function pad(n, minLength, char){ + return lpad(''+ n, minLength, char || '0'); + } + + module.exports = pad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js new file mode 100644 index 00000000..ecd58da4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js @@ -0,0 +1,10 @@ + + /** + * Bitwise circular shift left + * http://en.wikipedia.org/wiki/Circular_shift + */ + function rol(val, shift){ + return (val << shift) | (val >> (32 - shift)); + } + module.exports = rol; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js new file mode 100644 index 00000000..2eda81da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js @@ -0,0 +1,10 @@ + + /** + * Bitwise circular shift right + * http://en.wikipedia.org/wiki/Circular_shift + */ + function ror(val, shift){ + return (val >> shift) | (val << (32 - shift)); + } + module.exports = ror; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js new file mode 100644 index 00000000..b854a4ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js @@ -0,0 +1,15 @@ + + + /** + * Get sign of the value. + */ + function sign(val) { + var num = Number(val); + if (num === 0) return num; // +0 and +0 === 0 + if (isNaN(num)) return num; // NaN + return num < 0? -1 : 1; + } + + module.exports = sign; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js new file mode 100644 index 00000000..bcefae0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js @@ -0,0 +1,15 @@ + + + /** + * "Convert" value into an 32-bit integer. + * Works like `Math.floor` if val > 0 and `Math.ceil` if val < 0. + * IMPORTANT: val will wrap at 2^31 and -2^31. + * Perf tests: http://jsperf.com/vs-vs-parseint-bitwise-operators/7 + */ + function toInt(val){ + return ~~val; + } + + module.exports = toInt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js new file mode 100644 index 00000000..5290b627 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js @@ -0,0 +1,13 @@ + + + /** + * "Convert" value into a 32-bit unsigned integer. + * IMPORTANT: Value will wrap at 2^32. + */ + function toUInt(val){ + return val >>> 0; + } + + module.exports = toUInt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js new file mode 100644 index 00000000..fcc5a97c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js @@ -0,0 +1,13 @@ +var MAX_INT = require('./MAX_INT'); + + /** + * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + * IMPORTANT: value wil wrap at 2^31, if negative will return 0. + */ + function toUInt31(val){ + return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val); + } + + module.exports = toUInt31; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object.js new file mode 100644 index 00000000..76c06424 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object.js @@ -0,0 +1,42 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'bindAll' : require('./object/bindAll'), + 'contains' : require('./object/contains'), + 'deepEquals' : require('./object/deepEquals'), + 'deepFillIn' : require('./object/deepFillIn'), + 'deepMatches' : require('./object/deepMatches'), + 'deepMixIn' : require('./object/deepMixIn'), + 'equals' : require('./object/equals'), + 'every' : require('./object/every'), + 'fillIn' : require('./object/fillIn'), + 'filter' : require('./object/filter'), + 'find' : require('./object/find'), + 'forIn' : require('./object/forIn'), + 'forOwn' : require('./object/forOwn'), + 'functions' : require('./object/functions'), + 'get' : require('./object/get'), + 'has' : require('./object/has'), + 'hasOwn' : require('./object/hasOwn'), + 'keys' : require('./object/keys'), + 'map' : require('./object/map'), + 'matches' : require('./object/matches'), + 'max' : require('./object/max'), + 'merge' : require('./object/merge'), + 'min' : require('./object/min'), + 'mixIn' : require('./object/mixIn'), + 'namespace' : require('./object/namespace'), + 'pick' : require('./object/pick'), + 'pluck' : require('./object/pluck'), + 'reduce' : require('./object/reduce'), + 'reject' : require('./object/reject'), + 'set' : require('./object/set'), + 'size' : require('./object/size'), + 'some' : require('./object/some'), + 'unset' : require('./object/unset'), + 'values' : require('./object/values') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js new file mode 100644 index 00000000..b2f27d08 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js @@ -0,0 +1,18 @@ +var functions = require('./functions'); +var bind = require('../function/bind'); +var forEach = require('../array/forEach'); + + /** + * Binds methods of the object to be run in it's own context. + */ + function bindAll(obj, rest_methodNames){ + var keys = arguments.length > 1? + Array.prototype.slice.call(arguments, 1) : functions(obj); + forEach(keys, function(key){ + obj[key] = bind(obj[key], obj); + }); + } + + module.exports = bindAll; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js new file mode 100644 index 00000000..8076e2c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js @@ -0,0 +1,13 @@ +var some = require('./some'); + + /** + * Check if object contains value + */ + function contains(obj, needle) { + return some(obj, function(val) { + return (val === needle); + }); + } + module.exports = contains; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js new file mode 100644 index 00000000..fcde9449 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js @@ -0,0 +1,27 @@ +var isObject = require('../lang/isObject'); +var equals = require('./equals'); + + function defaultCompare(a, b) { + return a === b; + } + + /** + * Recursively checks for same properties and values. + */ + function deepEquals(a, b, callback){ + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + function compare(a, b){ + return deepEquals(a, b, callback); + } + + return equals(a, b, compare); + } + + module.exports = deepEquals; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js new file mode 100644 index 00000000..d27db44d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js @@ -0,0 +1,32 @@ +var forOwn = require('./forOwn'); +var isPlainObject = require('../lang/isPlainObject'); + + /** + * Deeply copy missing properties in the target from the defaults. + */ + function deepFillIn(target, defaults){ + var i = 0, + n = arguments.length, + obj; + + while(++i < n) { + obj = arguments[i]; + if (obj) { + forOwn(obj, function(newValue, key) { + var curValue = target[key]; + if (curValue == null) { + target[key] = newValue; + } else if (isPlainObject(curValue) + && isPlainObject(newValue)) { + deepFillIn(curValue, newValue); + } + }); + } + } + + return target; + } + + module.exports = deepFillIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js new file mode 100644 index 00000000..3366c52d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js @@ -0,0 +1,55 @@ +var forOwn = require('./forOwn'); +var isArray = require('../lang/isArray'); + + function containsMatch(array, pattern) { + var i = -1, length = array.length; + while (++i < length) { + if (deepMatches(array[i], pattern)) { + return true; + } + } + + return false; + } + + function matchArray(target, pattern) { + var i = -1, patternLength = pattern.length; + while (++i < patternLength) { + if (!containsMatch(target, pattern[i])) { + return false; + } + } + + return true; + } + + function matchObject(target, pattern) { + var result = true; + forOwn(pattern, function(val, key) { + if (!deepMatches(target[key], val)) { + // Return false to break out of forOwn early + return (result = false); + } + }); + + return result; + } + + /** + * Recursively check if the objects match. + */ + function deepMatches(target, pattern){ + if (target && typeof target === 'object') { + if (isArray(target) && isArray(pattern)) { + return matchArray(target, pattern); + } else { + return matchObject(target, pattern); + } + } else { + return target === pattern; + } + } + + module.exports = deepMatches; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js new file mode 100644 index 00000000..a97e98d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js @@ -0,0 +1,34 @@ +var forOwn = require('./forOwn'); +var isPlainObject = require('../lang/isPlainObject'); + + /** + * Mixes objects into the target object, recursively mixing existing child + * objects. + */ + function deepMixIn(target, objects) { + var i = 0, + n = arguments.length, + obj; + + while(++i < n){ + obj = arguments[i]; + if (obj) { + forOwn(obj, copyProp, target); + } + } + + return target; + } + + function copyProp(val, key) { + var existing = this[key]; + if (isPlainObject(val) && isPlainObject(existing)) { + deepMixIn(existing, val); + } else { + this[key] = val; + } + } + + module.exports = deepMixIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js new file mode 100644 index 00000000..f50cbe4e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js @@ -0,0 +1,36 @@ +var hasOwn = require('./hasOwn'); +var every = require('./every'); +var isObject = require('../lang/isObject'); + + function defaultCompare(a, b) { + return a === b; + } + + // Makes a function to compare the object values from the specified compare + // operation callback. + function makeCompare(callback) { + return function(value, key) { + return hasOwn(this, key) && callback(value, this[key]); + }; + } + + function checkProperties(value, key) { + return hasOwn(this, key); + } + + /** + * Checks if two objects have the same keys and values. + */ + function equals(a, b, callback) { + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + return (every(a, makeCompare(callback), b) && + every(b, checkProperties, a)); + } + + module.exports = equals; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js new file mode 100644 index 00000000..01106e5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js @@ -0,0 +1,23 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object every + */ + function every(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + forOwn(obj, function(val, key) { + // we consider any falsy values as "false" on purpose so shorthand + // syntax can be used to check property existence + if (!callback(val, key, obj)) { + result = false; + return false; // break + } + }); + return result; + } + + module.exports = every; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js new file mode 100644 index 00000000..80dcdf07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js @@ -0,0 +1,20 @@ +var forEach = require('../array/forEach'); +var forOwn = require('./forOwn'); + + /** + * Copy missing properties in the obj from the defaults. + */ + function fillIn(obj, var_defaults){ + forEach(Array.prototype.slice.call(arguments, 1), function(base){ + forOwn(base, function(val, key){ + if (obj[key] == null) { + obj[key] = val; + } + }); + }); + return obj; + } + + module.exports = fillIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js new file mode 100644 index 00000000..3a83a92f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js @@ -0,0 +1,20 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Creates a new object with all the properties where the callback returns + * true. + */ + function filterValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + output[key] = value; + } + }); + + return output; + } + module.exports = filterValues; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js new file mode 100644 index 00000000..d39c0706 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js @@ -0,0 +1,21 @@ +var some = require('./some'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Returns first item that matches criteria + */ + function find(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result; + some(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + result = value; + return true; //break + } + }); + return result; + } + + module.exports = find; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js new file mode 100644 index 00000000..367f08ca --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js @@ -0,0 +1,62 @@ + + + var _hasDontEnumBug, + _dontEnums; + + function checkDontEnum(){ + _dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ]; + + _hasDontEnumBug = true; + + for (var key in {'toString': null}) { + _hasDontEnumBug = false; + } + } + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forIn(obj, fn, thisObj){ + var key, i = 0; + // no need to check if argument is a real object that way we can use + // it for arrays, functions, date, etc. + + //post-pone check till needed + if (_hasDontEnumBug == null) checkDontEnum(); + + for (key in obj) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + + if (_hasDontEnumBug) { + while (key = _dontEnums[i++]) { + // since we aren't using hasOwn check we need to make sure the + // property was overwritten + if (obj[key] !== Object.prototype[key]) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + } + } + } + + function exec(fn, obj, key, thisObj){ + return fn.call(thisObj, obj[key], key, obj); + } + + module.exports = forIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js new file mode 100644 index 00000000..5f2dfbfc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js @@ -0,0 +1,19 @@ +var hasOwn = require('./hasOwn'); +var forIn = require('./forIn'); + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forOwn(obj, fn, thisObj){ + forIn(obj, function(val, key){ + if (hasOwn(obj, key)) { + return fn.call(thisObj, obj[key], key, obj); + } + }); + } + + module.exports = forOwn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js new file mode 100644 index 00000000..f5717979 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js @@ -0,0 +1,18 @@ +var forIn = require('./forIn'); + + /** + * return a list of all enumerable properties that have function values + */ + function functions(obj){ + var keys = []; + forIn(obj, function(val, key){ + if (typeof val === 'function'){ + keys.push(key); + } + }); + return keys.sort(); + } + + module.exports = functions; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js new file mode 100644 index 00000000..6673561e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js @@ -0,0 +1,20 @@ + + + /** + * get "nested" object property + */ + function get(obj, prop){ + var parts = prop.split('.'), + last = parts.pop(); + + while (prop = parts.shift()) { + obj = obj[prop]; + if (typeof obj !== 'object') return; + } + + return obj[last]; + } + + module.exports = get; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js new file mode 100644 index 00000000..ca9f2289 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js @@ -0,0 +1,15 @@ +var get = require('./get'); + + var UNDEF; + + /** + * Check if object has nested property. + */ + function has(obj, prop){ + return get(obj, prop) !== UNDEF; + } + + module.exports = has; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js new file mode 100644 index 00000000..7e3c82ae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js @@ -0,0 +1,12 @@ + + + /** + * Safer Object.hasOwnProperty + */ + function hasOwn(obj, prop){ + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + module.exports = hasOwn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js new file mode 100644 index 00000000..dd2f4f55 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object keys + */ + var keys = Object.keys || function (obj) { + var keys = []; + forOwn(obj, function(val, key){ + keys.push(key); + }); + return keys; + }; + + module.exports = keys; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js new file mode 100644 index 00000000..dd449a78 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js @@ -0,0 +1,18 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Creates a new object where all the values are the result of calling + * `callback`. + */ + function mapValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(val, key, obj) { + output[key] = callback(val, key, obj); + }); + + return output; + } + module.exports = mapValues; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js new file mode 100644 index 00000000..6074faa2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js @@ -0,0 +1,20 @@ +var forOwn = require('./forOwn'); + + /** + * checks if a object contains all given properties/values + */ + function matches(target, props){ + // can't use "object/every" because of circular dependency + var result = true; + forOwn(props, function(val, key){ + if (target[key] !== val) { + // break loop at first difference + return (result = false); + } + }); + return result; + } + + module.exports = matches; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js new file mode 100644 index 00000000..3e8e92c7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js @@ -0,0 +1,12 @@ +var arrMax = require('../array/max'); +var values = require('./values'); + + /** + * Returns maximum value inside object. + */ + function max(obj, compareFn) { + return arrMax(values(obj), compareFn); + } + + module.exports = max; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js new file mode 100644 index 00000000..6961f608 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js @@ -0,0 +1,40 @@ +var hasOwn = require('./hasOwn'); +var deepClone = require('../lang/deepClone'); +var isObject = require('../lang/isObject'); + + /** + * Deep merge objects. + */ + function merge() { + var i = 1, + key, val, obj, target; + + // make sure we don't modify source element and it's properties + // objects are passed by reference + target = deepClone( arguments[0] ); + + while (obj = arguments[i++]) { + for (key in obj) { + if ( ! hasOwn(obj, key) ) { + continue; + } + + val = obj[key]; + + if ( isObject(val) && isObject(target[key]) ){ + // inception, deep merge objects + target[key] = merge(target[key], val); + } else { + // make sure arrays, regexp, date, objects are cloned + target[key] = deepClone(val); + } + + } + } + + return target; + } + + module.exports = merge; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js new file mode 100644 index 00000000..e1e66976 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js @@ -0,0 +1,12 @@ +var arrMin = require('../array/min'); +var values = require('./values'); + + /** + * Returns minimum value inside object. + */ + function min(obj, iterator) { + return arrMin(values(obj), iterator); + } + + module.exports = min; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js new file mode 100644 index 00000000..55ec8fd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js @@ -0,0 +1,28 @@ +var forOwn = require('./forOwn'); + + /** + * Combine properties from all the objects into first one. + * - This method affects target object in place, if you want to create a new Object pass an empty object as first param. + * @param {object} target Target Object + * @param {...object} objects Objects to be combined (0...n objects). + * @return {object} Target Object. + */ + function mixIn(target, objects){ + var i = 0, + n = arguments.length, + obj; + while(++i < n){ + obj = arguments[i]; + if (obj != null) { + forOwn(obj, copyProp, target); + } + } + return target; + } + + function copyProp(val, key){ + this[key] = val; + } + + module.exports = mixIn; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js new file mode 100644 index 00000000..c6e79f63 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js @@ -0,0 +1,19 @@ +var forEach = require('../array/forEach'); + + /** + * Create nested object if non-existent + */ + function namespace(obj, path){ + if (!path) return obj; + forEach(path.split('.'), function(key){ + if (!obj[key]) { + obj[key] = {}; + } + obj = obj[key]; + }); + return obj; + } + + module.exports = namespace; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js new file mode 100644 index 00000000..74e56f98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js @@ -0,0 +1,18 @@ + + + /** + * Return a copy of the object, filtered to only have values for the whitelisted keys. + */ + function pick(obj, var_keys){ + var keys = typeof arguments[1] !== 'string'? arguments[1] : Array.prototype.slice.call(arguments, 1), + out = {}, + i = 0, key; + while (key = keys[i++]) { + out[key] = obj[key]; + } + return out; + } + + module.exports = pick; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js new file mode 100644 index 00000000..e844df47 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js @@ -0,0 +1,13 @@ +var map = require('./map'); +var prop = require('../function/prop'); + + /** + * Extract a list of property values. + */ + function pluck(obj, propName){ + return map(obj, prop(propName)); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js new file mode 100644 index 00000000..6f19a3a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js @@ -0,0 +1,29 @@ +var forOwn = require('./forOwn'); +var size = require('./size'); + + /** + * Object reduce + */ + function reduce(obj, callback, memo, thisObj) { + var initial = arguments.length > 2; + + if (!size(obj) && !initial) { + throw new Error('reduce of empty object with no initial value'); + } + + forOwn(obj, function(value, key, list) { + if (!initial) { + memo = value; + initial = true; + } + else { + memo = callback.call(thisObj, memo, value, key, list); + } + }); + + return memo; + } + + module.exports = reduce; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js new file mode 100644 index 00000000..74643795 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object reject + */ + function reject(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + return filter(obj, function(value, index, obj) { + return !callback(value, index, obj); + }, thisObj); + } + + module.exports = reject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js new file mode 100644 index 00000000..9b3cdc48 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js @@ -0,0 +1,17 @@ +var namespace = require('./namespace'); + + /** + * set "nested" object property + */ + function set(obj, prop, val){ + var parts = (/^(.+)\.(.+)$/).exec(prop); + if (parts){ + namespace(obj, parts[1])[parts[2]] = val; + } else { + obj[prop] = val; + } + } + + module.exports = set; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js new file mode 100644 index 00000000..97885953 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object size + */ + function size(obj) { + var count = 0; + forOwn(obj, function(){ + count++; + }); + return count; + } + + module.exports = size; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js new file mode 100644 index 00000000..384c6f3c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js @@ -0,0 +1,21 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object some + */ + function some(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + forOwn(obj, function(val, key) { + if (callback(val, key, obj)) { + result = true; + return false; // break + } + }); + return result; + } + + module.exports = some; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js new file mode 100644 index 00000000..343bca0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js @@ -0,0 +1,23 @@ +var has = require('./has'); + + /** + * Unset object property. + */ + function unset(obj, prop){ + if (has(obj, prop)) { + var parts = prop.split('.'), + last = parts.pop(); + while (prop = parts.shift()) { + obj = obj[prop]; + } + return (delete obj[last]); + + } else { + // if property doesn't exist treat as deleted + return true; + } + } + + module.exports = unset; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js new file mode 100644 index 00000000..265a6938 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object values + */ + function values(obj) { + var vals = []; + forOwn(obj, function(val, key){ + vals.push(val); + }); + return vals; + } + + module.exports = values; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/package.json new file mode 100644 index 00000000..76eadf21 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/package.json @@ -0,0 +1,123 @@ +{ + "name": "mout", + "description": "Modular Utilities", + "version": "0.6.0", + "homepage": "http://moutjs.com/", + "contributors": [ + { + "name": "Adam Nowotny" + }, + { + "name": "André Cruz", + "email": "amdfcruz@gmail.com" + }, + { + "name": "Conrad Zimmerman", + "url": "http://www.conradz.com" + }, + { + "name": "Friedemann Altrock", + "email": "frodenius@gmail.com" + }, + { + "name": "Jarrod Overson", + "url": "http://jarrodoverson.com" + }, + { + "name": "Miller Medeiros", + "email": "contact@millermedeiros.com", + "url": "http://blog.millermedeiros.com" + }, + { + "name": "Zach Shipley" + } + ], + "keywords": [ + "utilities", + "functional", + "amd-utils", + "stdlib" + ], + "repository": { + "type": "git", + "url": "git://github.com/mout/mout.git" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], + "bugs": { + "url": "https://github.com/mout/mout/issues/" + }, + "main": "./index.js", + "scripts": { + "prepublish": "node build cjs .", + "pretest": "node build pkg", + "test": "node node_modules/istanbul/lib/cli test tests/runner.js --hook-run-in-context" + }, + "directories": { + "doc": "./doc" + }, + "devDependencies": { + "istanbul": "~0.1.27", + "jasmine-node": "~1.2.2", + "requirejs": "2.x", + "nodefy": "*", + "mdoc": "~0.3.2", + "handlebars": "~1.0.6", + "commander": "~1.0.5", + "rocambole": "~0.2.3" + }, + "testling": { + "preprocess": "node build testling", + "browsers": { + "ie": [ + 7, + 8, + 9, + 10 + ], + "firefox": [ + 17, + "nightly" + ], + "chrome": [ + 23, + "canary" + ], + "opera": [ + 12, + "next" + ], + "safari": [ + 5.1, + 6 + ], + "iphone": [ + 6 + ], + "ipad": [ + 6 + ] + }, + "scripts": [ + "tests/lib/jasmine/jasmine.js", + "tests/lib/jasmine/jasmine.async.js", + "tests/lib/jasmine/jasmine-tap.js", + "tests/lib/requirejs/require.js", + "tests/testling/src.js", + "tests/testling/specs.js", + "tests/runner.js" + ] + }, + "readme": "![mout](http://moutjs.com/logo.png \"Modular JavaScript Utilties\")\n\nhttp://moutjs.com/\n\n[![Build Status](https://travis-ci.org/mout/mout.png?branch=master)](https://travis-ci.org/mout/mout)\n\nAll code is library agnostic and consist mostly of helper methods that aren't\ndirectly related with the DOM, the purpose of this library isn't to replace\nDojo, jQuery, YUI, Mootools, etc, but to provide modular solutions for common\nproblems that aren't solved by most of them. Consider it as a crossbrowser\nJavaScript standard library.\n\n\n\n## Main goals ##\n\n - increase code reuse;\n - be clear (code should be clean/readable);\n - be easy to debug;\n - be easy to maintain;\n - follow best practices;\n - follow standards when possible;\n - **don't convert JavaScript into another language!**\n - be compatible with other frameworks;\n - be modular;\n - have unit tests for all modules;\n - work on multiple environments (IE7+, modern browsers, node.js);\n\n\n\n## What shouldn't be here ##\n\n - UI components;\n - CSS selector engine;\n - Event system - pub/sub;\n - Template engine;\n - Anything that isn't generic enough to be on a standard library;\n - Anything that could be a separate library and/or isn't a modular utility...\n\n\n\n## API Documentation ##\n\nOnline documentation can be found at http://moutjs.com/ or inside the\n`doc` folder.\n\n\n\n## FAQ / Wiki / IRC ##\n\nFor more info about project structure, design decisions, tips, how to\ncontribute, build system, etc, please check the [project\nwiki](https://github.com/mout/mout/wiki).\n\nWe also have an IRC channel [#moutjs on\nirc.freenode.net](http://webchat.freenode.net/?channels=moutjs)\n\n\n\n## License ##\n\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n\n", + "readmeFilename": "README.md", + "_id": "mout@0.6.0", + "dist": { + "shasum": "d2f7a6e5a796040bf7b6259a41b46705f49d271d" + }, + "_from": "mout@~0.6.0", + "_resolved": "https://registry.npmjs.org/mout/-/mout-0.6.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js new file mode 100644 index 00000000..22685a7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js @@ -0,0 +1,15 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'contains' : require('./queryString/contains'), + 'decode' : require('./queryString/decode'), + 'encode' : require('./queryString/encode'), + 'getParam' : require('./queryString/getParam'), + 'getQuery' : require('./queryString/getQuery'), + 'parse' : require('./queryString/parse'), + 'setParam' : require('./queryString/setParam') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js new file mode 100644 index 00000000..da678cf4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js @@ -0,0 +1,12 @@ +var getQuery = require('./getQuery'); + + /** + * Checks if query string contains parameter. + */ + function contains(url, paramName) { + var regex = new RegExp('(\\?|&)'+ paramName +'=', 'g'); //matches `?param=` or `¶m=` + return regex.test(getQuery(url)); + } + + module.exports = contains; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js new file mode 100644 index 00000000..7e689990 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js @@ -0,0 +1,21 @@ +var typecast = require('../string/typecast'); +var isString = require('../lang/isString'); + + /** + * Decode query string into an object of keys => vals. + */ + function decode(queryStr, shouldTypecast) { + var queryArr = (queryStr || '').replace('?', '').split('&'), + n = queryArr.length, + obj = {}, + item, val; + while (n--) { + item = queryArr[n].split('='); + val = shouldTypecast === false? item[1] : typecast(item[1]); + obj[item[0]] = isString(val)? decodeURIComponent(val) : val; + } + return obj; + } + + module.exports = decode; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js new file mode 100644 index 00000000..6d2b12f8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js @@ -0,0 +1,15 @@ +var forOwn = require('../object/forOwn'); + + /** + * Encode object into a query string. + */ + function encode(obj){ + var query = []; + forOwn(obj, function(val, key){ + query.push( key +'='+ encodeURIComponent(val) ); + }); + return (query.length)? '?'+ query.join('&') : ''; + } + + module.exports = encode; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js new file mode 100644 index 00000000..f149c3ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js @@ -0,0 +1,15 @@ +var typecast = require('../string/typecast'); +var getQuery = require('./getQuery'); + + /** + * Get query parameter value. + */ + function getParam(url, param, shouldTypecast){ + var regexp = new RegExp('(\\?|&)'+ param + '=([^&]*)'), //matches `?param=value` or `¶m=value`, value = $2 + result = regexp.exec( getQuery(url) ), + val = (result && result[2])? result[2] : null; + return shouldTypecast === false? val : typecast(val); + } + + module.exports = getParam; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js new file mode 100644 index 00000000..5194af2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js @@ -0,0 +1,13 @@ + + + /** + * Gets full query as string with all special chars decoded. + */ + function getQuery(url) { + url = url.replace(/#.*/, ''); //removes hash (to avoid getting hash query) + var queryString = /\?[a-zA-Z0-9\=\&\%\$\-\_\.\+\!\*\'\(\)\,]+/.exec(url); //valid chars according to: http://www.ietf.org/rfc/rfc1738.txt + return (queryString)? decodeURIComponent(queryString[0]) : ''; + } + + module.exports = getQuery; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js new file mode 100644 index 00000000..532906c0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js @@ -0,0 +1,13 @@ +var decode = require('./decode'); +var getQuery = require('./getQuery'); + + /** + * Get query string, parses and decodes it. + */ + function parse(url, shouldTypecast) { + return decode(getQuery(url), shouldTypecast); + } + + module.exports = parse; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js new file mode 100644 index 00000000..052a9ba6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js @@ -0,0 +1,28 @@ + + + /** + * Set query string parameter value + */ + function setParam(url, paramName, value){ + url = url || ''; + + var re = new RegExp('(\\?|&)'+ paramName +'=[^&]*' ); + var param = paramName +'='+ encodeURIComponent( value ); + + if ( re.test(url) ) { + return url.replace(re, '$1'+ param); + } else { + if (url.indexOf('?') === -1) { + url += '?'; + } + if (url.indexOf('=') !== -1) { + url += '&'; + } + return url + param; + } + + } + + module.exports = setParam; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random.js new file mode 100644 index 00000000..d9267f01 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random.js @@ -0,0 +1,16 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'choice' : require('./random/choice'), + 'guid' : require('./random/guid'), + 'rand' : require('./random/rand'), + 'randBit' : require('./random/randBit'), + 'randHex' : require('./random/randHex'), + 'randInt' : require('./random/randInt'), + 'randSign' : require('./random/randSign'), + 'random' : require('./random/random') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js new file mode 100644 index 00000000..51aa82a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js @@ -0,0 +1,15 @@ +var randInt = require('./randInt'); +var isArray = require('../lang/isArray'); + + /** + * Returns a random element from the supplied arguments + * or from the array (if single argument is an array). + */ + function choice(items) { + var target = (arguments.length === 1 && isArray(items))? items : arguments; + return target[ randInt(0, target.length - 1) ]; + } + + module.exports = choice; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js new file mode 100644 index 00000000..41f6eddc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js @@ -0,0 +1,24 @@ +var randHex = require('./randHex'); +var choice = require('./choice'); + + /** + * Returns pseudo-random guid (UUID v4) + * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random + * by default and sequences can be predicted in some cases. See the + * "random/random" documentation for more info about it and how to replace + * the default PRNG. + */ + function guid() { + return ( + randHex(8)+'-'+ + randHex(4)+'-'+ + // v4 UUID always contain "4" at this position to specify it was + // randomly generated + '4' + randHex(3) +'-'+ + // v4 UUID always contain chars [a,b,8,9] at this position + choice(8, 9, 'a', 'b') + randHex(3)+'-'+ + randHex(12) + ); + } + module.exports = guid; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js new file mode 100644 index 00000000..782dec88 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js @@ -0,0 +1,15 @@ +var random = require('./random'); +var MIN_INT = require('../number/MIN_INT'); +var MAX_INT = require('../number/MAX_INT'); + + /** + * Returns random number inside range + */ + function rand(min, max){ + min = min == null? MIN_INT : min; + max = max == null? MAX_INT : max; + return min + (max - min) * random(); + } + + module.exports = rand; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js new file mode 100644 index 00000000..bd20b4a0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js @@ -0,0 +1,11 @@ +var random = require('./random'); + + /** + * Returns random bit (0 or 1) + */ + function randomBit() { + return random() > 0.5? 1 : 0; + } + + module.exports = randomBit; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js new file mode 100644 index 00000000..d8d711c3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js @@ -0,0 +1,19 @@ +var choice = require('./choice'); + + var _chars = '0123456789abcdef'.split(''); + + /** + * Returns a random hexadecimal string + */ + function randHex(size){ + size = size && size > 0? size : 6; + var str = ''; + while (size--) { + str += choice(_chars); + } + return str; + } + + module.exports = randHex; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js new file mode 100644 index 00000000..e237d964 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js @@ -0,0 +1,18 @@ +var MIN_INT = require('../number/MIN_INT'); +var MAX_INT = require('../number/MAX_INT'); +var rand = require('./rand'); + + /** + * Gets random integer inside range or snap to min/max values. + */ + function randInt(min, max){ + min = min == null? MIN_INT : ~~min; + max = max == null? MAX_INT : ~~max; + // can't be max + 0.5 otherwise it will round up if `rand` + // returns `max` causing it to overflow range. + // -0.5 and + 0.49 are required to avoid bias caused by rounding + return Math.round( rand(min - 0.5, max + 0.499999999999) ); + } + + module.exports = randInt; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js new file mode 100644 index 00000000..5a9fed76 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js @@ -0,0 +1,11 @@ +var random = require('./random'); + + /** + * Returns random sign (-1 or 1) + */ + function randomSign() { + return random() > 0.5? 1 : -1; + } + + module.exports = randomSign; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js new file mode 100644 index 00000000..670a3cc4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js @@ -0,0 +1,18 @@ + + + /** + * Just a wrapper to Math.random. No methods inside mout/random should call + * Math.random() directly so we can inject the pseudo-random number + * generator if needed (ie. in case we need a seeded random or a better + * algorithm than the native one) + */ + function random(){ + return random.get(); + } + + // we expose the method so it can be swapped if needed + random.get = Math.random; + + module.exports = random; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js new file mode 100644 index 00000000..7bcc961b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js @@ -0,0 +1,46 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'append' : require('./array/append'), + 'collect' : require('./array/collect'), + 'combine' : require('./array/combine'), + 'compact' : require('./array/compact'), + 'contains' : require('./array/contains'), + 'difference' : require('./array/difference'), + 'every' : require('./array/every'), + 'filter' : require('./array/filter'), + 'find' : require('./array/find'), + 'findIndex' : require('./array/findIndex'), + 'flatten' : require('./array/flatten'), + 'forEach' : require('./array/forEach'), + 'indexOf' : require('./array/indexOf'), + 'insert' : require('./array/insert'), + 'intersection' : require('./array/intersection'), + 'invoke' : require('./array/invoke'), + 'join' : require('./array/join'), + 'lastIndexOf' : require('./array/lastIndexOf'), + 'map' : require('./array/map'), + 'max' : require('./array/max'), + 'min' : require('./array/min'), + 'pick' : require('./array/pick'), + 'pluck' : require('./array/pluck'), + 'range' : require('./array/range'), + 'reduce' : require('./array/reduce'), + 'reduceRight' : require('./array/reduceRight'), + 'reject' : require('./array/reject'), + 'remove' : require('./array/remove'), + 'removeAll' : require('./array/removeAll'), + 'shuffle' : require('./array/shuffle'), + 'some' : require('./array/some'), + 'sort' : require('./array/sort'), + 'split' : require('./array/split'), + 'toLookup' : require('./array/toLookup'), + 'union' : require('./array/union'), + 'unique' : require('./array/unique'), + 'xor' : require('./array/xor'), + 'zip' : require('./array/zip') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js new file mode 100644 index 00000000..549d8754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js @@ -0,0 +1,21 @@ +define(function () { + + /** + * Appends an array to the end of another. + * The first array will be modified. + */ + function append(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var pad = arr1.length, + i = -1, + len = arr2.length; + while (++i < len) { + arr1[pad + i] = arr2[i]; + } + return arr1; + } + return append; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js new file mode 100644 index 00000000..8f60cda2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js @@ -0,0 +1,26 @@ +define(['./append', '../function/makeIterator_'], function (append, makeIterator) { + + /** + * Maps the items in the array and concatenates the result arrays. + */ + function collect(arr, callback, thisObj){ + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + var value = callback(arr[i], i, arr); + if (value != null) { + append(results, value); + } + } + + return results; + } + + return collect; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js new file mode 100644 index 00000000..22efb860 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js @@ -0,0 +1,22 @@ +define(['./indexOf'], function (indexOf) { + + /** + * Combines an array with all the items of another. + * Does not allow duplicates and is case and type sensitive. + */ + function combine(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var i = -1, len = arr2.length; + while (++i < len) { + if (indexOf(arr1, arr2[i]) === -1) { + arr1.push(arr2[i]); + } + } + + return arr1; + } + return combine; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js new file mode 100644 index 00000000..02a81098 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js @@ -0,0 +1,13 @@ +define(['./filter'], function (filter) { + + /** + * Remove all null/undefined items from array. + */ + function compact(arr) { + return filter(arr, function(val){ + return (val != null); + }); + } + + return compact; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js new file mode 100644 index 00000000..fca4f7cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js @@ -0,0 +1,10 @@ +define(['./indexOf'], function (indexOf) { + + /** + * If array contains values. + */ + function contains(arr, val) { + return indexOf(arr, val) !== -1; + } + return contains; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js new file mode 100644 index 00000000..819bda3e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js @@ -0,0 +1,19 @@ +define(['./unique', './filter', './some', './contains'], function (unique, filter, some, contains) { + + + /** + * Return a new Array with elements that aren't present in the other Arrays. + */ + function difference(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return !some(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + return difference; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js new file mode 100644 index 00000000..78ba46d3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js @@ -0,0 +1,27 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Array every + */ + function every(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (!callback(arr[i], i, arr) ) { + result = false; + break; + } + } + + return result; + } + + return every; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js new file mode 100644 index 00000000..52cf685a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js @@ -0,0 +1,26 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Array filter + */ + function filter(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + return filter; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js new file mode 100644 index 00000000..3957dcd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js @@ -0,0 +1,13 @@ +define(['./findIndex'], function (findIndex) { + + /** + * Returns first item that matches criteria + */ + function find(arr, iterator, thisObj){ + var idx = findIndex(arr, iterator, thisObj); + return idx >= 0? arr[idx] : void(0); + } + + return find; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js new file mode 100644 index 00000000..59dfeeb9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js @@ -0,0 +1,23 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Returns the index of the first item that matches criteria + */ + function findIndex(arr, iterator, thisObj){ + iterator = makeIterator(iterator, thisObj); + if (arr == null) { + return -1; + } + + var i = -1, len = arr.length; + while (++i < len) { + if (iterator(arr[i], i, arr)) { + return i; + } + } + + return -1; + } + + return findIndex; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js new file mode 100644 index 00000000..42e87f43 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js @@ -0,0 +1,42 @@ +define(['../lang/isArray', './append'], function (isArray, append) { + + /* + * Helper function to flatten to a destination array. + * Used to remove the need to create intermediate arrays while flattening. + */ + function flattenTo(arr, result, level) { + if (arr == null) { + return result; + } else if (level === 0) { + append(result, arr); + return result; + } + + var value, + i = -1, + len = arr.length; + while (++i < len) { + value = arr[i]; + if (isArray(value)) { + flattenTo(value, result, level - 1); + } else { + result.push(value); + } + } + return result; + } + + /** + * Recursively flattens an array. + * A new array containing all the elements is returned. + * If `shallow` is true, it will only flatten one level. + */ + function flatten(arr, level) { + level = level == null? -1 : level; + return flattenTo(arr, [], level); + } + + return flatten; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js new file mode 100644 index 00000000..0e045868 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Array forEach + */ + function forEach(arr, callback, thisObj) { + if (arr == null) { + return; + } + var i = -1, + len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback.call(thisObj, arr[i], i, arr) === false ) { + break; + } + } + } + + return forEach; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js new file mode 100644 index 00000000..0e75f99b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Array.indexOf + */ + function indexOf(arr, item, fromIndex) { + fromIndex = fromIndex || 0; + if (arr == null) { + return -1; + } + + var len = arr.length, + i = fromIndex < 0 ? len + fromIndex : fromIndex; + while (i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[i] === item) { + return i; + } + + i++; + } + + return -1; + } + + return indexOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js new file mode 100644 index 00000000..d8d831f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js @@ -0,0 +1,14 @@ +define(['./difference', '../lang/toArray'], function (difference, toArray) { + + /** + * Insert item into array if not already present. + */ + function insert(arr, rest_items) { + var diff = difference(toArray(arguments).slice(1), arr); + if (diff.length) { + Array.prototype.push.apply(arr, diff); + } + return arr.length; + } + return insert; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js new file mode 100644 index 00000000..64e6ee97 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js @@ -0,0 +1,20 @@ +define(['./unique', './filter', './every', './contains'], function (unique, filter, every, contains) { + + + /** + * Return a new Array with elements common to all Arrays. + * - based on underscore.js implementation + */ + function intersection(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return every(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + return intersection; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js new file mode 100644 index 00000000..a2e78b39 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js @@ -0,0 +1,23 @@ +define(['./forEach'], function (forEach) { + + /** + * Call `methodName` on each item of the array passing custom arguments if + * needed. + */ + function invoke(arr, methodName, var_args){ + if (arr == null) { + return arr; + } + + var args = Array.prototype.slice.call(arguments, 2); + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + value[methodName].apply(value, args); + } + + return arr; + } + + return invoke; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js new file mode 100644 index 00000000..2c618d29 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js @@ -0,0 +1,17 @@ +define(['./filter'], function(filter) { + + function isValidString(val) { + return (val != null && val !== ''); + } + + /** + * Joins strings with the specified separator inserted between each value. + * Null values and empty strings will be excluded. + */ + function join(items, separator) { + separator = separator || ''; + return filter(items, isValidString).join(separator); + } + + return join; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js new file mode 100644 index 00000000..931235f4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Array lastIndexOf + */ + function lastIndexOf(arr, item, fromIndex) { + if (arr == null) { + return -1; + } + + var len = arr.length; + fromIndex = (fromIndex == null || fromIndex >= len)? len - 1 : fromIndex; + fromIndex = (fromIndex < 0)? len + fromIndex : fromIndex; + + while (fromIndex >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[fromIndex] === item) { + return fromIndex; + } + fromIndex--; + } + + return -1; + } + + return lastIndexOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js new file mode 100644 index 00000000..1580b481 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js @@ -0,0 +1,22 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Array map + */ + function map(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null){ + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + results[i] = callback(arr[i], i, arr); + } + + return results; + } + + return map; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js new file mode 100644 index 00000000..a7326c89 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js @@ -0,0 +1,34 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Return maximum value inside array + */ + function max(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return Infinity; + } else if (arr.length && !iterator) { + return Math.max.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = -Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp > compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + return max; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js new file mode 100644 index 00000000..41644480 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js @@ -0,0 +1,34 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Return minimum value inside array + */ + function min(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return -Infinity; + } else if (arr.length && !iterator) { + return Math.min.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp < compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + return min; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js new file mode 100644 index 00000000..97d7f595 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js @@ -0,0 +1,14 @@ +define(['../random/randInt'], function (randInt) { + + /** + * Remove a random item from the Array and return it + */ + function pick(arr){ + if (arr == null || !arr.length) return; + var idx = randInt(0, arr.length - 1); + return arr.splice(idx, 1)[0]; + } + + return pick; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js new file mode 100644 index 00000000..c908856e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js @@ -0,0 +1,12 @@ +define(['./map'], function (map) { + + /** + * Extract a list of property values. + */ + function pluck(arr, propName){ + return map(arr, propName); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js new file mode 100644 index 00000000..148ebf96 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js @@ -0,0 +1,27 @@ +define(['../math/countSteps'], function (countSteps) { + + /** + * Returns an Array of numbers inside range. + */ + function range(start, stop, step) { + if (stop == null) { + stop = start; + start = 0; + } + step = step || 1; + + var result = [], + nSteps = countSteps(stop - start, step), + i = start; + + while (i <= stop) { + result.push(i); + i += step; + } + + return result; + } + + return range; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js new file mode 100644 index 00000000..88aacfd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js @@ -0,0 +1,33 @@ +define(['./forEach'], function (forEach) { + + /** + * Array reduce + */ + function reduce(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2, + result = initVal; + + if (arr == null || !arr.length) { + if (!hasInit) { + throw new Error('reduce of empty array with no initial value'); + } else { + return initVal; + } + } + + var i = -1, len = arr.length; + while (++i < len) { + if (!hasInit) { + result = arr[i]; + hasInit = true; + } else { + result = fn(result, arr[i], i, arr); + } + } + + return result; + } + + return reduce; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js new file mode 100644 index 00000000..ddae0e7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js @@ -0,0 +1,34 @@ +define(function () { + + /** + * Array reduceRight + */ + function reduceRight(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2; + + if (arr == null || !arr.length) { + if (hasInit) { + return initVal; + } else { + throw new Error('reduce of empty array with no initial value'); + } + } + + var i = arr.length, result = initVal, value; + while (--i >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + value = arr[i]; + if (!hasInit) { + result = value; + hasInit = true; + } else { + result = fn(result, value, i, arr); + } + } + return result; + } + + return reduceRight; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js new file mode 100644 index 00000000..db105dde --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js @@ -0,0 +1,25 @@ +define(['./forEach', '../function/makeIterator_'], function(forEach, makeIterator) { + + /** + * Array reject + */ + function reject(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (!callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + return reject; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js new file mode 100644 index 00000000..dec9134d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js @@ -0,0 +1,13 @@ +define(['./indexOf'], function(indexOf){ + + /** + * Remove a single item from the array. + * (it won't remove duplicates, just a single item) + */ + function remove(arr, item){ + var idx = indexOf(arr, item); + if (idx !== -1) arr.splice(idx, 1); + } + + return remove; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js new file mode 100644 index 00000000..e81022b8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js @@ -0,0 +1,15 @@ +define(['./indexOf'], function(indexOf){ + + /** + * Remove all instances of an item from array. + */ + function removeAll(arr, item){ + var idx = indexOf(arr, item); + while (idx !== -1) { + arr.splice(idx, 1); + idx = indexOf(arr, item, idx); + } + } + + return removeAll; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js new file mode 100644 index 00000000..f5a60972 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js @@ -0,0 +1,28 @@ +define(['../random/randInt', './forEach'], function (randInt, forEach) { + + /** + * Shuffle array items. + */ + function shuffle(arr) { + var results = [], + rnd; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + if (!i) { + results[0] = arr[0]; + } else { + rnd = randInt(0, i); + results[i] = results[rnd]; + results[rnd] = arr[i]; + } + } + + return results; + } + + return shuffle; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js new file mode 100644 index 00000000..e46a9781 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js @@ -0,0 +1,27 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Array some + */ + function some(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback(arr[i], i, arr) ) { + result = true; + break; + } + } + + return result; + } + + return some; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js new file mode 100644 index 00000000..4c194042 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js @@ -0,0 +1,55 @@ +define(function () { + + /** + * Merge sort (http://en.wikipedia.org/wiki/Merge_sort) + */ + function mergeSort(arr, compareFn) { + if (arr == null) { + return []; + } else if (arr.length < 2) { + return arr; + } + + if (compareFn == null) { + compareFn = defaultCompare; + } + + var mid, left, right; + + mid = ~~(arr.length / 2); + left = mergeSort( arr.slice(0, mid), compareFn ); + right = mergeSort( arr.slice(mid, arr.length), compareFn ); + + return merge(left, right, compareFn); + } + + function defaultCompare(a, b) { + return a < b ? -1 : (a > b? 1 : 0); + } + + function merge(left, right, compareFn) { + var result = []; + + while (left.length && right.length) { + if (compareFn(left[0], right[0]) <= 0) { + // if 0 it should preserve same order (stable) + result.push(left.shift()); + } else { + result.push(right.shift()); + } + } + + if (left.length) { + result.push.apply(result, left); + } + + if (right.length) { + result.push.apply(result, right); + } + + return result; + } + + return mergeSort; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js new file mode 100644 index 00000000..a17275eb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js @@ -0,0 +1,35 @@ +define(function() { + + /** + * Split array into a fixed number of segments. + */ + function split(array, segments) { + segments = segments || 2; + var results = []; + if (array == null) { + return results; + } + + var minLength = Math.floor(array.length / segments), + remainder = array.length % segments, + i = 0, + len = array.length, + segmentIndex = 0, + segmentLength; + + while (i < len) { + segmentLength = minLength; + if (segmentIndex < remainder) { + segmentLength++; + } + + results.push(array.slice(i, i + segmentLength)); + + segmentIndex++; + i += segmentLength; + } + + return results; + } + return split; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js new file mode 100644 index 00000000..aac8fd1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js @@ -0,0 +1,28 @@ +define(['../lang/isFunction'], function (isFunction) { + + /** + * Creates an object that holds a lookup for the objects in the array. + */ + function toLookup(arr, key) { + var result = {}; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length, value; + if (isFunction(key)) { + while (++i < len) { + value = arr[i]; + result[key(value)] = value; + } + } else { + while (++i < len) { + value = arr[i]; + result[value[key]] = value; + } + } + + return result; + } + return toLookup; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js new file mode 100644 index 00000000..5f9922e5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js @@ -0,0 +1,18 @@ +define(['./unique', './append'], function (unique, append) { + + /** + * Concat multiple arrays and remove duplicates + */ + function union(arrs) { + var results = []; + var i = -1, len = arguments.length; + while (++i < len) { + append(results, arguments[i]); + } + + return unique(results); + } + + return union; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js new file mode 100644 index 00000000..c4bd23b4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js @@ -0,0 +1,16 @@ +define(['./indexOf', './filter'], function(indexOf, filter){ + + /** + * @return {array} Array of unique items + */ + function unique(arr){ + return filter(arr, isUnique); + } + + function isUnique(item, i, arr){ + return indexOf(arr, item, i+1) === -1; + } + + return unique; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js new file mode 100644 index 00000000..7df89d9c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js @@ -0,0 +1,24 @@ +define(['./unique', './filter', './contains'], function (unique, filter, contains) { + + + /** + * Exclusive OR. Returns items that are present in a single array. + * - like ptyhon's `symmetric_difference` + */ + function xor(arr1, arr2) { + arr1 = unique(arr1); + arr2 = unique(arr2); + + var a1 = filter(arr1, function(item){ + return !contains(arr2, item); + }), + a2 = filter(arr2, function(item){ + return !contains(arr1, item); + }); + + return a1.concat(a2); + } + + return xor; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js new file mode 100644 index 00000000..374cd282 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js @@ -0,0 +1,27 @@ +define(['./max', './pluck', './map'], function (max, pluck, map) { + + function getLength(arr) { + return arr == null ? 0 : arr.length; + } + + /** + * Merges together the values of each of the arrays with the values at the + * corresponding position. + */ + function zip(arr){ + var len = arr ? max(map(arguments, getLength)) : 0, + results = [], + i = -1, + item; + while (++i < len) { + results.push(map(arguments, function(item) { + return item == null ? undefined : item[i]; + })); + } + + return results; + } + + return zip; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js new file mode 100644 index 00000000..386e6da9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js @@ -0,0 +1,22 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'contains' : require('./collection/contains'), + 'every' : require('./collection/every'), + 'filter' : require('./collection/filter'), + 'find' : require('./collection/find'), + 'forEach' : require('./collection/forEach'), + 'make_' : require('./collection/make_'), + 'map' : require('./collection/map'), + 'max' : require('./collection/max'), + 'min' : require('./collection/min'), + 'pluck' : require('./collection/pluck'), + 'reduce' : require('./collection/reduce'), + 'reject' : require('./collection/reject'), + 'size' : require('./collection/size'), + 'some' : require('./collection/some') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js new file mode 100644 index 00000000..192167e8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/contains', '../object/contains'], function (make, arrContains, objContains) { + + /** + */ + return make(arrContains, objContains); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js new file mode 100644 index 00000000..6317f503 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/every', '../object/every'], function (make, arrEvery, objEvery) { + + /** + */ + return make(arrEvery, objEvery); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js new file mode 100644 index 00000000..4e7fadc8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js @@ -0,0 +1,22 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * filter collection values, returns array. + */ + function filter(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + var results = []; + if (!list) { + return results; + } + forEach(list, function(value, index, list) { + if (iterator(value, index, list)) { + results[results.length] = value; + } + }); + return results; + } + + return filter; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js new file mode 100644 index 00000000..681f9414 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/find', '../object/find'], function(make, arrFind, objFind) { + + /** + * Find value that returns true on iterator check. + */ + return make(arrFind, objFind); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js new file mode 100644 index 00000000..3b39d3ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/forEach', '../object/forOwn'], function (make, arrForEach, objForEach) { + + /** + */ + return make(arrForEach, objForEach); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js new file mode 100644 index 00000000..312e0564 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js @@ -0,0 +1,19 @@ +define(function(){ + + /** + * internal method used to create other collection modules. + */ + function makeCollectionMethod(arrMethod, objMethod, defaultReturn) { + return function(){ + var args = Array.prototype.slice.call(arguments); + if (args[0] == null) { + return defaultReturn; + } + // array-like is treated as array + return (typeof args[0].length === 'number')? arrMethod.apply(null, args) : objMethod.apply(null, args); + }; + } + + return makeCollectionMethod; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js new file mode 100644 index 00000000..96e24987 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js @@ -0,0 +1,20 @@ +define(['../lang/isObject', '../object/values', '../array/map', '../function/makeIterator_'], function (isObject, values, arrMap, makeIterator) { + + /** + * Map collection values, returns Array. + */ + function map(list, callback, thisObj) { + callback = makeIterator(callback, thisObj); + // list.length to check array-like object, if not array-like + // we simply map all the object values + if( isObject(list) && list.length == null ){ + list = values(list); + } + return arrMap(list, function (val, key, list) { + return callback(val, key, list); + }); + } + + return map; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js new file mode 100644 index 00000000..de9a6da5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/max', '../object/max'], function (make, arrMax, objMax) { + + /** + * Get maximum value inside collection + */ + return make(arrMax, objMax); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js new file mode 100644 index 00000000..f0c239a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/min', '../object/min'], function (make, arrMin, objMin) { + + /** + * Get minimum value inside collection. + */ + return make(arrMin, objMin); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js new file mode 100644 index 00000000..ef784a7a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js @@ -0,0 +1,14 @@ +define(['./map'], function (map) { + + /** + * Extract a list of property values. + */ + function pluck(list, key) { + return map(list, function(value) { + return value[key]; + }); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js new file mode 100644 index 00000000..bd05d43d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/reduce', '../object/reduce'], function (make, arrReduce, objReduce) { + + /** + */ + return make(arrReduce, objReduce); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js new file mode 100644 index 00000000..581adfdc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js @@ -0,0 +1,15 @@ +define(['./filter', '../function/makeIterator_'], function (filter, makeIterator) { + + /** + * Inverse or collection/filter + */ + function reject(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + return filter(list, function(value, index, list) { + return !iterator(value, index, list); + }, thisObj); + } + + return reject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js new file mode 100644 index 00000000..4e5ab419 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js @@ -0,0 +1,18 @@ +define(['../lang/isArray', '../object/size'], function (isArray, objSize) { + + /** + * Get collection size + */ + function size(list) { + if (!list) { + return 0; + } + if (isArray(list)) { + return list.length; + } + return objSize(list); + } + + return size; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js new file mode 100644 index 00000000..c0aebee2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/some', '../object/some'], function (make, arrSome, objSome) { + + /** + */ + return make(arrSome, objSome); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js new file mode 100644 index 00000000..4d449150 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js @@ -0,0 +1,21 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'dayOfTheYear' : require('./date/dayOfTheYear'), + 'diff' : require('./date/diff'), + 'i18n_' : require('./date/i18n_'), + 'isLeapYear' : require('./date/isLeapYear'), + 'isSame' : require('./date/isSame'), + 'parseIso' : require('./date/parseIso'), + 'startOf' : require('./date/startOf'), + 'strftime' : require('./date/strftime'), + 'timezoneAbbr' : require('./date/timezoneAbbr'), + 'timezoneOffset' : require('./date/timezoneOffset'), + 'totalDaysInMonth' : require('./date/totalDaysInMonth'), + 'totalDaysInYear' : require('./date/totalDaysInYear'), + 'weekOfTheYear' : require('./date/weekOfTheYear') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js new file mode 100644 index 00000000..dc77ae1b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js @@ -0,0 +1,13 @@ +define(['../lang/isDate'], function (isDate) { + + /** + * return the day of the year (1..366) + */ + function dayOfTheYear(date){ + return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - + Date.UTC(date.getFullYear(), 0, 1)) / 86400000 + 1; + } + + return dayOfTheYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js new file mode 100644 index 00000000..667165fe --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js @@ -0,0 +1,128 @@ +define(['./totalDaysInMonth', './totalDaysInYear', '../time/convert'], function(totalDaysInMonth, totalDaysInYear, convert){ + + /** + * calculate the difference between dates (range) + */ + function diff(start, end, unitName){ + // sort the dates to make it easier to process (specially year/month) + if (start > end) { + var swap = start; + start = end; + end = swap; + } + + var output; + + if (unitName === 'month') { + output = getMonthsDiff(start, end); + } else if (unitName === 'year'){ + output = getYearsDiff(start, end); + } else if (unitName != null) { + if (unitName === 'day') { + // ignore timezone difference because of daylight savings time + start = toUtc(start); + end = toUtc(end); + } + output = convert(end - start, 'ms', unitName); + } else { + output = end - start; + } + + return output; + } + + + function toUtc(d){ + // we ignore timezone differences on purpose because of daylight + // savings time, otherwise it would return fractional days/weeks even + // if a full day elapsed. eg: + // Wed Feb 12 2014 00:00:00 GMT-0200 (BRST) + // Sun Feb 16 2014 00:00:00 GMT-0300 (BRT) + // diff should be 4 days and not 4.041666666666667 + return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), + d.getHours(), d.getMinutes(), d.getSeconds(), + d.getMilliseconds()); + } + + + function getMonthsDiff(start, end){ + return getElapsedMonths(start, end) + + getElapsedYears(start, end) * 12 + + getFractionalMonth(start, end); + } + + + function getYearsDiff(start, end){ + var elapsedYears = getElapsedYears(start, end); + return elapsedYears + getFractionalYear(start, end, elapsedYears); + } + + + function getElapsedMonths(start, end){ + var monthDiff = end.getMonth() - start.getMonth(); + if (monthDiff < 0) { + monthDiff += 12; + } + // less than a full month + if (start.getDate() > end.getDate()) { + monthDiff -= 1; + } + return monthDiff; + } + + + function getElapsedYears(start, end){ + var yearDiff = end.getFullYear() - start.getFullYear(); + // less than a full year + if (start.getMonth() > end.getMonth()) { + yearDiff -= 1; + } + return yearDiff; + } + + + function getFractionalMonth(start, end){ + var fractionalDiff = 0; + var startDay = start.getDate(); + var endDay = end.getDate(); + + if (startDay !== endDay) { + var startTotalDays = totalDaysInMonth(start); + var endTotalDays = totalDaysInMonth(end); + var totalDays; + var daysElapsed; + + if (startDay > endDay) { + // eg: Jan 29 - Feb 27 (29 days elapsed but not a full month) + var baseDay = startTotalDays - startDay; + daysElapsed = endDay + baseDay; + // total days should be relative to 1st day of next month if + // startDay > endTotalDays + totalDays = (startDay > endTotalDays)? + endTotalDays + baseDay + 1 : startDay + baseDay; + } else { + // fractional is only based on endMonth eg: Jan 12 - Feb 18 + // (6 fractional days, 28 days until next full month) + daysElapsed = endDay - startDay; + totalDays = endTotalDays; + } + + fractionalDiff = daysElapsed / totalDays; + } + + return fractionalDiff; + } + + + function getFractionalYear(start, end, elapsedYears){ + var base = elapsedYears? + new Date(end.getFullYear(), start.getMonth(), start.getDate()) : + start; + var elapsedDays = diff(base, end, 'day'); + return elapsedDays / totalDaysInYear(end); + } + + + return diff; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js new file mode 100644 index 00000000..5e640c22 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js @@ -0,0 +1,61 @@ +define(function(){ + // en-US (English, United States) + return { + "am" : "AM", + "pm" : "PM", + + "x": "%m/%d/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %I:%M:%S %p %Z", + + "months" : [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + + "months_abbr" : [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + + "days_abbr" : [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ] + }; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js new file mode 100644 index 00000000..47256dd2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js @@ -0,0 +1,61 @@ +define(function(){ + // pt-BR (Brazillian Portuguese) + return { + "am" : "", + "pm" : "", + + "x": "%d/%m/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %H:%M:%S %Z", + + "months" : [ + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + + "months_abbr" : [ + "Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez" + ], + + "days" : [ + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + + "days_abbr" : [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sáb" + ] + }; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js new file mode 100644 index 00000000..c04ce885 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js @@ -0,0 +1,13 @@ +define(['../object/mixIn', './i18n/en-US'], function(mixIn, enUS){ + + // we also use mixIn to make sure we don't affect the original locale + var activeLocale = mixIn({}, enUS, { + // we expose a "set" method to allow overriding the global locale + set : function(localeData){ + mixIn(activeLocale, localeData); + } + }); + + return activeLocale; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js new file mode 100644 index 00000000..e400b43d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js @@ -0,0 +1,15 @@ +define(['../lang/isDate'], function (isDate) { + + /** + * checks if it's a leap year + */ + function isLeapYear(fullYear){ + if (isDate(fullYear)) { + fullYear = fullYear.getFullYear(); + } + return fullYear % 400 === 0 || (fullYear % 100 !== 0 && fullYear % 4 === 0); + } + + return isLeapYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js new file mode 100644 index 00000000..f30531fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js @@ -0,0 +1,16 @@ +define(['./startOf'], function (startOf) { + + /** + * Check if date is "same" with optional period + */ + function isSame(date1, date2, period){ + if (period) { + date1 = startOf(date1, period); + date2 = startOf(date2, period); + } + return Number(date1) === Number(date2); + } + + return isSame; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js new file mode 100644 index 00000000..9a2aacb0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js @@ -0,0 +1,146 @@ +define(['../array/some'], function (some) { + + var datePatterns = [ + /^([0-9]{4})$/, // YYYY + /^([0-9]{4})-([0-9]{2})$/, // YYYY-MM (YYYYMM not allowed) + /^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/ // YYYY-MM-DD or YYYYMMDD + ]; + var ORD_DATE = /^([0-9]{4})-?([0-9]{3})$/; // YYYY-DDD + + var timePatterns = [ + /^([0-9]{2}(?:\.[0-9]*)?)$/, // HH.hh + /^([0-9]{2}):?([0-9]{2}(?:\.[0-9]*)?)$/, // HH:MM.mm + /^([0-9]{2}):?([0-9]{2}):?([0-9]{2}(\.[0-9]*)?)$/ // HH:MM:SS.ss + ]; + + var DATE_TIME = /^(.+)T(.+)$/; + var TIME_ZONE = /^(.+)([+\-])([0-9]{2}):?([0-9]{2})$/; + + function matchAll(str, patterns) { + var match; + var found = some(patterns, function(pattern) { + return !!(match = pattern.exec(str)); + }); + + return found ? match : null; + } + + function getDate(year, month, day) { + var date = new Date(Date.UTC(year, month, day)); + + // Explicitly set year to avoid Date.UTC making dates < 100 relative to + // 1900 + date.setUTCFullYear(year); + + var valid = + date.getUTCFullYear() === year && + date.getUTCMonth() === month && + date.getUTCDate() === day; + return valid ? +date : NaN; + } + + function parseOrdinalDate(str) { + var match = ORD_DATE.exec(str); + if (match ) { + var year = +match[1], + day = +match[2], + date = new Date(Date.UTC(year, 0, day)); + + if (date.getUTCFullYear() === year) { + return +date; + } + } + + return NaN; + } + + function parseDate(str) { + var match, year, month, day; + + var match = matchAll(str, datePatterns); + if (match === null) { + // Ordinal dates are verified differently. + return parseOrdinalDate(str); + } + + year = (match[1] === void 0) ? 0 : +match[1]; + month = (match[2] === void 0) ? 0 : +match[2] - 1; + day = (match[3] === void 0) ? 1 : +match[3]; + + return getDate(year, month, day); + } + + function getTime(hr, min, sec) { + var valid = + (hr < 24 && hr >= 0 && + min < 60 && min >= 0 && + sec < 60 && min >= 0) || + (hr === 24 && min === 0 && sec === 0); + if (!valid) { + return NaN; + } + + return ((hr * 60 + min) * 60 + sec) * 1000; + } + + function parseOffset(str) { + var match; + if (str.charAt(str.length - 1) === 'Z') { + str = str.substring(0, str.length - 1); + } else if ((match = TIME_ZONE.exec(str))) { + var match = TIME_ZONE.exec(str); + if (match) { + var hours = +match[3], + minutes = (match[4] === void 0) ? 0 : +match[4], + offset = getTime(hours, minutes, 0); + + if (match[2] === '-') { + offset *= -1; + } + + return { offset: offset, time: match[1] }; + } + } + + // No time zone specified, assume UTC + return { offset: 0, time: str }; + } + + function parseTime(str) { + var match; + var offset = parseOffset(str); + + str = offset.time; + offset = offset.offset; + if (isNaN(offset)) { + return NaN; + } + + match = matchAll(str, timePatterns); + if (match === null) { + return NaN; + } + + var hours = (match[1] === void 0) ? 0 : +match[1], + minutes = (match[2] === void 0) ? 0 : +match[2], + seconds = (match[3] === void 0) ? 0 : +match[3]; + + return getTime(hours, minutes, seconds) - offset; + } + + /** + * Parse an ISO8601 formatted date string, and return a Date object. + */ + function parseISO8601(str){ + var match = DATE_TIME.exec(str); + if (!match) { + // No time specified + return parseDate(str); + } + + return parseDate(match[1]) + parseTime(match[2]); + } + + return parseISO8601; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js new file mode 100644 index 00000000..747f114d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js @@ -0,0 +1,54 @@ +define(['../lang/clone'], function (clone) { + + /** + * get a new Date object representing start of period + */ + function startOf(date, period){ + date = clone(date); + + // intentionally removed "break" from switch since start of + // month/year/etc should also reset the following periods + switch (period) { + case 'year': + date.setMonth(0); + /* falls through */ + case 'month': + date.setDate(1); + /* falls through */ + case 'week': + case 'day': + date.setHours(0); + /* falls through */ + case 'hour': + date.setMinutes(0); + /* falls through */ + case 'minute': + date.setSeconds(0); + /* falls through */ + case 'second': + date.setMilliseconds(0); + break; + default: + throw new Error('"'+ period +'" is not a valid period'); + } + + // week is the only case that should reset the weekDay and maybe even + // overflow to previous month + if (period === 'week') { + var weekDay = date.getDay(); + var baseDate = date.getDate(); + if (weekDay) { + if (weekDay >= baseDate) { + //start of the week is on previous month + date.setDate(0); + } + date.setDate(date.getDate() - date.getDay()); + } + } + + return date; + } + + return startOf; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js new file mode 100644 index 00000000..dd782505 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js @@ -0,0 +1,113 @@ +define(['../number/pad', './i18n_', './dayOfTheYear', './timezoneOffset', './timezoneAbbr', './weekOfTheYear'], function (pad, i18n, dayOfTheYear, timezoneOffset, timezoneAbbr, weekOfTheYear) { + + var _combinations = { + 'D': '%m/%d/%y', + 'F': '%Y-%m-%d', + 'r': '%I:%M:%S %p', + 'R': '%H:%M', + 'T': '%H:%M:%S', + 'x': 'locale', + 'X': 'locale', + 'c': 'locale' + }; + + + /** + * format date based on strftime format + */ + function strftime(date, format, localeData){ + localeData = localeData || i18n; + var reToken = /%([a-z%])/gi; + + function makeIterator(fn) { + return function(match, token){ + return fn(date, token, localeData); + }; + } + + return format + .replace(reToken, makeIterator(expandCombinations)) + .replace(reToken, makeIterator(convertToken)); + } + + + function expandCombinations(date, token, l10n){ + if (token in _combinations) { + var expanded = _combinations[token]; + return expanded === 'locale'? l10n[token] : expanded; + } else { + return '%'+ token; + } + } + + + function convertToken(date, token, l10n){ + switch (token){ + case 'a': + return l10n.days_abbr[date.getDay()]; + case 'A': + return l10n.days[date.getDay()]; + case 'h': + case 'b': + return l10n.months_abbr[date.getMonth()]; + case 'B': + return l10n.months[date.getMonth()]; + case 'C': + return pad(Math.floor(date.getFullYear() / 100), 2); + case 'd': + return pad(date.getDate(), 2); + case 'e': + return pad(date.getDate(), 2, ' '); + case 'H': + return pad(date.getHours(), 2); + case 'I': + return pad(date.getHours() % 12, 2); + case 'j': + return pad(dayOfTheYear(date), 3); + case 'L': + return pad(date.getMilliseconds(), 3); + case 'm': + return pad(date.getMonth() + 1, 2); + case 'M': + return pad(date.getMinutes(), 2); + case 'n': + return '\n'; + case 'p': + return date.getHours() >= 12? l10n.pm : l10n.am; + case 'P': + return convertToken(date, 'p', l10n).toLowerCase(); + case 's': + return date.getTime() / 1000; + case 'S': + return pad(date.getSeconds(), 2); + case 't': + return '\t'; + case 'u': + var day = date.getDay(); + return day === 0? 7 : day; + case 'U': + return pad(weekOfTheYear(date), 2); + case 'w': + return date.getDay(); + case 'W': + return pad(weekOfTheYear(date, 1), 2); + case 'y': + return pad(date.getFullYear() % 100, 2); + case 'Y': + return pad(date.getFullYear(), 4); + case 'z': + return timezoneOffset(date); + case 'Z': + return timezoneAbbr(date); + case '%': + return '%'; + default: + // keep unrecognized tokens + return '%'+ token; + } + } + + + return strftime; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js new file mode 100644 index 00000000..225a6856 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js @@ -0,0 +1,17 @@ +define(['./timezoneOffset'], function(timezoneOffset) { + + /** + * Abbreviated time zone name or similar information. + */ + function timezoneAbbr(date){ + // Date.toString gives different results depending on the + // browser/system so we fallback to timezone offset + // chrome: 'Mon Apr 08 2013 09:02:04 GMT-0300 (BRT)' + // IE: 'Mon Apr 8 09:02:04 UTC-0300 2013' + var tz = /\(([A-Z]{3,4})\)/.exec(date.toString()); + return tz? tz[1] : timezoneOffset(date); + } + + return timezoneAbbr; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js new file mode 100644 index 00000000..ca06705d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js @@ -0,0 +1,16 @@ +define(['../number/pad'], function (pad) { + + /** + * time zone as hour and minute offset from UTC (e.g. +0900) + */ + function timezoneOffset(date){ + var offset = date.getTimezoneOffset(); + var abs = Math.abs(offset); + var h = pad(Math.floor(abs / 60), 2); + var m = pad(abs % 60, 2); + return (offset > 0? '-' : '+') + h + m; + } + + return timezoneOffset; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js new file mode 100644 index 00000000..98f7e9d1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js @@ -0,0 +1,24 @@ +define(['../lang/isDate', './isLeapYear'], function (isDate, isLeapYear) { + + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + /** + * returns the total amount of days in the month (considering leap years) + */ + function totalDaysInMonth(fullYear, monthIndex){ + if (isDate(fullYear)) { + var date = fullYear; + year = date.getFullYear(); + monthIndex = date.getMonth(); + } + + if (monthIndex === 1 && isLeapYear(fullYear)) { + return 29; + } else { + return DAYS_IN_MONTH[monthIndex]; + } + } + + return totalDaysInMonth; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js new file mode 100644 index 00000000..e9036b42 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js @@ -0,0 +1,13 @@ +define(['./isLeapYear'], function (isLeapYear) { + + /** + * return the amount of days in the year following the gregorian calendar + * and leap years + */ + function totalDaysInYear(fullYear){ + return isLeapYear(fullYear)? 366 : 365; + } + + return totalDaysInYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js new file mode 100644 index 00000000..8dabc458 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js @@ -0,0 +1,16 @@ +define(['./dayOfTheYear'], function (dayOfTheYear) { + + /** + * Return the week of the year based on given firstDayOfWeek + */ + function weekOfTheYear(date, firstDayOfWeek){ + firstDayOfWeek = firstDayOfWeek == null? 0 : firstDayOfWeek; + var doy = dayOfTheYear(date); + var dow = (7 + date.getDay() - firstDayOfWeek) % 7; + var relativeWeekDay = 6 - firstDayOfWeek - dow; + return Math.floor((doy + relativeWeekDay) / 7); + } + + return weekOfTheYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js new file mode 100644 index 00000000..23f4fd74 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js @@ -0,0 +1,18 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'bind' : require('./function/bind'), + 'compose' : require('./function/compose'), + 'debounce' : require('./function/debounce'), + 'func' : require('./function/func'), + 'makeIterator_' : require('./function/makeIterator_'), + 'partial' : require('./function/partial'), + 'prop' : require('./function/prop'), + 'series' : require('./function/series'), + 'throttle' : require('./function/throttle'), + 'timeout' : require('./function/timeout') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js new file mode 100644 index 00000000..09e5e20a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js @@ -0,0 +1,23 @@ +define(function(){ + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + * @param {Function} fn Function. + * @param {object} context Execution context. + * @param {rest} args Arguments (0...n arguments). + * @return {Function} Wrapped Function. + */ + function bind(fn, context, args){ + var argsArr = slice(arguments, 2); //curried args + return function(){ + return fn.apply(context, argsArr.concat(slice(arguments))); + }; + } + + return bind; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js new file mode 100644 index 00000000..d8b228fa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Returns a function that composes multiple functions, passing results to + * each other. + */ + function compose() { + var fns = arguments; + return function(arg){ + // only cares about the first argument since the chain can only + // deal with a single return value anyway. It should start from + // the last fn. + var n = fns.length; + while (n--) { + arg = fns[n].call(this, arg); + } + return arg; + }; + } + + return compose; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js new file mode 100644 index 00000000..21644ecc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js @@ -0,0 +1,29 @@ +define(function () { + + /** + * Debounce callback execution + */ + function debounce(fn, threshold, isAsap){ + var timeout, result; + function debounced(){ + var args = arguments, context = this; + function delayed(){ + if (! isAsap) { + result = fn.apply(context, args); + } + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (isAsap) { + result = fn.apply(context, args); + } + timeout = setTimeout(delayed, threshold); + return result; + } + return debounced; + } + + return debounce; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js new file mode 100644 index 00000000..b920e00e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Returns a function that call a method on the passed object + */ + function func(name){ + return function(obj){ + return obj[name](); + }; + } + + return func; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js new file mode 100644 index 00000000..deb6e137 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js @@ -0,0 +1,33 @@ +define(['./prop', '../object/deepMatches'], function(prop, deepMatches) { + + /** + * Converts argument into a valid iterator. + * Used internally on most array/object/collection methods that receives a + * callback/iterator providing a shortcut syntax. + */ + function makeIterator(src, thisObj){ + switch(typeof src) { + case 'object': + // typeof null == "object" + return (src != null)? function(val, key, target){ + return deepMatches(val, src); + } : src; + case 'string': + case 'number': + return prop(src); + case 'function': + if (typeof thisObj === 'undefined') { + return src; + } else { + return function(val, i, arr){ + return src.call(thisObj, val, i, arr); + }; + } + default: + return src; + } + } + + return makeIterator; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js new file mode 100644 index 00000000..ad730746 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js @@ -0,0 +1,19 @@ +define(function () { + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Creates a partially applied function. + */ + function partial(fn, var_args){ + var argsArr = slice(arguments, 1); //curried args + return function(){ + return fn.apply(this, argsArr.concat(slice(arguments))); + }; + } + + return partial; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js new file mode 100644 index 00000000..c9df78ca --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Returns a function that gets a property of the passed object + */ + function prop(name){ + return function(obj){ + return obj[name]; + }; + } + + return prop; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js new file mode 100644 index 00000000..c8856a27 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js @@ -0,0 +1,22 @@ +define(function () { + + /** + * Returns a function that will execute a list of functions in sequence + * passing the same arguments to each one. (useful for batch processing + * items during a forEach loop) + */ + function series(){ + var fns = arguments; + return function(){ + var i = 0, + n = fns.length; + while (i < n) { + fns[i].apply(this, arguments); + i += 1; + } + }; + } + + return series; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js new file mode 100644 index 00000000..8ce3929a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js @@ -0,0 +1,32 @@ +define(['../time/now'], function (now) { + + /** + */ + function throttle(fn, delay){ + var context, timeout, result, args, + cur, diff, prev = 0; + function delayed(){ + prev = now(); + timeout = null; + result = fn.apply(context, args); + } + function throttled(){ + context = this; + args = arguments; + cur = now(); + diff = delay - (cur - prev); + if (diff <= 0) { + clearTimeout(timeout); + prev = cur; + result = fn.apply(context, args); + } else if (! timeout) { + timeout = setTimeout(delayed, diff); + } + return result; + } + return throttled; + } + + return throttle; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js new file mode 100644 index 00000000..15388bdd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js @@ -0,0 +1,21 @@ +define(function () { + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Delays the call of a function within a given context. + */ + function timeout(fn, millis, context){ + + var args = slice(arguments, 3); + + return setTimeout(function() { + fn.apply(context, args); + }, millis); + } + + return timeout; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js new file mode 100644 index 00000000..744bb119 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js @@ -0,0 +1,24 @@ +/**@license + * mout v0.6.0 | http://moutjs.com | MIT license + */ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'VERSION' : '0.6.0', + 'array' : require('./array'), + 'collection' : require('./collection'), + 'date' : require('./date'), + 'function' : require('./function'), + 'lang' : require('./lang'), + 'math' : require('./math'), + 'number' : require('./number'), + 'object' : require('./object'), + 'queryString' : require('./queryString'), + 'random' : require('./random'), + 'string' : require('./string'), + 'time' : require('./time') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js new file mode 100644 index 00000000..de16b597 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js @@ -0,0 +1,36 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'clone' : require('./lang/clone'), + 'createObject' : require('./lang/createObject'), + 'ctorApply' : require('./lang/ctorApply'), + 'deepClone' : require('./lang/deepClone'), + 'defaults' : require('./lang/defaults'), + 'inheritPrototype' : require('./lang/inheritPrototype'), + 'is' : require('./lang/is'), + 'isArguments' : require('./lang/isArguments'), + 'isArray' : require('./lang/isArray'), + 'isBoolean' : require('./lang/isBoolean'), + 'isDate' : require('./lang/isDate'), + 'isEmpty' : require('./lang/isEmpty'), + 'isFinite' : require('./lang/isFinite'), + 'isFunction' : require('./lang/isFunction'), + 'isInteger' : require('./lang/isInteger'), + 'isKind' : require('./lang/isKind'), + 'isNaN' : require('./lang/isNaN'), + 'isNull' : require('./lang/isNull'), + 'isNumber' : require('./lang/isNumber'), + 'isObject' : require('./lang/isObject'), + 'isPlainObject' : require('./lang/isPlainObject'), + 'isRegExp' : require('./lang/isRegExp'), + 'isString' : require('./lang/isString'), + 'isUndefined' : require('./lang/isUndefined'), + 'isnt' : require('./lang/isnt'), + 'kindOf' : require('./lang/kindOf'), + 'toArray' : require('./lang/toArray'), + 'toString' : require('./lang/toString') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js new file mode 100644 index 00000000..468489a1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js @@ -0,0 +1,47 @@ +define(['./kindOf', './isPlainObject', '../object/mixIn'], function (kindOf, isPlainObject, mixIn) { + + /** + * Clone native types. + */ + function clone(val){ + switch (kindOf(val)) { + case 'Object': + return cloneObject(val); + case 'Array': + return cloneArray(val); + case 'RegExp': + return cloneRegExp(val); + case 'Date': + return cloneDate(val); + default: + return val; + } + } + + function cloneObject(source) { + if (isPlainObject(source)) { + return mixIn({}, source); + } else { + return source; + } + } + + function cloneRegExp(r) { + var flags = ''; + flags += r.multiline ? 'm' : ''; + flags += r.global ? 'g' : ''; + flags += r.ignorecase ? 'i' : ''; + return new RegExp(r.source, flags); + } + + function cloneDate(date) { + return new Date(+date); + } + + function cloneArray(arr) { + return arr.slice(); + } + + return clone; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js new file mode 100644 index 00000000..f7661500 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js @@ -0,0 +1,18 @@ +define(['../object/mixIn'], function(mixIn){ + + /** + * Create Object using prototypal inheritance and setting custom properties. + * - Mix between Douglas Crockford Prototypal Inheritance and the EcmaScript 5 `Object.create()` method. + * @param {object} parent Parent Object. + * @param {object} [props] Object properties. + * @return {object} Created object. + */ + function createObject(parent, props){ + function F(){} + F.prototype = parent; + return mixIn(new F(), props); + + } + return createObject; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js new file mode 100644 index 00000000..a9ac1c54 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js @@ -0,0 +1,17 @@ +define(function () { + + function F(){} + + /** + * Do fn.apply on a constructor. + */ + function ctorApply(ctor, args) { + F.prototype = ctor.prototype; + var instance = new F(); + ctor.apply(instance, args); + return instance; + } + + return ctorApply; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js new file mode 100644 index 00000000..d45c10aa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js @@ -0,0 +1,45 @@ +define(['./clone', '../object/forOwn', './kindOf', './isPlainObject'], function (clone, forOwn, kindOf, isPlainObject) { + + /** + * Recursively clone native types. + */ + function deepClone(val, instanceClone) { + switch ( kindOf(val) ) { + case 'Object': + return cloneObject(val, instanceClone); + case 'Array': + return cloneArray(val, instanceClone); + default: + return clone(val); + } + } + + function cloneObject(source, instanceClone) { + if (isPlainObject(source)) { + var out = {}; + forOwn(source, function(val, key) { + this[key] = deepClone(val, instanceClone); + }, out); + return out; + } else if (instanceClone) { + return instanceClone(source); + } else { + return source; + } + } + + function cloneArray(arr, instanceClone) { + var out = [], + i = -1, + n = arr.length, + val; + while (++i < n) { + out[i] = deepClone(arr[i], instanceClone); + } + return out; + } + + return deepClone; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js new file mode 100644 index 00000000..5156b1bb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js @@ -0,0 +1,16 @@ +define(['./toArray', '../array/find'], function (toArray, find) { + + /** + * Return first non void argument + */ + function defaults(var_args){ + return find(toArray(arguments), nonVoid); + } + + function nonVoid(val){ + return val != null; + } + + return defaults; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js new file mode 100644 index 00000000..c1fda3a7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js @@ -0,0 +1,16 @@ +define(['./createObject'], function(createObject){ + + /** + * Inherit prototype from another Object. + * - inspired by Nicholas Zackas Solution + * @param {object} child Child object + * @param {object} parent Parent Object + */ + function inheritPrototype(child, parent){ + var p = createObject(parent.prototype); + p.constructor = child; + child.prototype = p; + } + + return inheritPrototype; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js new file mode 100644 index 00000000..261a2077 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Check if both arguments are egal. + */ + function is(x, y){ + // implementation borrowed from harmony:egal spec + if (x === y) { + // 0 === -0, but they are not identical + return x !== 0 || 1 / x === 1 / y; + } + + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is a NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN("foo") => true + return x !== x && y !== y; + } + + return is; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js new file mode 100644 index 00000000..f889ee8e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js @@ -0,0 +1,15 @@ +define(['./isKind'], function (isKind) { + + /** + */ + var isArgs = isKind(arguments, 'Arguments')? + function(val){ + return isKind(val, 'Arguments'); + } : + function(val){ + // Arguments is an Object on IE7 + return !!(val && Object.prototype.hasOwnProperty.call(val, 'callee')); + }; + + return isArgs; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js new file mode 100644 index 00000000..886e2aa5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + var isArray = Array.isArray || function (val) { + return isKind(val, 'Array'); + }; + return isArray; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js new file mode 100644 index 00000000..1ca27a69 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isBoolean(val) { + return isKind(val, 'Boolean'); + } + return isBoolean; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js new file mode 100644 index 00000000..2708d676 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isDate(val) { + return isKind(val, 'Date'); + } + return isDate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js new file mode 100644 index 00000000..4cc3d2db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js @@ -0,0 +1,23 @@ +define(['../object/forOwn', './isArray'], function (forOwn, isArray) { + + function isEmpty(val){ + if (val == null) { + // typeof null == 'object' so we check it first + return false; + } else if ( typeof val === 'string' || isArray(val) ) { + return !val.length; + } else if ( typeof val === 'object' || typeof val === 'function' ) { + var result = true; + forOwn(val, function(){ + result = false; + return false; // break loop + }); + return result; + } else { + return false; + } + } + + return isEmpty; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js new file mode 100644 index 00000000..5a982f4b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js @@ -0,0 +1,21 @@ +define(['./isNumber'], function (isNumber) { + + var global = this; + + /** + * Check if value is finite + */ + function isFinite(val){ + var is = false; + if (typeof val === 'string' && val !== '') { + is = global.isFinite( parseFloat(val) ); + } else if (isNumber(val)){ + // need to use isNumber because of Number constructor + is = global.isFinite( val ); + } + return is; + } + + return isFinite; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js new file mode 100644 index 00000000..ff5df7f0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isFunction(val) { + return isKind(val, 'Function'); + } + return isFunction; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js new file mode 100644 index 00000000..1931f516 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js @@ -0,0 +1,12 @@ +define(['./isNumber'], function (isNumber) { + + /** + * Check if value is an integer + */ + function isInteger(val){ + return isNumber(val) && (val % 1 === 0); + } + + return isInteger; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js new file mode 100644 index 00000000..6937a12f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js @@ -0,0 +1,9 @@ +define(['./kindOf'], function (kindOf) { + /** + * Check if value is from a specific "kind". + */ + function isKind(val, kind){ + return kindOf(val) === kind; + } + return isKind; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js new file mode 100644 index 00000000..9467a3c8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js @@ -0,0 +1,15 @@ +define(['./isNumber'], function (isNumber) { + + /** + * Check if value is NaN for realz + */ + function isNaN(val){ + // based on the fact that NaN !== NaN + // need to check if it's a number to avoid conflicts with host objects + // also need to coerce ToNumber to avoid edge case `new Number(NaN)` + return !isNumber(val) || val != +val; + } + + return isNaN; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js new file mode 100644 index 00000000..506e05ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js @@ -0,0 +1,9 @@ +define(function () { + /** + */ + function isNull(val){ + return val === null; + } + return isNull; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js new file mode 100644 index 00000000..9a832c5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isNumber(val) { + return isKind(val, 'Number'); + } + return isNumber; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js new file mode 100644 index 00000000..0befb063 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isObject(val) { + return isKind(val, 'Object'); + } + return isObject; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js new file mode 100644 index 00000000..6c5854fd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Checks if the value is created by the `Object` constructor. + */ + function isPlainObject(value) { + return (!!value + && typeof value === 'object' + && value.constructor === Object); + } + + return isPlainObject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js new file mode 100644 index 00000000..d78a03da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isRegExp(val) { + return isKind(val, 'RegExp'); + } + return isRegExp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js new file mode 100644 index 00000000..8a42fe01 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isString(val) { + return isKind(val, 'String'); + } + return isString; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js new file mode 100644 index 00000000..c57b28eb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js @@ -0,0 +1,10 @@ +define(function () { + var UNDEF; + + /** + */ + function isUndef(val){ + return val === UNDEF; + } + return isUndef; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js new file mode 100644 index 00000000..d4336222 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js @@ -0,0 +1,12 @@ +define(['./is'], function (is) { + + /** + * Check if both values are not identical/egal + */ + function isnt(x, y){ + return !is(x, y); + } + + return isnt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js new file mode 100644 index 00000000..97d21d15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js @@ -0,0 +1,20 @@ +define(function () { + + var _rKind = /^\[object (.*)\]$/, + _toString = Object.prototype.toString, + UNDEF; + + /** + * Gets the "kind" of value. (e.g. "String", "Number", etc) + */ + function kindOf(val) { + if (val === null) { + return 'Null'; + } else if (val === UNDEF) { + return 'Undefined'; + } else { + return _rKind.exec( _toString.call(val) )[1]; + } + } + return kindOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js new file mode 100644 index 00000000..552916f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js @@ -0,0 +1,31 @@ +define(['./kindOf'], function (kindOf) { + + var _win = this; + + /** + * Convert array-like object into array + */ + function toArray(val){ + var ret = [], + kind = kindOf(val), + n; + + if (val != null) { + if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) { + //string, regexp, function have .length but user probably just want + //to wrap value into an array.. + ret[ret.length] = val; + } else { + //window returns true on isObject in IE7 and may have length + //property. `typeof NodeList` returns `function` on Safari so + //we can't use it (#58) + n = val.length; + while (n--) { + ret[n] = val[n]; + } + } + } + return ret; + } + return toArray; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js new file mode 100644 index 00000000..c28b89af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * Typecast a value to a String, using an empty string value for null or + * undefined. + */ + function toString(val){ + return val == null ? '' : val.toString(); + } + + return toString; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js new file mode 100644 index 00000000..e2ba8705 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js @@ -0,0 +1,19 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'ceil' : require('./math/ceil'), + 'clamp' : require('./math/clamp'), + 'countSteps' : require('./math/countSteps'), + 'floor' : require('./math/floor'), + 'inRange' : require('./math/inRange'), + 'isNear' : require('./math/isNear'), + 'lerp' : require('./math/lerp'), + 'loop' : require('./math/loop'), + 'map' : require('./math/map'), + 'norm' : require('./math/norm'), + 'round' : require('./math/round') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js new file mode 100644 index 00000000..d73b0581 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Round value up with a custom radix. + */ + function ceil(val, step){ + step = Math.abs(step || 1); + return Math.ceil(val / step) * step; + } + + return ceil; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js new file mode 100644 index 00000000..fb5a1484 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Clamps value inside range. + */ + function clamp(val, min, max){ + return val < min? min : (val > max? max : val); + } + return clamp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js new file mode 100644 index 00000000..0ecb32f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js @@ -0,0 +1,16 @@ +define(function(){ + /** + * Count number of full steps. + */ + function countSteps(val, step, overflow){ + val = Math.floor(val / step); + + if (overflow) { + return val % overflow; + } + + return val; + } + + return countSteps; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js new file mode 100644 index 00000000..8a4456b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Floor value to full steps. + */ + function floor(val, step){ + step = Math.abs(step || 1); + return Math.floor(val / step) * step; + } + return floor; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js new file mode 100644 index 00000000..0c890536 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Checks if value is inside the range. + */ + function inRange(val, min, max, threshold){ + threshold = threshold || 0; + return (val + threshold >= min && val - threshold <= max); + } + + return inRange; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js new file mode 100644 index 00000000..b308a0b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Check if value is close to target. + */ + function isNear(val, target, threshold){ + return (Math.abs(val - target) <= threshold); + } + return isNear; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js new file mode 100644 index 00000000..26b99d04 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Linear interpolation. + * IMPORTANT:will return `Infinity` if numbers overflow Number.MAX_VALUE + */ + function lerp(ratio, start, end){ + return start + (end - start) * ratio; + } + + return lerp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js new file mode 100644 index 00000000..c735ecf6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Loops value inside range. + */ + function loop(val, min, max){ + return val < min? max : (val > max? min : val); + } + + return loop; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js new file mode 100644 index 00000000..bf7dc5d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js @@ -0,0 +1,10 @@ +define(['./lerp', './norm'], function(lerp, norm){ + /** + * Maps a number from one scale to another. + * @example map(3, 0, 4, -1, 1) -> 0.5 + */ + function map(val, min1, max1, min2, max2){ + return lerp( norm(val, min1, max1), min2, max2 ); + } + return map; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js new file mode 100644 index 00000000..fccae20e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Gets normalized ratio of value inside range. + */ + function norm(val, min, max){ + return (val - min) / (max - min); + } + return norm; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js new file mode 100644 index 00000000..b43e4ac2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js @@ -0,0 +1,12 @@ +define(function () { + /** + * Round number to a specific radix + */ + function round(value, radix){ + radix = radix || 1; // default round 1 + return Math.round(value / radix) * radix; + } + + return round; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js new file mode 100644 index 00000000..cb52fc75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js @@ -0,0 +1,21 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'MAX_INT' : require('./number/MAX_INT'), + 'MAX_UINT' : require('./number/MAX_UINT'), + 'MIN_INT' : require('./number/MIN_INT'), + 'abbreviate' : require('./number/abbreviate'), + 'currencyFormat' : require('./number/currencyFormat'), + 'enforcePrecision' : require('./number/enforcePrecision'), + 'pad' : require('./number/pad'), + 'rol' : require('./number/rol'), + 'ror' : require('./number/ror'), + 'sign' : require('./number/sign'), + 'toInt' : require('./number/toInt'), + 'toUInt' : require('./number/toUInt'), + 'toUInt31' : require('./number/toUInt31') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js new file mode 100644 index 00000000..23a6e1a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit signed integer value. (2^31 - 1) + */ +define(function(){ + return 2147483647; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js new file mode 100644 index 00000000..a035096c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit unsigned integet value (2^32 - 1) + */ +define(function(){ + return 4294967295; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js new file mode 100644 index 00000000..9b3e9781 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Minimum 32-bit signed integer value (-2^31). + */ +define(function(){ + return -2147483648; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js new file mode 100644 index 00000000..7e7405ad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js @@ -0,0 +1,35 @@ +define(['./enforcePrecision'], function (enforcePrecision) { + + var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' + }; + + /** + * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) + */ + function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals != null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; + } + + return abbreviateNumber; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js new file mode 100644 index 00000000..dcde8fc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js @@ -0,0 +1,26 @@ +define(function () { + + /** + * Converts number into currency format + */ + function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) { + nDecimalDigits = nDecimalDigits == null? 2 : nDecimalDigits; + decimalSeparator = decimalSeparator == null? '.' : decimalSeparator; + thousandsSeparator = thousandsSeparator == null? ',' : thousandsSeparator; + + //can't use enforce precision since it returns a number and we are + //doing a RegExp over the string + var fixed = val.toFixed(nDecimalDigits), + //separate begin [$1], middle [$2] and decimal digits [$4] + parts = new RegExp('^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{'+ nDecimalDigits +'}))?$').exec( fixed ); + + if(parts){ //val >= 1000 || val <= -1000 + return parts[1] + parts[2].replace(/\d{3}/g, thousandsSeparator + '$&') + (parts[4] ? decimalSeparator + parts[4] : ''); + }else{ + return fixed.replace('.', decimalSeparator); + } + } + + return currencyFormat; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js new file mode 100644 index 00000000..84554d0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js @@ -0,0 +1,13 @@ +define(function(){ + /** + * Enforce a specific amount of decimal digits and also fix floating + * point rounding issues. + * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> + * 0.61` + */ + function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); + } + return enforcePrecision; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js new file mode 100644 index 00000000..3b2c062a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js @@ -0,0 +1,12 @@ +define(['../string/lpad'], function(lpad){ + + /** + * Add padding zeros if n.length < minLength. + */ + function pad(n, minLength, char){ + return lpad(''+ n, minLength, char || '0'); + } + + return pad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js new file mode 100644 index 00000000..a148f444 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Bitwise circular shift left + * http://en.wikipedia.org/wiki/Circular_shift + */ + function rol(val, shift){ + return (val << shift) | (val >> (32 - shift)); + } + return rol; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js new file mode 100644 index 00000000..b5c66f92 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Bitwise circular shift right + * http://en.wikipedia.org/wiki/Circular_shift + */ + function ror(val, shift){ + return (val >> shift) | (val << (32 - shift)); + } + return ror; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js new file mode 100644 index 00000000..dfc131d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js @@ -0,0 +1,15 @@ +define(function () { + + /** + * Get sign of the value. + */ + function sign(val) { + var num = Number(val); + if (num === 0) return num; // +0 and +0 === 0 + if (isNaN(num)) return num; // NaN + return num < 0? -1 : 1; + } + + return sign; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js new file mode 100644 index 00000000..1e9b4c0b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js @@ -0,0 +1,15 @@ +define(function(){ + + /** + * "Convert" value into an 32-bit integer. + * Works like `Math.floor` if val > 0 and `Math.ceil` if val < 0. + * IMPORTANT: val will wrap at 2^31 and -2^31. + * Perf tests: http://jsperf.com/vs-vs-parseint-bitwise-operators/7 + */ + function toInt(val){ + return ~~val; + } + + return toInt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js new file mode 100644 index 00000000..d5b25b2c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * "Convert" value into a 32-bit unsigned integer. + * IMPORTANT: Value will wrap at 2^32. + */ + function toUInt(val){ + return val >>> 0; + } + + return toUInt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js new file mode 100644 index 00000000..9785a054 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js @@ -0,0 +1,13 @@ +define(['./MAX_INT'], function(MAX_INT){ + + /** + * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + * IMPORTANT: value wil wrap at 2^31, if negative will return 0. + */ + function toUInt31(val){ + return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val); + } + + return toUInt31; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js new file mode 100644 index 00000000..343e7826 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js @@ -0,0 +1,42 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'bindAll' : require('./object/bindAll'), + 'contains' : require('./object/contains'), + 'deepEquals' : require('./object/deepEquals'), + 'deepFillIn' : require('./object/deepFillIn'), + 'deepMatches' : require('./object/deepMatches'), + 'deepMixIn' : require('./object/deepMixIn'), + 'equals' : require('./object/equals'), + 'every' : require('./object/every'), + 'fillIn' : require('./object/fillIn'), + 'filter' : require('./object/filter'), + 'find' : require('./object/find'), + 'forIn' : require('./object/forIn'), + 'forOwn' : require('./object/forOwn'), + 'functions' : require('./object/functions'), + 'get' : require('./object/get'), + 'has' : require('./object/has'), + 'hasOwn' : require('./object/hasOwn'), + 'keys' : require('./object/keys'), + 'map' : require('./object/map'), + 'matches' : require('./object/matches'), + 'max' : require('./object/max'), + 'merge' : require('./object/merge'), + 'min' : require('./object/min'), + 'mixIn' : require('./object/mixIn'), + 'namespace' : require('./object/namespace'), + 'pick' : require('./object/pick'), + 'pluck' : require('./object/pluck'), + 'reduce' : require('./object/reduce'), + 'reject' : require('./object/reject'), + 'set' : require('./object/set'), + 'size' : require('./object/size'), + 'some' : require('./object/some'), + 'unset' : require('./object/unset'), + 'values' : require('./object/values') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js new file mode 100644 index 00000000..b131ed15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js @@ -0,0 +1,16 @@ +define(['./functions', '../function/bind', '../array/forEach'], function (functions, bind, forEach) { + + /** + * Binds methods of the object to be run in it's own context. + */ + function bindAll(obj, rest_methodNames){ + var keys = arguments.length > 1? + Array.prototype.slice.call(arguments, 1) : functions(obj); + forEach(keys, function(key){ + obj[key] = bind(obj[key], obj); + }); + } + + return bindAll; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js new file mode 100644 index 00000000..297e8986 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js @@ -0,0 +1,13 @@ +define(['./some'], function (some) { + + /** + * Check if object contains value + */ + function contains(obj, needle) { + return some(obj, function(val) { + return (val === needle); + }); + } + return contains; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js new file mode 100644 index 00000000..8b7d5d15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js @@ -0,0 +1,26 @@ +define(['../lang/isObject', './equals'], function (isObject, equals) { + + function defaultCompare(a, b) { + return a === b; + } + + /** + * Recursively checks for same properties and values. + */ + function deepEquals(a, b, callback){ + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + function compare(a, b){ + return deepEquals(a, b, callback); + } + + return equals(a, b, compare); + } + + return deepEquals; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js new file mode 100644 index 00000000..84ba154a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js @@ -0,0 +1,31 @@ +define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { + + /** + * Deeply copy missing properties in the target from the defaults. + */ + function deepFillIn(target, defaults){ + var i = 0, + n = arguments.length, + obj; + + while(++i < n) { + obj = arguments[i]; + if (obj) { + forOwn(obj, function(newValue, key) { + var curValue = target[key]; + if (curValue == null) { + target[key] = newValue; + } else if (isPlainObject(curValue) + && isPlainObject(newValue)) { + deepFillIn(curValue, newValue); + } + }); + } + } + + return target; + } + + return deepFillIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js new file mode 100644 index 00000000..2eae6297 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js @@ -0,0 +1,54 @@ +define(['./forOwn', '../lang/isArray'], function(forOwn, isArray) { + + function containsMatch(array, pattern) { + var i = -1, length = array.length; + while (++i < length) { + if (deepMatches(array[i], pattern)) { + return true; + } + } + + return false; + } + + function matchArray(target, pattern) { + var i = -1, patternLength = pattern.length; + while (++i < patternLength) { + if (!containsMatch(target, pattern[i])) { + return false; + } + } + + return true; + } + + function matchObject(target, pattern) { + var result = true; + forOwn(pattern, function(val, key) { + if (!deepMatches(target[key], val)) { + // Return false to break out of forOwn early + return (result = false); + } + }); + + return result; + } + + /** + * Recursively check if the objects match. + */ + function deepMatches(target, pattern){ + if (target && typeof target === 'object') { + if (isArray(target) && isArray(pattern)) { + return matchArray(target, pattern); + } else { + return matchObject(target, pattern); + } + } else { + return target === pattern; + } + } + + return deepMatches; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js new file mode 100644 index 00000000..1b4178ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js @@ -0,0 +1,33 @@ +define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { + + /** + * Mixes objects into the target object, recursively mixing existing child + * objects. + */ + function deepMixIn(target, objects) { + var i = 0, + n = arguments.length, + obj; + + while(++i < n){ + obj = arguments[i]; + if (obj) { + forOwn(obj, copyProp, target); + } + } + + return target; + } + + function copyProp(val, key) { + var existing = this[key]; + if (isPlainObject(val) && isPlainObject(existing)) { + deepMixIn(existing, val); + } else { + this[key] = val; + } + } + + return deepMixIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js new file mode 100644 index 00000000..596cb952 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js @@ -0,0 +1,34 @@ +define(['./hasOwn', './every', '../lang/isObject'], function(hasOwn, every, isObject) { + + function defaultCompare(a, b) { + return a === b; + } + + // Makes a function to compare the object values from the specified compare + // operation callback. + function makeCompare(callback) { + return function(value, key) { + return hasOwn(this, key) && callback(value, this[key]); + }; + } + + function checkProperties(value, key) { + return hasOwn(this, key); + } + + /** + * Checks if two objects have the same keys and values. + */ + function equals(a, b, callback) { + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + return (every(a, makeCompare(callback), b) && + every(b, checkProperties, a)); + } + + return equals; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js new file mode 100644 index 00000000..52983a5e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js @@ -0,0 +1,22 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Object every + */ + function every(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + forOwn(obj, function(val, key) { + // we consider any falsy values as "false" on purpose so shorthand + // syntax can be used to check property existence + if (!callback(val, key, obj)) { + result = false; + return false; // break + } + }); + return result; + } + + return every; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js new file mode 100644 index 00000000..0845d3c2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js @@ -0,0 +1,19 @@ +define(['../array/forEach', './forOwn'], function (forEach, forOwn) { + + /** + * Copy missing properties in the obj from the defaults. + */ + function fillIn(obj, var_defaults){ + forEach(Array.prototype.slice.call(arguments, 1), function(base){ + forOwn(base, function(val, key){ + if (obj[key] == null) { + obj[key] = val; + } + }); + }); + return obj; + } + + return fillIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js new file mode 100644 index 00000000..f213b915 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js @@ -0,0 +1,19 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Creates a new object with all the properties where the callback returns + * true. + */ + function filterValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + output[key] = value; + } + }); + + return output; + } + return filterValues; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js new file mode 100644 index 00000000..47e6b09d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js @@ -0,0 +1,20 @@ +define(['./some', '../function/makeIterator_'], function(some, makeIterator) { + + /** + * Returns first item that matches criteria + */ + function find(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result; + some(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + result = value; + return true; //break + } + }); + return result; + } + + return find; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js new file mode 100644 index 00000000..2058e9cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js @@ -0,0 +1,62 @@ +define(function () { + + var _hasDontEnumBug, + _dontEnums; + + function checkDontEnum(){ + _dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ]; + + _hasDontEnumBug = true; + + for (var key in {'toString': null}) { + _hasDontEnumBug = false; + } + } + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forIn(obj, fn, thisObj){ + var key, i = 0; + // no need to check if argument is a real object that way we can use + // it for arrays, functions, date, etc. + + //post-pone check till needed + if (_hasDontEnumBug == null) checkDontEnum(); + + for (key in obj) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + + if (_hasDontEnumBug) { + while (key = _dontEnums[i++]) { + // since we aren't using hasOwn check we need to make sure the + // property was overwritten + if (obj[key] !== Object.prototype[key]) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + } + } + } + + function exec(fn, obj, key, thisObj){ + return fn.call(thisObj, obj[key], key, obj); + } + + return forIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js new file mode 100644 index 00000000..b40cbaf1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js @@ -0,0 +1,18 @@ +define(['./hasOwn', './forIn'], function (hasOwn, forIn) { + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forOwn(obj, fn, thisObj){ + forIn(obj, function(val, key){ + if (hasOwn(obj, key)) { + return fn.call(thisObj, obj[key], key, obj); + } + }); + } + + return forOwn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js new file mode 100644 index 00000000..60fee3dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js @@ -0,0 +1,18 @@ +define(['./forIn'], function (forIn) { + + /** + * return a list of all enumerable properties that have function values + */ + function functions(obj){ + var keys = []; + forIn(obj, function(val, key){ + if (typeof val === 'function'){ + keys.push(key); + } + }); + return keys.sort(); + } + + return functions; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js new file mode 100644 index 00000000..ca80b059 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js @@ -0,0 +1,20 @@ +define(function () { + + /** + * get "nested" object property + */ + function get(obj, prop){ + var parts = prop.split('.'), + last = parts.pop(); + + while (prop = parts.shift()) { + obj = obj[prop]; + if (typeof obj !== 'object') return; + } + + return obj[last]; + } + + return get; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js new file mode 100644 index 00000000..cc29817f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js @@ -0,0 +1,15 @@ +define(['./get'], function (get) { + + var UNDEF; + + /** + * Check if object has nested property. + */ + function has(obj, prop){ + return get(obj, prop) !== UNDEF; + } + + return has; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js new file mode 100644 index 00000000..5c53bcf2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js @@ -0,0 +1,12 @@ +define(function () { + + /** + * Safer Object.hasOwnProperty + */ + function hasOwn(obj, prop){ + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + return hasOwn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js new file mode 100644 index 00000000..ed7c4f91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object keys + */ + var keys = Object.keys || function (obj) { + var keys = []; + forOwn(obj, function(val, key){ + keys.push(key); + }); + return keys; + }; + + return keys; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js new file mode 100644 index 00000000..2958f6b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js @@ -0,0 +1,17 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Creates a new object where all the values are the result of calling + * `callback`. + */ + function mapValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(val, key, obj) { + output[key] = callback(val, key, obj); + }); + + return output; + } + return mapValues; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js new file mode 100644 index 00000000..73ff427c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js @@ -0,0 +1,20 @@ +define(['./forOwn'], function (forOwn) { + + /** + * checks if a object contains all given properties/values + */ + function matches(target, props){ + // can't use "object/every" because of circular dependency + var result = true; + forOwn(props, function(val, key){ + if (target[key] !== val) { + // break loop at first difference + return (result = false); + } + }); + return result; + } + + return matches; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js new file mode 100644 index 00000000..ef311dcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js @@ -0,0 +1,11 @@ +define(['../array/max', './values'], function(arrMax, values) { + + /** + * Returns maximum value inside object. + */ + function max(obj, compareFn) { + return arrMax(values(obj), compareFn); + } + + return max; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js new file mode 100644 index 00000000..d7cfedec --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js @@ -0,0 +1,38 @@ +define(['./hasOwn', '../lang/deepClone', '../lang/isObject'], function (hasOwn, deepClone, isObject) { + + /** + * Deep merge objects. + */ + function merge() { + var i = 1, + key, val, obj, target; + + // make sure we don't modify source element and it's properties + // objects are passed by reference + target = deepClone( arguments[0] ); + + while (obj = arguments[i++]) { + for (key in obj) { + if ( ! hasOwn(obj, key) ) { + continue; + } + + val = obj[key]; + + if ( isObject(val) && isObject(target[key]) ){ + // inception, deep merge objects + target[key] = merge(target[key], val); + } else { + // make sure arrays, regexp, date, objects are cloned + target[key] = deepClone(val); + } + + } + } + + return target; + } + + return merge; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js new file mode 100644 index 00000000..9fb4c1a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js @@ -0,0 +1,11 @@ +define(['../array/min', './values'], function(arrMin, values) { + + /** + * Returns minimum value inside object. + */ + function min(obj, iterator) { + return arrMin(values(obj), iterator); + } + + return min; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js new file mode 100644 index 00000000..6210b7e7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js @@ -0,0 +1,28 @@ +define(['./forOwn'], function(forOwn){ + + /** + * Combine properties from all the objects into first one. + * - This method affects target object in place, if you want to create a new Object pass an empty object as first param. + * @param {object} target Target Object + * @param {...object} objects Objects to be combined (0...n objects). + * @return {object} Target Object. + */ + function mixIn(target, objects){ + var i = 0, + n = arguments.length, + obj; + while(++i < n){ + obj = arguments[i]; + if (obj != null) { + forOwn(obj, copyProp, target); + } + } + return target; + } + + function copyProp(val, key){ + this[key] = val; + } + + return mixIn; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js new file mode 100644 index 00000000..7ed65db8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js @@ -0,0 +1,19 @@ +define(['../array/forEach'], function (forEach) { + + /** + * Create nested object if non-existent + */ + function namespace(obj, path){ + if (!path) return obj; + forEach(path.split('.'), function(key){ + if (!obj[key]) { + obj[key] = {}; + } + obj = obj[key]; + }); + return obj; + } + + return namespace; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js new file mode 100644 index 00000000..76e22bfc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js @@ -0,0 +1,18 @@ +define(function(){ + + /** + * Return a copy of the object, filtered to only have values for the whitelisted keys. + */ + function pick(obj, var_keys){ + var keys = typeof arguments[1] !== 'string'? arguments[1] : Array.prototype.slice.call(arguments, 1), + out = {}, + i = 0, key; + while (key = keys[i++]) { + out[key] = obj[key]; + } + return out; + } + + return pick; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js new file mode 100644 index 00000000..d47744bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js @@ -0,0 +1,12 @@ +define(['./map', '../function/prop'], function (map, prop) { + + /** + * Extract a list of property values. + */ + function pluck(obj, propName){ + return map(obj, prop(propName)); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js new file mode 100644 index 00000000..d3a57788 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js @@ -0,0 +1,28 @@ +define(['./forOwn', './size'], function(forOwn, size) { + + /** + * Object reduce + */ + function reduce(obj, callback, memo, thisObj) { + var initial = arguments.length > 2; + + if (!size(obj) && !initial) { + throw new Error('reduce of empty object with no initial value'); + } + + forOwn(obj, function(value, key, list) { + if (!initial) { + memo = value; + initial = true; + } + else { + memo = callback.call(thisObj, memo, value, key, list); + } + }); + + return memo; + } + + return reduce; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js new file mode 100644 index 00000000..84296428 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js @@ -0,0 +1,15 @@ +define(['./filter', '../function/makeIterator_'], function (filter, makeIterator) { + + /** + * Object reject + */ + function reject(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + return filter(obj, function(value, index, obj) { + return !callback(value, index, obj); + }, thisObj); + } + + return reject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js new file mode 100644 index 00000000..b8fa25a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js @@ -0,0 +1,17 @@ +define(['./namespace'], function (namespace) { + + /** + * set "nested" object property + */ + function set(obj, prop, val){ + var parts = (/^(.+)\.(.+)$/).exec(prop); + if (parts){ + namespace(obj, parts[1])[parts[2]] = val; + } else { + obj[prop] = val; + } + } + + return set; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js new file mode 100644 index 00000000..c6e377cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object size + */ + function size(obj) { + var count = 0; + forOwn(obj, function(){ + count++; + }); + return count; + } + + return size; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js new file mode 100644 index 00000000..1bd6fdae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js @@ -0,0 +1,20 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Object some + */ + function some(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + forOwn(obj, function(val, key) { + if (callback(val, key, obj)) { + result = true; + return false; // break + } + }); + return result; + } + + return some; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js new file mode 100644 index 00000000..787fc19a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js @@ -0,0 +1,23 @@ +define(['./has'], function (has) { + + /** + * Unset object property. + */ + function unset(obj, prop){ + if (has(obj, prop)) { + var parts = prop.split('.'), + last = parts.pop(); + while (prop = parts.shift()) { + obj = obj[prop]; + } + return (delete obj[last]); + + } else { + // if property doesn't exist treat as deleted + return true; + } + } + + return unset; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js new file mode 100644 index 00000000..b311fd09 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object values + */ + function values(obj) { + var vals = []; + forOwn(obj, function(val, key){ + vals.push(val); + }); + return vals; + } + + return values; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js new file mode 100644 index 00000000..44346127 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js @@ -0,0 +1,15 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'contains' : require('./queryString/contains'), + 'decode' : require('./queryString/decode'), + 'encode' : require('./queryString/encode'), + 'getParam' : require('./queryString/getParam'), + 'getQuery' : require('./queryString/getQuery'), + 'parse' : require('./queryString/parse'), + 'setParam' : require('./queryString/setParam') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js new file mode 100644 index 00000000..a6d11cce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js @@ -0,0 +1,12 @@ +define(['./getQuery'], function (getQuery) { + + /** + * Checks if query string contains parameter. + */ + function contains(url, paramName) { + var regex = new RegExp('(\\?|&)'+ paramName +'=', 'g'); //matches `?param=` or `¶m=` + return regex.test(getQuery(url)); + } + + return contains; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js new file mode 100644 index 00000000..02bc1609 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js @@ -0,0 +1,20 @@ +define(['../string/typecast', '../lang/isString'], function (typecast, isString) { + + /** + * Decode query string into an object of keys => vals. + */ + function decode(queryStr, shouldTypecast) { + var queryArr = (queryStr || '').replace('?', '').split('&'), + n = queryArr.length, + obj = {}, + item, val; + while (n--) { + item = queryArr[n].split('='); + val = shouldTypecast === false? item[1] : typecast(item[1]); + obj[item[0]] = isString(val)? decodeURIComponent(val) : val; + } + return obj; + } + + return decode; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js new file mode 100644 index 00000000..bd72a5b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js @@ -0,0 +1,15 @@ +define(['../object/forOwn'], function (forOwn) { + + /** + * Encode object into a query string. + */ + function encode(obj){ + var query = []; + forOwn(obj, function(val, key){ + query.push( key +'='+ encodeURIComponent(val) ); + }); + return (query.length)? '?'+ query.join('&') : ''; + } + + return encode; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js new file mode 100644 index 00000000..d9813724 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js @@ -0,0 +1,14 @@ +define(['../string/typecast', './getQuery'], function (typecast, getQuery) { + + /** + * Get query parameter value. + */ + function getParam(url, param, shouldTypecast){ + var regexp = new RegExp('(\\?|&)'+ param + '=([^&]*)'), //matches `?param=value` or `¶m=value`, value = $2 + result = regexp.exec( getQuery(url) ), + val = (result && result[2])? result[2] : null; + return shouldTypecast === false? val : typecast(val); + } + + return getParam; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js new file mode 100644 index 00000000..aa3d99f3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * Gets full query as string with all special chars decoded. + */ + function getQuery(url) { + url = url.replace(/#.*/, ''); //removes hash (to avoid getting hash query) + var queryString = /\?[a-zA-Z0-9\=\&\%\$\-\_\.\+\!\*\'\(\)\,]+/.exec(url); //valid chars according to: http://www.ietf.org/rfc/rfc1738.txt + return (queryString)? decodeURIComponent(queryString[0]) : ''; + } + + return getQuery; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js new file mode 100644 index 00000000..ac153e3f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js @@ -0,0 +1,12 @@ +define(['./decode', './getQuery'], function (decode, getQuery) { + + /** + * Get query string, parses and decodes it. + */ + function parse(url, shouldTypecast) { + return decode(getQuery(url), shouldTypecast); + } + + return parse; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js new file mode 100644 index 00000000..97081aa7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Set query string parameter value + */ + function setParam(url, paramName, value){ + url = url || ''; + + var re = new RegExp('(\\?|&)'+ paramName +'=[^&]*' ); + var param = paramName +'='+ encodeURIComponent( value ); + + if ( re.test(url) ) { + return url.replace(re, '$1'+ param); + } else { + if (url.indexOf('?') === -1) { + url += '?'; + } + if (url.indexOf('=') !== -1) { + url += '&'; + } + return url + param; + } + + } + + return setParam; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js new file mode 100644 index 00000000..b2641ee3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js @@ -0,0 +1,16 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'choice' : require('./random/choice'), + 'guid' : require('./random/guid'), + 'rand' : require('./random/rand'), + 'randBit' : require('./random/randBit'), + 'randHex' : require('./random/randHex'), + 'randInt' : require('./random/randInt'), + 'randSign' : require('./random/randSign'), + 'random' : require('./random/random') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js new file mode 100644 index 00000000..0d0c38df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js @@ -0,0 +1,14 @@ +define(['./randInt', '../lang/isArray'], function (randInt, isArray) { + + /** + * Returns a random element from the supplied arguments + * or from the array (if single argument is an array). + */ + function choice(items) { + var target = (arguments.length === 1 && isArray(items))? items : arguments; + return target[ randInt(0, target.length - 1) ]; + } + + return choice; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js new file mode 100644 index 00000000..82f3a2db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js @@ -0,0 +1,23 @@ +define(['./randHex', './choice'], function (randHex, choice) { + + /** + * Returns pseudo-random guid (UUID v4) + * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random + * by default and sequences can be predicted in some cases. See the + * "random/random" documentation for more info about it and how to replace + * the default PRNG. + */ + function guid() { + return ( + randHex(8)+'-'+ + randHex(4)+'-'+ + // v4 UUID always contain "4" at this position to specify it was + // randomly generated + '4' + randHex(3) +'-'+ + // v4 UUID always contain chars [a,b,8,9] at this position + choice(8, 9, 'a', 'b') + randHex(3)+'-'+ + randHex(12) + ); + } + return guid; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js new file mode 100644 index 00000000..b8c231dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js @@ -0,0 +1,13 @@ +define(['./random', '../number/MIN_INT', '../number/MAX_INT'], function(random, MIN_INT, MAX_INT){ + + /** + * Returns random number inside range + */ + function rand(min, max){ + min = min == null? MIN_INT : min; + max = max == null? MAX_INT : max; + return min + (max - min) * random(); + } + + return rand; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js new file mode 100644 index 00000000..b3422d2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js @@ -0,0 +1,11 @@ +define(['./random'], function (random) { + + /** + * Returns random bit (0 or 1) + */ + function randomBit() { + return random() > 0.5? 1 : 0; + } + + return randomBit; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js new file mode 100644 index 00000000..6e9bf1c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js @@ -0,0 +1,19 @@ +define(['./choice'], function (choice) { + + var _chars = '0123456789abcdef'.split(''); + + /** + * Returns a random hexadecimal string + */ + function randHex(size){ + size = size && size > 0? size : 6; + var str = ''; + while (size--) { + str += choice(_chars); + } + return str; + } + + return randHex; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js new file mode 100644 index 00000000..1750e9de --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js @@ -0,0 +1,16 @@ +define(['../number/MIN_INT', '../number/MAX_INT', './rand'], function(MIN_INT, MAX_INT, rand){ + + /** + * Gets random integer inside range or snap to min/max values. + */ + function randInt(min, max){ + min = min == null? MIN_INT : ~~min; + max = max == null? MAX_INT : ~~max; + // can't be max + 0.5 otherwise it will round up if `rand` + // returns `max` causing it to overflow range. + // -0.5 and + 0.49 are required to avoid bias caused by rounding + return Math.round( rand(min - 0.5, max + 0.499999999999) ); + } + + return randInt; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js new file mode 100644 index 00000000..4141cdf6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js @@ -0,0 +1,11 @@ +define(['./random'], function (random) { + + /** + * Returns random sign (-1 or 1) + */ + function randomSign() { + return random() > 0.5? 1 : -1; + } + + return randomSign; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js new file mode 100644 index 00000000..4270822e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js @@ -0,0 +1,18 @@ +define(function () { + + /** + * Just a wrapper to Math.random. No methods inside mout/random should call + * Math.random() directly so we can inject the pseudo-random number + * generator if needed (ie. in case we need a seeded random or a better + * algorithm than the native one) + */ + function random(){ + return random.get(); + } + + // we expose the method so it can be swapped if needed + random.get = Math.random; + + return random; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js new file mode 100644 index 00000000..3f5fd804 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js @@ -0,0 +1,45 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'WHITE_SPACES' : require('./string/WHITE_SPACES'), + 'camelCase' : require('./string/camelCase'), + 'contains' : require('./string/contains'), + 'crop' : require('./string/crop'), + 'endsWith' : require('./string/endsWith'), + 'escapeHtml' : require('./string/escapeHtml'), + 'escapeRegExp' : require('./string/escapeRegExp'), + 'escapeUnicode' : require('./string/escapeUnicode'), + 'hyphenate' : require('./string/hyphenate'), + 'interpolate' : require('./string/interpolate'), + 'lowerCase' : require('./string/lowerCase'), + 'lpad' : require('./string/lpad'), + 'ltrim' : require('./string/ltrim'), + 'makePath' : require('./string/makePath'), + 'normalizeLineBreaks' : require('./string/normalizeLineBreaks'), + 'pascalCase' : require('./string/pascalCase'), + 'properCase' : require('./string/properCase'), + 'removeNonASCII' : require('./string/removeNonASCII'), + 'removeNonWord' : require('./string/removeNonWord'), + 'repeat' : require('./string/repeat'), + 'replace' : require('./string/replace'), + 'replaceAccents' : require('./string/replaceAccents'), + 'rpad' : require('./string/rpad'), + 'rtrim' : require('./string/rtrim'), + 'sentenceCase' : require('./string/sentenceCase'), + 'slugify' : require('./string/slugify'), + 'startsWith' : require('./string/startsWith'), + 'stripHtmlTags' : require('./string/stripHtmlTags'), + 'trim' : require('./string/trim'), + 'truncate' : require('./string/truncate'), + 'typecast' : require('./string/typecast'), + 'unCamelCase' : require('./string/unCamelCase'), + 'underscore' : require('./string/underscore'), + 'unescapeHtml' : require('./string/unescapeHtml'), + 'unescapeUnicode' : require('./string/unescapeUnicode'), + 'unhyphenate' : require('./string/unhyphenate'), + 'upperCase' : require('./string/upperCase') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js new file mode 100644 index 00000000..e830d86d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js @@ -0,0 +1,12 @@ +define(function() { + /** + * Contains all Unicode white-spaces. Taken from + * http://en.wikipedia.org/wiki/Whitespace_character. + */ + return [ + ' ', '\n', '\r', '\t', '\f', '\v', '\u00A0', '\u1680', '\u180E', + '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', + '\u2007', '\u2008', '\u2009', '\u200A', '\u2028', '\u2029', '\u202F', + '\u205F', '\u3000' + ]; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js new file mode 100644 index 00000000..02e6c04d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js @@ -0,0 +1,16 @@ +define(['../lang/toString', './replaceAccents', './removeNonWord', './upperCase', './lowerCase'], function(toString, replaceAccents, removeNonWord, upperCase, lowerCase){ + /** + * Convert string to camelCase text. + */ + function camelCase(str){ + str = toString(str); + str = replaceAccents(str); + str = removeNonWord(str) + .replace(/[\-_]/g, ' ') //convert all hyphens and underscores to spaces + .replace(/\s[a-z]/g, upperCase) //convert first char of each word to UPPERCASE + .replace(/\s+/g, '') //remove spaces + .replace(/^[A-Z]/g, lowerCase); //convert first char to lowercase + return str; + } + return camelCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js new file mode 100644 index 00000000..825b5a5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js @@ -0,0 +1,14 @@ +define(['../lang/toString'], function(toString) { + + /** + * Searches for a given substring + */ + function contains(str, substring, fromIndex){ + str = toString(str); + substring = toString(substring); + return str.indexOf(substring, fromIndex) !== -1; + } + + return contains; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js new file mode 100644 index 00000000..3c073f05 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './truncate'], function (toString, truncate) { + /** + * Truncate string at full words. + */ + function crop(str, maxChars, append) { + str = toString(str); + return truncate(str, maxChars, append, true); + } + + return crop; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js new file mode 100644 index 00000000..31a73f20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function(toString) { + /** + * Checks if string ends with specified suffix. + */ + function endsWith(str, suffix) { + str = toString(str); + suffix = toString(suffix); + + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + + return endsWith; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js new file mode 100644 index 00000000..de34b61b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function(toString) { + + /** + * Escapes a string for insertion into HTML. + */ + function escapeHtml(str){ + str = toString(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + return str; + } + + return escapeHtml; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js new file mode 100644 index 00000000..32facac0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js @@ -0,0 +1,15 @@ +define(['../lang/toString'], function(toString) { + + var ESCAPE_CHARS = /[\\.+*?\^$\[\](){}\/'#]/g; + + /** + * Escape RegExp string chars. + */ + function escapeRegExp(str) { + str = toString(str); + return str.replace(ESCAPE_CHARS,'\\$&'); + } + + return escapeRegExp; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js new file mode 100644 index 00000000..bd5e8c4c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js @@ -0,0 +1,21 @@ +define(['../lang/toString'], function(toString) { + + /** + * Escape string into unicode sequences + */ + function escapeUnicode(str, shouldEscapePrintable){ + str = toString(str); + return str.replace(/[\s\S]/g, function(ch){ + // skip printable ASCII chars if we should not escape them + if (!shouldEscapePrintable && (/[\x20-\x7E]/).test(ch)) { + return ch; + } + // we use "000" and slice(-4) for brevity, need to pad zeros, + // unicode escape always have 4 chars after "\u" + return '\\u'+ ('000'+ ch.charCodeAt(0).toString(16)).slice(-4); + }); + } + + return escapeUnicode; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js new file mode 100644 index 00000000..679c405c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js @@ -0,0 +1,12 @@ +define(['../lang/toString', './slugify', './unCamelCase'], function(toString, slugify, unCamelCase){ + /** + * Replaces spaces with hyphens, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function hyphenate(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "-"); + } + + return hyphenate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js new file mode 100644 index 00000000..ecb8ba80 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function(toString) { + + var stache = /\{\{(\w+)\}\}/g; //mustache-like + + /** + * String interpolation + */ + function interpolate(template, replacements, syntax){ + template = toString(template); + var replaceFn = function(match, prop){ + return (prop in replacements)? toString(replacements[prop]) : ''; + }; + return template.replace(syntax || stache, replaceFn); + } + + return interpolate; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js new file mode 100644 index 00000000..b045d69c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * "Safer" String.toLowerCase() + */ + function lowerCase(str){ + str = toString(str); + return str.toLowerCase(); + } + + return lowerCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js new file mode 100644 index 00000000..ea4f5fbf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js @@ -0,0 +1,16 @@ +define(['../lang/toString', './repeat'], function(toString, repeat) { + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function lpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + + return ((str.length < minLen) + ? repeat(ch, minLen - str.length) + str : str); + } + + return lpad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js new file mode 100644 index 00000000..477df953 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js @@ -0,0 +1,33 @@ +define(['../lang/toString', './WHITE_SPACES'], function(toString, WHITE_SPACES){ + /** + * Remove chars from beginning of string. + */ + function ltrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var start = 0, + len = str.length, + charLen = chars.length, + found = true, + i, c; + + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + + return (start >= len) ? '' : str.substr(start, len); + } + + return ltrim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js new file mode 100644 index 00000000..7aa7baba --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js @@ -0,0 +1,13 @@ +define(['../array/join'], function(join){ + + /** + * Group arguments as path segments, if any of the args is `null` or an + * empty string it will be ignored from resulting path. + */ + function makePath(var_args){ + var result = join(Array.prototype.slice.call(arguments), '/'); + return result.replace(/\/{2,}/g, '/'); + } + + return makePath; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js new file mode 100644 index 00000000..44e4194f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function (toString) { + + /** + * Convert line-breaks from DOS/MAC to a single standard (UNIX by default) + */ + function normalizeLineBreaks(str, lineEnd) { + str = toString(str); + lineEnd = lineEnd || '\n'; + + return str + .replace(/\r\n/g, lineEnd) // DOS + .replace(/\r/g, lineEnd) // Mac + .replace(/\n/g, lineEnd); // Unix + } + + return normalizeLineBreaks; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js new file mode 100644 index 00000000..ead9ead4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './camelCase', './upperCase'], function(toString, camelCase, upperCase){ + /** + * camelCase + UPPERCASE first char + */ + function pascalCase(str){ + str = toString(str); + return camelCase(str).replace(/^[a-z]/, upperCase); + } + + return pascalCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js new file mode 100644 index 00000000..2987b507 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './lowerCase', './upperCase'], function(toString, lowerCase, upperCase){ + /** + * UPPERCASE first char of each word. + */ + function properCase(str){ + str = toString(str); + return lowerCase(str).replace(/^\w|\s\w/g, upperCase); + } + + return properCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js new file mode 100644 index 00000000..4905869d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js @@ -0,0 +1,14 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove non-printable ASCII chars + */ + function removeNonASCII(str){ + str = toString(str); + + // Matches non-printable ASCII chars - + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + return str.replace(/[^\x20-\x7E]/g, ''); + } + + return removeNonASCII; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js new file mode 100644 index 00000000..2b1a2040 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove non-word chars. + */ + function removeNonWord(str){ + str = toString(str); + return str.replace(/[^0-9a-zA-Z\xC0-\xFF \-_]/g, ''); + } + + return removeNonWord; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js new file mode 100644 index 00000000..02f5659f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function(toString){ + + /** + * Repeat string n times + */ + function repeat(str, n){ + str = toString(str); + return (new Array(n + 1)).join(str); + } + + return repeat; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js new file mode 100644 index 00000000..8b762fdc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js @@ -0,0 +1,32 @@ +define(['../lang/toString', '../lang/toArray'], function (toString, toArray) { + + /** + * Replace string(s) with the replacement(s) in the source. + */ + function replace(str, search, replacements) { + str = toString(str); + search = toArray(search); + replacements = toArray(replacements); + + var searchLength = search.length, + replacementsLength = replacements.length; + + if (replacementsLength !== 1 && searchLength !== replacementsLength) { + throw new Error('Unequal number of searches and replacements'); + } + + var i = -1; + while (++i < searchLength) { + // Use the first replacement for all searches if only one + // replacement is provided + str = str.replace( + search[i], + replacements[(replacementsLength === 1) ? 0 : i]); + } + + return str; + } + + return replace; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js new file mode 100644 index 00000000..3a63f55a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js @@ -0,0 +1,36 @@ +define(['../lang/toString'], function(toString){ + /** + * Replaces all accented chars with regular ones + */ + function replaceAccents(str){ + str = toString(str); + + // verifies if the String has accents and replace them + if (str.search(/[\xC0-\xFF]/g) > -1) { + str = str + .replace(/[\xC0-\xC5]/g, "A") + .replace(/[\xC6]/g, "AE") + .replace(/[\xC7]/g, "C") + .replace(/[\xC8-\xCB]/g, "E") + .replace(/[\xCC-\xCF]/g, "I") + .replace(/[\xD0]/g, "D") + .replace(/[\xD1]/g, "N") + .replace(/[\xD2-\xD6\xD8]/g, "O") + .replace(/[\xD9-\xDC]/g, "U") + .replace(/[\xDD]/g, "Y") + .replace(/[\xDE]/g, "P") + .replace(/[\xE0-\xE5]/g, "a") + .replace(/[\xE6]/g, "ae") + .replace(/[\xE7]/g, "c") + .replace(/[\xE8-\xEB]/g, "e") + .replace(/[\xEC-\xEF]/g, "i") + .replace(/[\xF1]/g, "n") + .replace(/[\xF2-\xF6\xF8]/g, "o") + .replace(/[\xF9-\xFC]/g, "u") + .replace(/[\xFE]/g, "p") + .replace(/[\xFD\xFF]/g, "y"); + } + return str; + } + return replaceAccents; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js new file mode 100644 index 00000000..2efd9c88 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js @@ -0,0 +1,14 @@ +define(['../lang/toString', './repeat'], function (toString, repeat) { + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function rpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + return (str.length < minLen)? str + repeat(ch, minLen - str.length) : str; + } + + return rpad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js new file mode 100644 index 00000000..a4cc282d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js @@ -0,0 +1,32 @@ +define(['../lang/toString', './WHITE_SPACES'], function(toString, WHITE_SPACES){ + /** + * Remove chars from end of string. + */ + function rtrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var end = str.length - 1, + charLen = chars.length, + found = true, + i, c; + + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + + return (end >= 0) ? str.substring(0, end + 1) : ''; + } + + return rtrim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js new file mode 100644 index 00000000..cfe45af5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js @@ -0,0 +1,13 @@ +define(['../lang/toString', './lowerCase', './upperCase'], function(toString, lowerCase, upperCase){ + /** + * UPPERCASE first char of each sentence and lowercase other chars. + */ + function sentenceCase(str){ + str = toString(str); + + // Replace first char of each sentence (new line or after '.\s+') to + // UPPERCASE + return lowerCase(str).replace(/(^\w)|\.\s+(\w)/gm, upperCase); + } + return sentenceCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js new file mode 100644 index 00000000..c6d68c7e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js @@ -0,0 +1,21 @@ +define(['../lang/toString', './replaceAccents', './removeNonWord', './trim'], function(toString, replaceAccents, removeNonWord, trim){ + /** + * Convert to lower case, remove accents, remove non-word chars and + * replace spaces with the specified delimeter. + * Does not split camelCase text. + */ + function slugify(str, delimeter){ + str = toString(str); + + if (delimeter == null) { + delimeter = "-"; + } + str = replaceAccents(str); + str = removeNonWord(str); + str = trim(str) //should come after removeNonWord + .replace(/ +/g, delimeter) //replace spaces with delimeter + .toLowerCase(); + return str; + } + return slugify; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js new file mode 100644 index 00000000..88ae5453 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function (toString) { + /** + * Checks if string starts with specified prefix. + */ + function startsWith(str, prefix) { + str = toString(str); + prefix = toString(prefix); + + return str.indexOf(prefix) === 0; + } + + return startsWith; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js new file mode 100644 index 00000000..e8da956d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove HTML tags from string. + */ + function stripHtmlTags(str){ + str = toString(str); + + return str.replace(/<[^>]*>/g, ''); + } + return stripHtmlTags; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js new file mode 100644 index 00000000..55526041 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js @@ -0,0 +1,12 @@ +define(['../lang/toString', './WHITE_SPACES', './ltrim', './rtrim'], function(toString, WHITE_SPACES, ltrim, rtrim){ + /** + * Remove white-spaces from beginning and end of string. + */ + function trim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + return ltrim(rtrim(str, chars), chars); + } + + return trim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js new file mode 100644 index 00000000..34000d9f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js @@ -0,0 +1,20 @@ +define(['../lang/toString', './trim'], function(toString, trim){ + /** + * Limit number of chars. + */ + function truncate(str, maxChars, append, onlyFullWords){ + str = toString(str); + append = append || '...'; + maxChars = onlyFullWords? maxChars + 1 : maxChars; + + str = trim(str); + if(str.length <= maxChars){ + return str; + } + str = str.substr(0, maxChars - append.length); + //crop at last space or remove trailing whitespace + str = onlyFullWords? str.substr(0, str.lastIndexOf(' ')) : trim(str); + return str + append; + } + return truncate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js new file mode 100644 index 00000000..a7c83153 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js @@ -0,0 +1,29 @@ +define(function () { + + var UNDEF; + + /** + * Parses string and convert it into a native value. + */ + function typecast(val) { + var r; + if ( val === null || val === 'null' ) { + r = null; + } else if ( val === 'true' ) { + r = true; + } else if ( val === 'false' ) { + r = false; + } else if ( val === UNDEF || val === 'undefined' ) { + r = UNDEF; + } else if ( val === '' || isNaN(val) ) { + //isNaN('') returns false + r = val; + } else { + //parseFloat(null || '') returns NaN + r = parseFloat(val); + } + return r; + } + + return typecast; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js new file mode 100644 index 00000000..eeef39b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js @@ -0,0 +1,23 @@ +define(['../lang/toString'], function(toString){ + + var CAMEL_CASE_BORDER = /([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g; + + /** + * Add space between camelCase text. + */ + function unCamelCase(str, delimiter){ + if (delimiter == null) { + delimiter = ' '; + } + + function join(str, c1, c2) { + return c1 + delimiter + c2; + } + + str = toString(str); + str = str.replace(CAMEL_CASE_BORDER, join); + str = str.toLowerCase(); //add space between camelCase text + return str; + } + return unCamelCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js new file mode 100644 index 00000000..75dd4649 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './slugify', './unCamelCase'], function(toString, slugify, unCamelCase){ + /** + * Replaces spaces with underscores, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function underscore(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "_"); + } + return underscore; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js new file mode 100644 index 00000000..173c69c2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function (toString) { + + /** + * Unescapes HTML special chars + */ + function unescapeHtml(str){ + str = toString(str) + .replace(/&/g , '&') + .replace(/</g , '<') + .replace(/>/g , '>') + .replace(/'/g , "'") + .replace(/"/g, '"'); + return str; + } + + return unescapeHtml; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js new file mode 100644 index 00000000..d4a7ba1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js @@ -0,0 +1,16 @@ +define(['../lang/toString'], function(toString) { + + /** + * Unescape unicode char sequences + */ + function unescapeUnicode(str){ + str = toString(str); + return str.replace(/\\u[0-9a-f]{4}/g, function(ch){ + var code = parseInt(ch.slice(2), 16); + return String.fromCharCode(code); + }); + } + + return unescapeUnicode; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js new file mode 100644 index 00000000..6ac2fa4c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js @@ -0,0 +1,10 @@ +define(['../lang/toString'], function(toString){ + /** + * Replaces hyphens with spaces. (only hyphens between word chars) + */ + function unhyphenate(str){ + str = toString(str); + return str.replace(/(\w)(-)(\w)/g, '$1 $3'); + } + return unhyphenate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js new file mode 100644 index 00000000..8b2073e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js @@ -0,0 +1,10 @@ +define(['../lang/toString'], function(toString){ + /** + * "Safer" String.toUpperCase() + */ + function upperCase(str){ + str = toString(str); + return str.toUpperCase(); + } + return upperCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js new file mode 100644 index 00000000..67c90685 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js @@ -0,0 +1,12 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'convert' : require('./time/convert'), + 'now' : require('./time/now'), + 'parseMs' : require('./time/parseMs'), + 'toTimeString' : require('./time/toTimeString') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js new file mode 100644 index 00000000..2de0cf2e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js @@ -0,0 +1,41 @@ +define(function () { + + /** + * convert time into another unit + */ + function convert(val, sourceUnitName, destinationUnitName){ + destinationUnitName = destinationUnitName || 'ms'; + return (val * getUnit(sourceUnitName)) / getUnit(destinationUnitName); + } + + + //TODO: maybe extract to a separate module + function getUnit(unitName){ + switch(unitName){ + case 'ms': + case 'millisecond': + return 1; + case 's': + case 'second': + return 1000; + case 'm': + case 'minute': + return 60000; + case 'h': + case 'hour': + return 3600000; + case 'd': + case 'day': + return 86400000; + case 'w': + case 'week': + return 604800000; + default: + throw new Error('"'+ unitName + '" is not a valid unit'); + } + } + + + return convert; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js new file mode 100644 index 00000000..a3a38bcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js @@ -0,0 +1,12 @@ +define(function () { + + /** + * Get current time in miliseconds + */ + var now = (typeof Date.now === 'function')? Date.now : function(){ + return +(new Date()); + }; + + return now; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js new file mode 100644 index 00000000..964929ae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js @@ -0,0 +1,17 @@ +define(['../math/countSteps'], function(countSteps){ + + /** + * Parse timestamp into an object. + */ + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + return parseMs; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js new file mode 100644 index 00000000..edf18218 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js @@ -0,0 +1,23 @@ +define(['../math/countSteps', '../number/pad'], function(countSteps, pad){ + + var HOUR = 3600000, + MINUTE = 60000, + SECOND = 1000; + + /** + * Format timestamp into a time string. + */ + function toTimeString(ms){ + var h = ms < HOUR ? 0 : countSteps(ms, HOUR), + m = ms < MINUTE ? 0 : countSteps(ms, MINUTE, 60), + s = ms < SECOND ? 0 : countSteps(ms, SECOND, 60), + str = ''; + + str += h? h + ':' : ''; + str += pad(m, 2) + ':'; + str += pad(s, 2); + + return str; + } + return toTimeString; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string.js new file mode 100644 index 00000000..7f0ca3bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string.js @@ -0,0 +1,45 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'WHITE_SPACES' : require('./string/WHITE_SPACES'), + 'camelCase' : require('./string/camelCase'), + 'contains' : require('./string/contains'), + 'crop' : require('./string/crop'), + 'endsWith' : require('./string/endsWith'), + 'escapeHtml' : require('./string/escapeHtml'), + 'escapeRegExp' : require('./string/escapeRegExp'), + 'escapeUnicode' : require('./string/escapeUnicode'), + 'hyphenate' : require('./string/hyphenate'), + 'interpolate' : require('./string/interpolate'), + 'lowerCase' : require('./string/lowerCase'), + 'lpad' : require('./string/lpad'), + 'ltrim' : require('./string/ltrim'), + 'makePath' : require('./string/makePath'), + 'normalizeLineBreaks' : require('./string/normalizeLineBreaks'), + 'pascalCase' : require('./string/pascalCase'), + 'properCase' : require('./string/properCase'), + 'removeNonASCII' : require('./string/removeNonASCII'), + 'removeNonWord' : require('./string/removeNonWord'), + 'repeat' : require('./string/repeat'), + 'replace' : require('./string/replace'), + 'replaceAccents' : require('./string/replaceAccents'), + 'rpad' : require('./string/rpad'), + 'rtrim' : require('./string/rtrim'), + 'sentenceCase' : require('./string/sentenceCase'), + 'slugify' : require('./string/slugify'), + 'startsWith' : require('./string/startsWith'), + 'stripHtmlTags' : require('./string/stripHtmlTags'), + 'trim' : require('./string/trim'), + 'truncate' : require('./string/truncate'), + 'typecast' : require('./string/typecast'), + 'unCamelCase' : require('./string/unCamelCase'), + 'underscore' : require('./string/underscore'), + 'unescapeHtml' : require('./string/unescapeHtml'), + 'unescapeUnicode' : require('./string/unescapeUnicode'), + 'unhyphenate' : require('./string/unhyphenate'), + 'upperCase' : require('./string/upperCase') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js new file mode 100644 index 00000000..03e01254 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js @@ -0,0 +1,12 @@ + + /** + * Contains all Unicode white-spaces. Taken from + * http://en.wikipedia.org/wiki/Whitespace_character. + */ + module.exports = [ + ' ', '\n', '\r', '\t', '\f', '\v', '\u00A0', '\u1680', '\u180E', + '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', + '\u2007', '\u2008', '\u2009', '\u200A', '\u2028', '\u2029', '\u202F', + '\u205F', '\u3000' + ]; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js new file mode 100644 index 00000000..aadb69a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js @@ -0,0 +1,20 @@ +var toString = require('../lang/toString'); +var replaceAccents = require('./replaceAccents'); +var removeNonWord = require('./removeNonWord'); +var upperCase = require('./upperCase'); +var lowerCase = require('./lowerCase'); + /** + * Convert string to camelCase text. + */ + function camelCase(str){ + str = toString(str); + str = replaceAccents(str); + str = removeNonWord(str) + .replace(/[\-_]/g, ' ') //convert all hyphens and underscores to spaces + .replace(/\s[a-z]/g, upperCase) //convert first char of each word to UPPERCASE + .replace(/\s+/g, '') //remove spaces + .replace(/^[A-Z]/g, lowerCase); //convert first char to lowercase + return str; + } + module.exports = camelCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js new file mode 100644 index 00000000..cb22cae4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); + + /** + * Searches for a given substring + */ + function contains(str, substring, fromIndex){ + str = toString(str); + substring = toString(substring); + return str.indexOf(substring, fromIndex) !== -1; + } + + module.exports = contains; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js new file mode 100644 index 00000000..53b93b49 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js @@ -0,0 +1,12 @@ +var toString = require('../lang/toString'); +var truncate = require('./truncate'); + /** + * Truncate string at full words. + */ + function crop(str, maxChars, append) { + str = toString(str); + return truncate(str, maxChars, append, true); + } + + module.exports = crop; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js new file mode 100644 index 00000000..d504e9dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + /** + * Checks if string ends with specified suffix. + */ + function endsWith(str, suffix) { + str = toString(str); + suffix = toString(suffix); + + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + + module.exports = endsWith; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js new file mode 100644 index 00000000..e67c4b21 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Escapes a string for insertion into HTML. + */ + function escapeHtml(str){ + str = toString(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + return str; + } + + module.exports = escapeHtml; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js new file mode 100644 index 00000000..70cb84ff --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); + + var ESCAPE_CHARS = /[\\.+*?\^$\[\](){}\/'#]/g; + + /** + * Escape RegExp string chars. + */ + function escapeRegExp(str) { + str = toString(str); + return str.replace(ESCAPE_CHARS,'\\$&'); + } + + module.exports = escapeRegExp; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js new file mode 100644 index 00000000..ec649adf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js @@ -0,0 +1,21 @@ +var toString = require('../lang/toString'); + + /** + * Escape string into unicode sequences + */ + function escapeUnicode(str, shouldEscapePrintable){ + str = toString(str); + return str.replace(/[\s\S]/g, function(ch){ + // skip printable ASCII chars if we should not escape them + if (!shouldEscapePrintable && (/[\x20-\x7E]/).test(ch)) { + return ch; + } + // we use "000" and slice(-4) for brevity, need to pad zeros, + // unicode escape always have 4 chars after "\u" + return '\\u'+ ('000'+ ch.charCodeAt(0).toString(16)).slice(-4); + }); + } + + module.exports = escapeUnicode; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js new file mode 100644 index 00000000..95e32436 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); +var slugify = require('./slugify'); +var unCamelCase = require('./unCamelCase'); + /** + * Replaces spaces with hyphens, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function hyphenate(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "-"); + } + + module.exports = hyphenate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js new file mode 100644 index 00000000..ac88fac2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + var stache = /\{\{(\w+)\}\}/g; //mustache-like + + /** + * String interpolation + */ + function interpolate(template, replacements, syntax){ + template = toString(template); + var replaceFn = function(match, prop){ + return (prop in replacements)? toString(replacements[prop]) : ''; + }; + return template.replace(syntax || stache, replaceFn); + } + + module.exports = interpolate; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js new file mode 100644 index 00000000..30bb7ad9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * "Safer" String.toLowerCase() + */ + function lowerCase(str){ + str = toString(str); + return str.toLowerCase(); + } + + module.exports = lowerCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js new file mode 100644 index 00000000..694d711e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js @@ -0,0 +1,17 @@ +var toString = require('../lang/toString'); +var repeat = require('./repeat'); + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function lpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + + return ((str.length < minLen) + ? repeat(ch, minLen - str.length) + str : str); + } + + module.exports = lpad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js new file mode 100644 index 00000000..23d7b33f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js @@ -0,0 +1,34 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); + /** + * Remove chars from beginning of string. + */ + function ltrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var start = 0, + len = str.length, + charLen = chars.length, + found = true, + i, c; + + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + + return (start >= len) ? '' : str.substr(start, len); + } + + module.exports = ltrim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js new file mode 100644 index 00000000..69aef310 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js @@ -0,0 +1,13 @@ +var join = require('../array/join'); + + /** + * Group arguments as path segments, if any of the args is `null` or an + * empty string it will be ignored from resulting path. + */ + function makePath(var_args){ + var result = join(Array.prototype.slice.call(arguments), '/'); + return result.replace(/\/{2,}/g, '/'); + } + + module.exports = makePath; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js new file mode 100644 index 00000000..8a8dccfd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Convert line-breaks from DOS/MAC to a single standard (UNIX by default) + */ + function normalizeLineBreaks(str, lineEnd) { + str = toString(str); + lineEnd = lineEnd || '\n'; + + return str + .replace(/\r\n/g, lineEnd) // DOS + .replace(/\r/g, lineEnd) // Mac + .replace(/\n/g, lineEnd); // Unix + } + + module.exports = normalizeLineBreaks; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js new file mode 100644 index 00000000..fd190353 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var camelCase = require('./camelCase'); +var upperCase = require('./upperCase'); + /** + * camelCase + UPPERCASE first char + */ + function pascalCase(str){ + str = toString(str); + return camelCase(str).replace(/^[a-z]/, upperCase); + } + + module.exports = pascalCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js new file mode 100644 index 00000000..61636be4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var lowerCase = require('./lowerCase'); +var upperCase = require('./upperCase'); + /** + * UPPERCASE first char of each word. + */ + function properCase(str){ + str = toString(str); + return lowerCase(str).replace(/^\w|\s\w/g, upperCase); + } + + module.exports = properCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js new file mode 100644 index 00000000..fb463816 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); + /** + * Remove non-printable ASCII chars + */ + function removeNonASCII(str){ + str = toString(str); + + // Matches non-printable ASCII chars - + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + return str.replace(/[^\x20-\x7E]/g, ''); + } + + module.exports = removeNonASCII; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js new file mode 100644 index 00000000..bdd153b9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * Remove non-word chars. + */ + function removeNonWord(str){ + str = toString(str); + return str.replace(/[^0-9a-zA-Z\xC0-\xFF \-_]/g, ''); + } + + module.exports = removeNonWord; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js new file mode 100644 index 00000000..0f9b4754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + + /** + * Repeat string n times + */ + function repeat(str, n){ + str = toString(str); + return (new Array(n + 1)).join(str); + } + + module.exports = repeat; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js new file mode 100644 index 00000000..14433fc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js @@ -0,0 +1,33 @@ +var toString = require('../lang/toString'); +var toArray = require('../lang/toArray'); + + /** + * Replace string(s) with the replacement(s) in the source. + */ + function replace(str, search, replacements) { + str = toString(str); + search = toArray(search); + replacements = toArray(replacements); + + var searchLength = search.length, + replacementsLength = replacements.length; + + if (replacementsLength !== 1 && searchLength !== replacementsLength) { + throw new Error('Unequal number of searches and replacements'); + } + + var i = -1; + while (++i < searchLength) { + // Use the first replacement for all searches if only one + // replacement is provided + str = str.replace( + search[i], + replacements[(replacementsLength === 1) ? 0 : i]); + } + + return str; + } + + module.exports = replace; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js new file mode 100644 index 00000000..bb221265 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js @@ -0,0 +1,36 @@ +var toString = require('../lang/toString'); + /** + * Replaces all accented chars with regular ones + */ + function replaceAccents(str){ + str = toString(str); + + // verifies if the String has accents and replace them + if (str.search(/[\xC0-\xFF]/g) > -1) { + str = str + .replace(/[\xC0-\xC5]/g, "A") + .replace(/[\xC6]/g, "AE") + .replace(/[\xC7]/g, "C") + .replace(/[\xC8-\xCB]/g, "E") + .replace(/[\xCC-\xCF]/g, "I") + .replace(/[\xD0]/g, "D") + .replace(/[\xD1]/g, "N") + .replace(/[\xD2-\xD6\xD8]/g, "O") + .replace(/[\xD9-\xDC]/g, "U") + .replace(/[\xDD]/g, "Y") + .replace(/[\xDE]/g, "P") + .replace(/[\xE0-\xE5]/g, "a") + .replace(/[\xE6]/g, "ae") + .replace(/[\xE7]/g, "c") + .replace(/[\xE8-\xEB]/g, "e") + .replace(/[\xEC-\xEF]/g, "i") + .replace(/[\xF1]/g, "n") + .replace(/[\xF2-\xF6\xF8]/g, "o") + .replace(/[\xF9-\xFC]/g, "u") + .replace(/[\xFE]/g, "p") + .replace(/[\xFD\xFF]/g, "y"); + } + return str; + } + module.exports = replaceAccents; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js new file mode 100644 index 00000000..99f6378d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var repeat = require('./repeat'); + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function rpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + return (str.length < minLen)? str + repeat(ch, minLen - str.length) : str; + } + + module.exports = rpad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js new file mode 100644 index 00000000..66ba80e9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js @@ -0,0 +1,33 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); + /** + * Remove chars from end of string. + */ + function rtrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var end = str.length - 1, + charLen = chars.length, + found = true, + i, c; + + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + + return (end >= 0) ? str.substring(0, end + 1) : ''; + } + + module.exports = rtrim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js new file mode 100644 index 00000000..354104c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var lowerCase = require('./lowerCase'); +var upperCase = require('./upperCase'); + /** + * UPPERCASE first char of each sentence and lowercase other chars. + */ + function sentenceCase(str){ + str = toString(str); + + // Replace first char of each sentence (new line or after '.\s+') to + // UPPERCASE + return lowerCase(str).replace(/(^\w)|\.\s+(\w)/gm, upperCase); + } + module.exports = sentenceCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js new file mode 100644 index 00000000..142f0d9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js @@ -0,0 +1,24 @@ +var toString = require('../lang/toString'); +var replaceAccents = require('./replaceAccents'); +var removeNonWord = require('./removeNonWord'); +var trim = require('./trim'); + /** + * Convert to lower case, remove accents, remove non-word chars and + * replace spaces with the specified delimeter. + * Does not split camelCase text. + */ + function slugify(str, delimeter){ + str = toString(str); + + if (delimeter == null) { + delimeter = "-"; + } + str = replaceAccents(str); + str = removeNonWord(str); + str = trim(str) //should come after removeNonWord + .replace(/ +/g, delimeter) //replace spaces with delimeter + .toLowerCase(); + return str; + } + module.exports = slugify; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js new file mode 100644 index 00000000..bce2bd20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + /** + * Checks if string starts with specified prefix. + */ + function startsWith(str, prefix) { + str = toString(str); + prefix = toString(prefix); + + return str.indexOf(prefix) === 0; + } + + module.exports = startsWith; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js new file mode 100644 index 00000000..01d17b0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * Remove HTML tags from string. + */ + function stripHtmlTags(str){ + str = toString(str); + + return str.replace(/<[^>]*>/g, ''); + } + module.exports = stripHtmlTags; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js new file mode 100644 index 00000000..9652b0c7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); +var ltrim = require('./ltrim'); +var rtrim = require('./rtrim'); + /** + * Remove white-spaces from beginning and end of string. + */ + function trim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + return ltrim(rtrim(str, chars), chars); + } + + module.exports = trim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js new file mode 100644 index 00000000..a98d6c7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js @@ -0,0 +1,21 @@ +var toString = require('../lang/toString'); +var trim = require('./trim'); + /** + * Limit number of chars. + */ + function truncate(str, maxChars, append, onlyFullWords){ + str = toString(str); + append = append || '...'; + maxChars = onlyFullWords? maxChars + 1 : maxChars; + + str = trim(str); + if(str.length <= maxChars){ + return str; + } + str = str.substr(0, maxChars - append.length); + //crop at last space or remove trailing whitespace + str = onlyFullWords? str.substr(0, str.lastIndexOf(' ')) : trim(str); + return str + append; + } + module.exports = truncate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js new file mode 100644 index 00000000..c1386a49 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js @@ -0,0 +1,29 @@ + + + var UNDEF; + + /** + * Parses string and convert it into a native value. + */ + function typecast(val) { + var r; + if ( val === null || val === 'null' ) { + r = null; + } else if ( val === 'true' ) { + r = true; + } else if ( val === 'false' ) { + r = false; + } else if ( val === UNDEF || val === 'undefined' ) { + r = UNDEF; + } else if ( val === '' || isNaN(val) ) { + //isNaN('') returns false + r = val; + } else { + //parseFloat(null || '') returns NaN + r = parseFloat(val); + } + return r; + } + + module.exports = typecast; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js new file mode 100644 index 00000000..4968f378 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js @@ -0,0 +1,23 @@ +var toString = require('../lang/toString'); + + var CAMEL_CASE_BORDER = /([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g; + + /** + * Add space between camelCase text. + */ + function unCamelCase(str, delimiter){ + if (delimiter == null) { + delimiter = ' '; + } + + function join(str, c1, c2) { + return c1 + delimiter + c2; + } + + str = toString(str); + str = str.replace(CAMEL_CASE_BORDER, join); + str = str.toLowerCase(); //add space between camelCase text + return str; + } + module.exports = unCamelCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js new file mode 100644 index 00000000..ebd6e2b7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var slugify = require('./slugify'); +var unCamelCase = require('./unCamelCase'); + /** + * Replaces spaces with underscores, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function underscore(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "_"); + } + module.exports = underscore; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js new file mode 100644 index 00000000..52cf3f45 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Unescapes HTML special chars + */ + function unescapeHtml(str){ + str = toString(str) + .replace(/&/g , '&') + .replace(/</g , '<') + .replace(/>/g , '>') + .replace(/'/g , "'") + .replace(/"/g, '"'); + return str; + } + + module.exports = unescapeHtml; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js new file mode 100644 index 00000000..0b7fb73b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js @@ -0,0 +1,16 @@ +var toString = require('../lang/toString'); + + /** + * Unescape unicode char sequences + */ + function unescapeUnicode(str){ + str = toString(str); + return str.replace(/\\u[0-9a-f]{4}/g, function(ch){ + var code = parseInt(ch.slice(2), 16); + return String.fromCharCode(code); + }); + } + + module.exports = unescapeUnicode; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js new file mode 100644 index 00000000..311dfa17 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js @@ -0,0 +1,10 @@ +var toString = require('../lang/toString'); + /** + * Replaces hyphens with spaces. (only hyphens between word chars) + */ + function unhyphenate(str){ + str = toString(str); + return str.replace(/(\w)(-)(\w)/g, '$1 $3'); + } + module.exports = unhyphenate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js new file mode 100644 index 00000000..6c92552c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js @@ -0,0 +1,10 @@ +var toString = require('../lang/toString'); + /** + * "Safer" String.toUpperCase() + */ + function upperCase(str){ + str = toString(str); + return str.toUpperCase(); + } + module.exports = upperCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time.js new file mode 100644 index 00000000..9f533296 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time.js @@ -0,0 +1,12 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'convert' : require('./time/convert'), + 'now' : require('./time/now'), + 'parseMs' : require('./time/parseMs'), + 'toTimeString' : require('./time/toTimeString') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js new file mode 100644 index 00000000..852a0f03 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js @@ -0,0 +1,41 @@ + + + /** + * convert time into another unit + */ + function convert(val, sourceUnitName, destinationUnitName){ + destinationUnitName = destinationUnitName || 'ms'; + return (val * getUnit(sourceUnitName)) / getUnit(destinationUnitName); + } + + + //TODO: maybe extract to a separate module + function getUnit(unitName){ + switch(unitName){ + case 'ms': + case 'millisecond': + return 1; + case 's': + case 'second': + return 1000; + case 'm': + case 'minute': + return 60000; + case 'h': + case 'hour': + return 3600000; + case 'd': + case 'day': + return 86400000; + case 'w': + case 'week': + return 604800000; + default: + throw new Error('"'+ unitName + '" is not a valid unit'); + } + } + + + module.exports = convert; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js new file mode 100644 index 00000000..effcfbe3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js @@ -0,0 +1,12 @@ + + + /** + * Get current time in miliseconds + */ + var now = (typeof Date.now === 'function')? Date.now : function(){ + return +(new Date()); + }; + + module.exports = now; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js new file mode 100644 index 00000000..6d997976 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js @@ -0,0 +1,17 @@ +var countSteps = require('../math/countSteps'); + + /** + * Parse timestamp into an object. + */ + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + module.exports = parseMs; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js new file mode 100644 index 00000000..101d69fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js @@ -0,0 +1,24 @@ +var countSteps = require('../math/countSteps'); +var pad = require('../number/pad'); + + var HOUR = 3600000, + MINUTE = 60000, + SECOND = 1000; + + /** + * Format timestamp into a time string. + */ + function toTimeString(ms){ + var h = ms < HOUR ? 0 : countSteps(ms, HOUR), + m = ms < MINUTE ? 0 : countSteps(ms, MINUTE, 60), + s = ms < SECOND ? 0 : countSteps(ms, SECOND, 60), + str = ''; + + str += h? h + ':' : ''; + str += pad(m, 2) + ':'; + str += pad(s, 2); + + return str; + } + module.exports = toTimeString; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore new file mode 100644 index 00000000..f1250e58 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/History.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/History.md new file mode 100644 index 00000000..88119480 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/History.md @@ -0,0 +1,42 @@ + +1.0.0 / 2013-06-18 +================== + + * remove .version + * >=. Closes #19 + * Merge pull request #15 from davglass/readline-osx + * On OSX revert back to terminal hack to avoid a readline bug + +0.1.0 / 2012-09-19 +================== + + * Fixed logic bug that caused bar to jump one extra space at the end [davglass] + * Working with readline impl, even on Windows [davglass] + * Using readline instead of the \r hack [davglass] + +0.0.5 / 2012-08-07 +================== + + * add ability to tick by zero chunks - tick(0) + * fix ETA. Closes #4 [lwille] + +0.0.4 / 2011-11-14 +================== + + * Allow more recent versions of node + +0.0.3 / 2011-04-20 +================== + + * Changed; erase the line when complete + +0.0.2 / 2011-04-20 +================== + + * Added custom tokens support + * Fixed; clear line before writing + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Makefile new file mode 100644 index 00000000..36a3ed7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Makefile @@ -0,0 +1,5 @@ + +test: + @echo "populate me" + +.PHONY: test \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md new file mode 100644 index 00000000..4e08a49b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md @@ -0,0 +1,117 @@ +# node-progress + + Flexible ascii progress bar + +## Installation + + npm install progress + +## Usage + + First we create a `ProgressBar`, giving it a format string + as well as the `total`, telling the progress bar when it will + be considered complete. After that all we need to do is `tick()` appropriately. + +```javascript +var ProgressBar = require('progress'); + +var bar = new ProgressBar(':bar', { total: 10 }); +var timer = setInterval(function(){ + bar.tick(); + if (bar.complete) { + console.log('\ncomplete\n'); + clearInterval(timer); + } +}, 100); +``` + +## Options: + + - `total` total number of ticks to complete + - `width` the displayed width of the progress bar defaulting to total + - `stream` the output stream defaulting to stdout + - `complete` completion character defaulting to "=" + - `incomplete` incomplete character defaulting to "-" + - `clear` option to clear the bar on completion defaulting to false + - `callback` optional function to call when the progress bar completes + +## Tokens: + + - `:bar` the progress bar itself + - `:current` current tick number + - `:total` total ticks + - `:elapsed` time elapsed in seconds + - `:percent` completion percentage + - `:eta` estimated completion time in seconds + +## Examples + +### Download + + In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length. + +```javascript +var ProgressBar = require('../') + , https = require('https'); + +var req = https.request({ + host: 'download.github.com' + , port: 443 + , path: '/visionmedia-node-jscoverage-0d4608a.zip' +}); + +req.on('response', function(res){ + var len = parseInt(res.headers['content-length'], 10); + + console.log(); + var bar = new ProgressBar(' downloading [:bar] :percent :etas', { + complete: '=' + , incomplete: ' ' + , width: 20 + , total: len + }); + + res.on('data', function(chunk){ + bar.tick(chunk.length); + }); + + res.on('end', function(){ + console.log('\n'); + }); +}); + +req.end(); +``` + + The code above will generate a progress bar that looks like this: + +``` +downloading [===== ] 29% 3.7s +``` + +You can see more examples in the `examples` folder. + +## License + +(The MIT License) + +Copyright (c) 2011 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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/index.js new file mode 100644 index 00000000..4449dd30 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/node-progress'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js new file mode 100644 index 00000000..ca0ce4f0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js @@ -0,0 +1,183 @@ +/*! + * node-progress + * Copyright(c) 2011 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Expose `ProgressBar`. + */ + +exports = module.exports = ProgressBar; + +/** + * Initialize a `ProgressBar` with the given + * `fmt` string and `options` or `total`. + * + * Options: + * + * - `total` total number of ticks to complete + * - `width` the displayed width of the progress bar defaulting to total + * - `stream` the output stream defaulting to stdout + * - `complete` completion character defaulting to "=" + * - `incomplete` incomplete character defaulting to "-" + * - `callback` optional function to call when the progress bar completes + * + * Tokens: + * + * - `:bar` the progress bar itself + * - `:current` current tick number + * - `:total` total ticks + * - `:elapsed` time elapsed in seconds + * - `:percent` completion percentage + * - `:eta` eta in seconds + * + * @param {String} fmt + * @param {Object|Number} options or total + * @api public + */ + +function ProgressBar(fmt, options) { + this.rl = require('readline').createInterface({ + input: process.stdin, + output: options.stream || process.stdout + }); + this.rl.setPrompt('', 0); + this.rl.clearLine = function() { + this.write(null, {ctrl: true, name: 'u'}); + }; + + if (typeof(options) == 'number') { + var total = options; + options = {}; + options.total = total; + } else { + options = options || {}; + if ('string' != typeof fmt) throw new Error('format required'); + if ('number' != typeof options.total) throw new Error('total required'); + } + + this.fmt = fmt; + this.curr = 0; + this.total = options.total; + this.width = options.width || this.total; + this.clear = options.clear + this.chars = { + complete: options.complete || '=' + , incomplete: options.incomplete || '-' + }; + this.callback = options.callback || function () {}; +} + +/** + * "tick" the progress bar with optional `len` and + * optional `tokens`. + * + * @param {Number|Object} len or tokens + * @param {Object} tokens + * @api public + */ + +ProgressBar.prototype.tick = function(len, tokens){ + if (len !== 0) + len = len || 1; + + // swap tokens + if ('object' == typeof len) tokens = len, len = 1; + + // start time for eta + if (0 == this.curr) this.start = new Date; + + this.curr += len + this.render(tokens); + + // progress complete + if (this.curr >= this.total) { + this.complete = true; + this.terminate(); + this.callback(this); + return; + } +}; + +/** + * Method to render the progress bar with optional `tokens` to + * place in the progress bar's `fmt` field. + * + * @param {Object} tokens + * @api public + */ + +ProgressBar.prototype.render = function(tokens){ + if(!process.stdout.isTTY) { + return; + } + + var ratio = this.curr / this.total; + ratio = Math.min(Math.max(ratio, 0), 1); + + var percent = ratio * 100 + , complete = Math.round(this.width * ratio) + , incomplete + , elapsed = new Date - this.start + , eta = (percent == 100) ? 0 : elapsed * (this.total / this.curr - 1); + + complete = Array(complete).join(this.chars.complete); + incomplete = Array(this.width - complete.length).join(this.chars.incomplete); + + var str = this.fmt + .replace(':bar', complete + incomplete) + .replace(':current', this.curr) + .replace(':total', this.total) + .replace(':elapsed', isNaN(elapsed) ? "0.0" : (elapsed / 1000).toFixed(1)) + .replace(':eta', (isNaN(eta) || !isFinite(eta)) ? "0.0" : (eta / 1000).toFixed(1)) + .replace(':percent', percent.toFixed(0) + '%'); + + if (tokens) { + for (var key in tokens) { + str = str.replace(':' + key, tokens[key]); + } + } + + this.rl.clearLine(); + this.rl.write(str); +}; + +/** + * "update" the progress bar to represent an exact percentage. + * The ratio (between 0 and 1) specified will be multiplied by `total` and + * floored, representing the closest available "tick." For example, if a + * progress bar has a length of 3 and `update(0.5)` is called, the progress + * will be set to 1. + * + * A ratio of 0.5 will attempt to set the progress to halfway. + * + * @param {Number} ratio The ratio (between 0 and 1 inclusive) to set the + * overall completion to. + * @api public + */ + +ProgressBar.prototype.update = function(ratio, tokens) { + var goal = Math.floor(ratio * this.total); + var delta = goal - this.curr; + + this.tick(delta, tokens); +}; + +/** + * Terminates a progress bar. + * + * @api public + */ + +ProgressBar.prototype.terminate = function() { + this.rl.resume(); + + if (this.clear) { + this.rl.clearLine(); + this.rl.close(); + } else { + this.rl.close(); + console.log(); + } +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/package.json new file mode 100644 index 00000000..c4744b51 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/progress/package.json @@ -0,0 +1,34 @@ +{ + "name": "progress", + "version": "1.1.3", + "description": "Flexible ascii progress bar", + "keywords": [ + "cli", + "progress" + ], + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "dependencies": {}, + "main": "index", + "engines": { + "node": ">=0.4.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-progress" + }, + "readme": "# node-progress\n\n Flexible ascii progress bar\n\n## Installation\n\n npm install progress\n\n## Usage\n\n First we create a `ProgressBar`, giving it a format string\n as well as the `total`, telling the progress bar when it will\n be considered complete. After that all we need to do is `tick()` appropriately.\n\n```javascript\nvar ProgressBar = require('progress');\n\nvar bar = new ProgressBar(':bar', { total: 10 });\nvar timer = setInterval(function(){\n bar.tick();\n if (bar.complete) {\n console.log('\\ncomplete\\n');\n clearInterval(timer);\n }\n}, 100);\n```\n\n## Options:\n\n - `total` total number of ticks to complete\n - `width` the displayed width of the progress bar defaulting to total\n - `stream` the output stream defaulting to stdout\n - `complete` completion character defaulting to \"=\"\n - `incomplete` incomplete character defaulting to \"-\"\n - `clear` option to clear the bar on completion defaulting to false\n - `callback` optional function to call when the progress bar completes\n\n## Tokens:\n\n - `:bar` the progress bar itself\n - `:current` current tick number\n - `:total` total ticks\n - `:elapsed` time elapsed in seconds\n - `:percent` completion percentage\n - `:eta` estimated completion time in seconds\n\n## Examples\n\n### Download\n\n In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length.\n\n```javascript\nvar ProgressBar = require('../')\n , https = require('https');\n\nvar req = https.request({\n host: 'download.github.com'\n , port: 443\n , path: '/visionmedia-node-jscoverage-0d4608a.zip'\n});\n\nreq.on('response', function(res){\n var len = parseInt(res.headers['content-length'], 10);\n\n console.log();\n var bar = new ProgressBar(' downloading [:bar] :percent :etas', {\n complete: '='\n , incomplete: ' '\n , width: 20\n , total: len\n });\n\n res.on('data', function(chunk){\n bar.tick(chunk.length);\n });\n\n res.on('end', function(){\n console.log('\\n');\n });\n});\n\nreq.end();\n```\n\n The code above will generate a progress bar that looks like this:\n\n```\ndownloading [===== ] 29% 3.7s\n```\n\nYou can see more examples in the `examples` folder.\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk `<tj@vision-media.ca>`\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", + "bugs": { + "url": "https://github.com/visionmedia/node-progress/issues" + }, + "homepage": "https://github.com/visionmedia/node-progress", + "_id": "progress@1.1.3", + "dist": { + "shasum": "42f89c5fc3b6f0408a0bdd68993b174f96aababf" + }, + "_from": "progress@~1.1.0", + "_resolved": "https://registry.npmjs.org/progress/-/progress-1.1.3.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS new file mode 100644 index 00000000..247b7543 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS @@ -0,0 +1,6 @@ +# Authors sorted by whether or not they're me. +Isaac Z. Schlueter (http://blog.izs.me) +Wayne Larsen (http://github.com/wvl) +ritch +Marcel Laverdet +Yosef Dinerstein diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE new file mode 100644 index 00000000..05a40109 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE @@ -0,0 +1,23 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md new file mode 100644 index 00000000..cd123b65 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md @@ -0,0 +1,30 @@ +`rm -rf` for node. + +Install with `npm install rimraf`, or just drop rimraf.js somewhere. + +## API + +`rimraf(f, callback)` + +The callback will be called with an error if there is one. Certain +errors are handled for you: + +* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of + `opts.maxBusyTries` times before giving up. +* `ENOENT` - If the file doesn't exist, rimraf will return + successfully, since your desired outcome is already the case. + +## rimraf.sync + +It can remove stuff synchronously, too. But that's not so good. Use +the async API. It's better. + +## CLI + +If installed with `npm install rimraf -g` it can be used as a global +command `rimraf ` which is useful for cross platform support. + +## mkdirp + +If you need to create a directory recursively, check out +[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js new file mode 100755 index 00000000..29bfa8a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +var rimraf = require('./') + +var help = false +var dashdash = false +var args = process.argv.slice(2).filter(function(arg) { + if (dashdash) + return !!arg + else if (arg === '--') + dashdash = true + else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) + help = true + else + return !!arg +}); + +if (help || args.length === 0) { + // If they didn't ask for help, then this is not a "success" + var log = help ? console.log : console.error + log('Usage: rimraf ') + log('') + log(' Deletes all files and folders at "path" recursively.') + log('') + log('Options:') + log('') + log(' -h, --help Display this usage info') + process.exit(help ? 0 : 1) +} else { + args.forEach(function(arg) { + rimraf.sync(arg) + }) +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json new file mode 100644 index 00000000..211cc9dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json @@ -0,0 +1,60 @@ +{ + "name": "rimraf", + "version": "2.2.6", + "main": "rimraf.js", + "description": "A deep deletion module for node (like `rm -rf`)", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "license": { + "type": "MIT", + "url": "https://github.com/isaacs/rimraf/raw/master/LICENSE" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "test": "cd test && bash run.sh" + }, + "bin": { + "rimraf": "./bin.js" + }, + "contributors": [ + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + { + "name": "Wayne Larsen", + "email": "wayne@larsen.st", + "url": "http://github.com/wvl" + }, + { + "name": "ritch", + "email": "skawful@gmail.com" + }, + { + "name": "Marcel Laverdet" + }, + { + "name": "Yosef Dinerstein", + "email": "yosefd@microsoft.com" + } + ], + "readme": "`rm -rf` for node.\n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one. Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n `opts.maxBusyTries` times before giving up.\n* `ENOENT` - If the file doesn't exist, rimraf will return\n successfully, since your desired outcome is already the case.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too. But that's not so good. Use\nthe async API. It's better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf ` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" + }, + "homepage": "https://github.com/isaacs/rimraf", + "_id": "rimraf@2.2.6", + "dist": { + "shasum": "7ada6a6d39b2301af3c8fe7b936c2e46e7c4463d" + }, + "_from": "rimraf@~2.2.6", + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js new file mode 100644 index 00000000..ce62051f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js @@ -0,0 +1,178 @@ +module.exports = rimraf +rimraf.sync = rimrafSync + +var path = require("path") +var fs = require("fs") + +// for EMFILE handling +var timeout = 0 +exports.EMFILE_MAX = 1000 +exports.BUSYTRIES_MAX = 3 + +var isWindows = (process.platform === "win32") + +function rimraf (p, cb) { + if (!cb) throw new Error("No callback passed to rimraf()") + + var busyTries = 0 + rimraf_(p, function CB (er) { + if (er) { + if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY") && + busyTries < exports.BUSYTRIES_MAX) { + busyTries ++ + var time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(function () { + rimraf_(p, CB) + }, time) + } + + // this one won't happen if graceful-fs is used. + if (er.code === "EMFILE" && timeout < exports.EMFILE_MAX) { + return setTimeout(function () { + rimraf_(p, CB) + }, timeout ++) + } + + // already gone + if (er.code === "ENOENT") er = null + } + + timeout = 0 + cb(er) + }) +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, cb) { + fs.unlink(p, function (er) { + if (er) { + if (er.code === "ENOENT") + return cb(null) + if (er.code === "EPERM") + return (isWindows) ? fixWinEPERM(p, er, cb) : rmdir(p, er, cb) + if (er.code === "EISDIR") + return rmdir(p, er, cb) + } + return cb(er) + }) +} + +function fixWinEPERM (p, er, cb) { + fs.chmod(p, 666, function (er2) { + if (er2) + cb(er2.code === "ENOENT" ? null : er) + else + fs.stat(p, function(er3, stats) { + if (er3) + cb(er3.code === "ENOENT" ? null : er) + else if (stats.isDirectory()) + rmdir(p, er, cb) + else + fs.unlink(p, cb) + }) + }) +} + +function fixWinEPERMSync (p, er, cb) { + try { + fs.chmodSync(p, 666) + } catch (er2) { + if (er2.code !== "ENOENT") + throw er + } + + try { + var stats = fs.statSync(p) + } catch (er3) { + if (er3 !== "ENOENT") + throw er + } + + if (stats.isDirectory()) + rmdirSync(p, er) + else + fs.unlinkSync(p) +} + +function rmdir (p, originalEr, cb) { + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + fs.rmdir(p, function (er) { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, cb) + else if (er && er.code === "ENOTDIR") + cb(originalEr) + else + cb(er) + }) +} + +function rmkids(p, cb) { + fs.readdir(p, function (er, files) { + if (er) + return cb(er) + var n = files.length + if (n === 0) + return fs.rmdir(p, cb) + var errState + files.forEach(function (f) { + rimraf(path.join(p, f), function (er) { + if (errState) + return + if (er) + return cb(errState = er) + if (--n === 0) + fs.rmdir(p, cb) + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p) { + try { + fs.unlinkSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p, er) : rmdirSync(p, er) + if (er.code !== "EISDIR") + throw er + rmdirSync(p, er) + } +} + +function rmdirSync (p, originalEr) { + try { + fs.rmdirSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "ENOTDIR") + throw originalEr + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p) + } +} + +function rmkidsSync (p) { + fs.readdirSync(p).forEach(function (f) { + rimrafSync(path.join(p, f)) + }) + fs.rmdirSync(p) +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh new file mode 100644 index 00000000..598f0163 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +for i in test-*.js; do + echo -n $i ... + bash setup.sh + node $i + ! [ -d target ] + echo "pass" +done +rm -rf target diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh new file mode 100644 index 00000000..2602e631 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +set -e + +files=10 +folders=2 +depth=4 +target="$PWD/target" + +rm -rf target + +fill () { + local depth=$1 + local files=$2 + local folders=$3 + local target=$4 + + if ! [ -d $target ]; then + mkdir -p $target + fi + + local f + + f=$files + while [ $f -gt 0 ]; do + touch "$target/f-$depth-$f" + let f-- + done + + let depth-- + + if [ $depth -le 0 ]; then + return 0 + fi + + f=$folders + while [ $f -gt 0 ]; do + mkdir "$target/folder-$depth-$f" + fill $depth $files $folders "$target/d-$depth-$f" + let f-- + done +} + +fill $depth $files $folders $target + +# sanity assert +[ -d $target ] diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js new file mode 100644 index 00000000..9c2e0b7b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js @@ -0,0 +1,5 @@ +var rimraf = require("../rimraf") + , path = require("path") +rimraf(path.join(__dirname, "target"), function (er) { + if (er) throw er +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js new file mode 100644 index 00000000..eb71f104 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js @@ -0,0 +1,3 @@ +var rimraf = require("../rimraf") + , path = require("path") +rimraf.sync(path.join(__dirname, "target")) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/LICENSE new file mode 100644 index 00000000..05a40109 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/LICENSE @@ -0,0 +1,23 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/README.md new file mode 100644 index 00000000..ff1eb531 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/README.md @@ -0,0 +1,5 @@ +The "which" util from npm's guts. + +Finds the first instance of a specified executable in the PATH +environment variable. Does not cache the results, so `hash -r` is not +needed when the PATH changes. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/bin/which b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/bin/which new file mode 100755 index 00000000..8432ce2f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/bin/which @@ -0,0 +1,14 @@ +#!/usr/bin/env node +var which = require("../") +if (process.argv.length < 3) { + console.error("Usage: which ") + process.exit(1) +} + +which(process.argv[2], function (er, thing) { + if (er) { + console.error(er.message) + process.exit(er.errno || 127) + } + console.log(thing) +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/package.json new file mode 100644 index 00000000..f1938b07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/package.json @@ -0,0 +1,35 @@ +{ + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "name": "which", + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", + "version": "1.0.5", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "main": "which.js", + "bin": { + "which": "./bin/which" + }, + "engines": { + "node": "*" + }, + "dependencies": {}, + "devDependencies": {}, + "readme": "The \"which\" util from npm's guts.\n\nFinds the first instance of a specified executable in the PATH\nenvironment variable. Does not cache the results, so `hash -r` is not\nneeded when the PATH changes.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" + }, + "homepage": "https://github.com/isaacs/node-which", + "_id": "which@1.0.5", + "dist": { + "shasum": "195619a6ad7e8fefd0aa76445a6d4c8d370a322c" + }, + "_from": "which@~1.0.5", + "_resolved": "https://registry.npmjs.org/which/-/which-1.0.5.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/which.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/which.js new file mode 100644 index 00000000..db7e8f74 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/which/which.js @@ -0,0 +1,104 @@ +module.exports = which +which.sync = whichSync + +var path = require("path") + , fs + , COLON = process.platform === "win32" ? ";" : ":" + , isExe + +try { + fs = require("graceful-fs") +} catch (ex) { + fs = require("fs") +} + +if (process.platform == "win32") { + // On windows, there is no good way to check that a file is executable + isExe = function isExe () { return true } +} else { + isExe = function isExe (mod, uid, gid) { + //console.error(mod, uid, gid); + //console.error("isExe?", (mod & 0111).toString(8)) + var ret = (mod & 0001) + || (mod & 0010) && process.getgid && gid === process.getgid() + || (mod & 0100) && process.getuid && uid === process.getuid() + //console.error("isExe?", ret) + return ret + } +} + + + +function which (cmd, cb) { + if (isAbsolute(cmd)) return cb(null, cmd) + var pathEnv = (process.env.PATH || "").split(COLON) + , pathExt = [""] + if (process.platform === "win32") { + pathEnv.push(process.cwd()) + pathExt = (process.env.PATHEXT || ".EXE").split(COLON) + if (cmd.indexOf(".") !== -1) pathExt.unshift("") + } + //console.error("pathEnv", pathEnv) + ;(function F (i, l) { + if (i === l) return cb(new Error("not found: "+cmd)) + var p = path.resolve(pathEnv[i], cmd) + ;(function E (ii, ll) { + if (ii === ll) return F(i + 1, l) + var ext = pathExt[ii] + //console.error(p + ext) + fs.stat(p + ext, function (er, stat) { + if (!er && + stat && + stat.isFile() && + isExe(stat.mode, stat.uid, stat.gid)) { + //console.error("yes, exe!", p + ext) + return cb(null, p + ext) + } + return E(ii + 1, ll) + }) + })(0, pathExt.length) + })(0, pathEnv.length) +} + +function whichSync (cmd) { + if (isAbsolute(cmd)) return cmd + var pathEnv = (process.env.PATH || "").split(COLON) + , pathExt = [""] + if (process.platform === "win32") { + pathEnv.push(process.cwd()) + pathExt = (process.env.PATHEXT || ".EXE").split(COLON) + if (cmd.indexOf(".") !== -1) pathExt.unshift("") + } + for (var i = 0, l = pathEnv.length; i < l; i ++) { + var p = path.join(pathEnv[i], cmd) + for (var j = 0, ll = pathExt.length; j < ll; j ++) { + var cur = p + pathExt[j] + var stat + try { stat = fs.statSync(cur) } catch (ex) {} + if (stat && + stat.isFile() && + isExe(stat.mode, stat.uid, stat.gid)) return cur + } + } + throw new Error("not found: "+cmd) +} + +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}[^\\\/]+[\\\/][^\\\/]+)?([\\\/])?/ + , 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/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/package.json new file mode 100644 index 00000000..66d4488e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/bin-wrapper/package.json @@ -0,0 +1,54 @@ +{ + "name": "bin-wrapper", + "version": "0.1.9", + "description": "Binary wrapper for Node.js that makes your programs seamlessly available as local dependencies", + "keywords": [ + "bin", + "build", + "make", + "wrapper" + ], + "homepage": "https://github.com/kevva/bin-wrapper", + "bugs": { + "url": "https://github.com/kevva/bin-wrapper/issues" + }, + "author": { + "name": "Kevin Martensson", + "email": "kevinmartensson@gmail.com", + "url": "http://kevinmartensson.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/kevva/bin-wrapper.git" + }, + "scripts": { + "test": "mocha --reporter list --timeout 0" + }, + "main": "bin-wrapper.js", + "files": [ + "bin-wrapper.js" + ], + "dependencies": { + "download": "~0.1.2", + "isbin": "0.0.2", + "mout": "~0.6.0", + "progress": "~1.1.0", + "rimraf": "~2.2.6", + "which": "~1.0.5" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "readme": "# bin-wrapper [![Build Status](https://secure.travis-ci.org/kevva/bin-wrapper.png?branch=master)](http://travis-ci.org/kevva/bin-wrapper)\n\nBinary wrapper for Node.js that makes your programs seamlessly available as local dependencies\n\n## Getting started\n\nInstall with [npm](https://npmjs.org/package/bin-wrapper): `npm install bin-wrapper`\n\n## Examples\n\nAll `platform` and `arch` specific options takes precedence over the base \noptions. See [test.js](test.js) for a full fleshed example.\n\n```js\nvar Bin = require('bin-wrapper');\n\nvar opts = {\n name: 'Gifsicle',\n bin: 'gifsicle',\n path: 'vendor',\n url: 'http://url/to/gifsicle',\n src: 'http://www.lcdf.org/gifsicle/gifsicle-1.71.tar.gz',\n buildScript: './configure --bindir=\"vendor\" && make install',\n platform: {\n win32: {\n bin: 'gifsicle.exe',\n url: [\n 'http://url/to/gifsicle.exe'\n 'http://url/to/gifsicle.dll'\n ]\n }\n }\n}\nvar bin = new Bin(opts);\n\nbin.check('--version', function (works) {\n if (!works) {\n console.log('Pre-build test failed, compiling from source');\n return bin.build();\n }\n\n console.log('Binary passed the test');\n});\n```\n\nGet the path to your binary with `bin.path`.\n\n```js\nconsole.log(bin.path);\n// => path/to/vendor/gifsicle\n```\n\n## API\n\n### .check(cmd, cb)\n\nCheck if a binary is present and working. If it isn't, download and test it by \nrunning the binary with `cmd` and see if it exits correctly.\n\n### .build(cb)\n\nDownload the source archive defined in the `src` property and build it using the \nbuild script defined in the `buildScript` property.\n\n## License\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License) (c) [Kevin Mårtensson](http://kevinmartensson.com)\n", + "readmeFilename": "README.md", + "_id": "bin-wrapper@0.1.9", + "dist": { + "shasum": "237ee496fb6049caedaba51ad9e62fc199a86060" + }, + "_from": "bin-wrapper@~0.1.3", + "_resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-0.1.9.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/chalk.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/chalk.js new file mode 100644 index 00000000..17c6dbab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/chalk.js @@ -0,0 +1,62 @@ +'use strict'; +var ansi = require('ansi-styles'); +var defineProps = Object.defineProperties; + +ansi.grey = ansi.gray; + +var styles = (function () { + var ret = {}; + + Object.keys(ansi).forEach(function (key) { + ret[key] = { + get: function () { + this._styles.push(key); + return this; + } + }; + }); + + return ret; +})(); + +var chalk = module.exports = defineProps({}, init()); + +function init() { + var ret = {}; + + Object.keys(styles).forEach(function (name) { + ret[name] = { + get: function () { + var obj = defineProps(function self(str) { + if (!chalk.enabled) { + return str; + } + + return self._styles.reduce(function (str, name) { + var code = ansi[name]; + return code[0] + (str || '') + code[1]; + }, str); + }, styles); + + obj._styles = []; + + return obj[name]; + } + } + }); + + return ret; +} + +chalk.styles = ansi; + +chalk.stripColor = function (str) { + return str.replace(/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]/g, ''); +}; + +chalk.supportsColor = require('has-color'); + +// detect mode if not set manually +if (chalk.enabled === undefined) { + chalk.enabled = chalk.supportsColor; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js new file mode 100644 index 00000000..56a5d19b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js @@ -0,0 +1,29 @@ +'use strict'; +module.exports = { + reset: ['\x1b[0m', '\x1b[0m'], + + bold: ['\x1b[1m', '\x1b[22m'], + italic: ['\x1b[3m', '\x1b[23m'], + underline: ['\x1b[4m', '\x1b[24m'], + inverse: ['\x1b[7m', '\x1b[27m'], + strikethrough: ['\x1b[9m', '\x1b[29m'], + + black: ['\x1b[30m', '\x1b[39m'], + red: ['\x1b[31m', '\x1b[39m'], + green: ['\x1b[32m', '\x1b[39m'], + yellow: ['\x1b[33m', '\x1b[39m'], + blue: ['\x1b[34m', '\x1b[39m'], + magenta: ['\x1b[35m', '\x1b[39m'], + cyan: ['\x1b[36m', '\x1b[39m'], + white: ['\x1b[37m', '\x1b[39m'], + gray: ['\x1B[90m', '\x1b[39m'], + + bgBlack: ['\x1b[40m', '\x1b[49m'], + bgRed: ['\x1b[41m', '\x1b[49m'], + bgGreen: ['\x1b[42m', '\x1b[49m'], + bgYellow: ['\x1b[43m', '\x1b[49m'], + bgBlue: ['\x1b[44m', '\x1b[49m'], + bgMagenta: ['\x1b[45m', '\x1b[49m'], + bgCyan: ['\x1b[46m', '\x1b[49m'], + bgWhite: ['\x1b[47m', '\x1b[49m'] +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/package.json new file mode 100644 index 00000000..8acdb5e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/package.json @@ -0,0 +1,62 @@ +{ + "name": "ansi-styles", + "version": "0.2.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { + "url": "https://github.com/sindresorhus/ansi-styles/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "ansi-styles.js" + ], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles)\n\n> ANSI escape codes for colorizing strings in the terminal.\n\nYou probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings.\n\n![screenshot](screenshot.png)\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles`\n\n\n## Example\n\n```js\nvar ansi = require('ansi-styles');\n\nconsole.log(ansi.green[0] + 'Hello world!' + ansi.green[1]);\n```\n\n## API\n\nEach style is an array of a start and end escape code.\n\n\n## Styles\n\n### General\n\n- reset\n- bold\n- italic\n- underline\n- inverse\n- strikethrough\n\n### Text colors\n\n- black\n- red\n- green\n- yellow\n- blue\n- magenta\n- cyan\n- white\n- gray\n\n### Background colors\n\n- bgBlack\n- bgRed\n- bgGreen\n- bgYellow\n- bgBlue\n- bgMagenta\n- bgCyan\n- bgWhite\n\n\n## License\n\nMIT License • © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "ansi-styles@0.2.0", + "dist": { + "shasum": "359ab4b15dcd64ba6d74734b72c36360a9af2c19" + }, + "_from": "ansi-styles@~0.2.0", + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/readme.md new file mode 100644 index 00000000..646837c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/ansi-styles/readme.md @@ -0,0 +1,65 @@ +# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles) + +> ANSI escape codes for colorizing strings in the terminal. + +You probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings. + +![screenshot](screenshot.png) + + +## Install + +Install with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles` + + +## Example + +```js +var ansi = require('ansi-styles'); + +console.log(ansi.green[0] + 'Hello world!' + ansi.green[1]); +``` + +## API + +Each style is an array of a start and end escape code. + + +## Styles + +### General + +- reset +- bold +- italic +- underline +- inverse +- strikethrough + +### Text colors + +- black +- red +- green +- yellow +- blue +- magenta +- cyan +- white +- gray + +### Background colors + +- bgBlack +- bgRed +- bgGreen +- bgYellow +- bgBlue +- bgMagenta +- bgCyan +- bgWhite + + +## License + +MIT License • © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/has-color.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/has-color.js new file mode 100644 index 00000000..27316b1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/has-color.js @@ -0,0 +1,24 @@ +'use strict'; +module.exports = (function () { + if (process.argv.indexOf('--no-color') !== -1) { + return false; + } + + if (process.argv.indexOf('--color') !== -1) { + return true; + } + + if (!process.stdout.isTTY) { + return false; + } + + if (process.platform === 'win32') { + return true; + } + + if ('COLORTERM' in process.env) { + return true; + } + + return /^screen|^xterm|color|ansi|cygwin|linux/i.test(process.env.TERM); +})(); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/package.json new file mode 100644 index 00000000..d60b2d0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/package.json @@ -0,0 +1,59 @@ +{ + "name": "has-color", + "version": "0.1.4", + "description": "Detect whether a terminal supports color", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "capability", + "detect" + ], + "homepage": "https://github.com/sindresorhus/has-color", + "bugs": { + "url": "https://github.com/sindresorhus/has-color/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "has-color.js" + ], + "main": "has-color", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/has-color.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color)\n\n> Detect whether a terminal supports color.\n\nUsed in the terminal color module [chalk](https://github.com/sindresorhus/chalk).\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/has-color): `npm install --save has-color`\n\n\n## Example\n\n```js\nvar hasColor = require('has-color');\n\nif (hasColor) {\n\tconsole.log('Terminal supports color.');\n}\n```\n\nIt obeys the CLI flags `--color` and `--no-color`.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "has-color@0.1.4", + "dist": { + "shasum": "d1dadeea5b9e8b446bf08603532333710c95a290" + }, + "_from": "has-color@~0.1.0", + "_resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.4.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/readme.md new file mode 100644 index 00000000..0918c851 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/node_modules/has-color/readme.md @@ -0,0 +1,28 @@ +# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color) + +> Detect whether a terminal supports color. + +Used in the terminal color module [chalk](https://github.com/sindresorhus/chalk). + + +## Install + +Install with [npm](https://npmjs.org/package/has-color): `npm install --save has-color` + + +## Example + +```js +var hasColor = require('has-color'); + +if (hasColor) { + console.log('Terminal supports color.'); +} +``` + +It obeys the CLI flags `--color` and `--no-color`. + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/package.json new file mode 100644 index 00000000..46a63f05 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/jpegtran-bin/node_modules/chalk/package.json @@ -0,0 +1,65 @@ +{ + "name": "chalk", + "version": "0.2.1", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { + "url": "https://github.com/sindresorhus/chalk/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "chalk.js" + ], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "has-color": "~0.1.0", + "ansi-styles": "~0.2.0" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# chalk [![Build Status](https://secure.travis-ci.org/sindresorhus/chalk.png?branch=master)](http://travis-ci.org/sindresorhus/chalk)\n\n> Terminal string styling done right.\n\n[colors.js](https://github.com/Marak/colors.js) is currently the most popular string styling module, but it has serious deficiencies like extending String.prototype which causes all kinds of problems. Although there are other ones, they either do too much or not enough.\n\n**Chalk is a clean and focused alternative.**\n\n![screenshot](screenshot.png)\n\n\n## Why\n\n- **Doesn't extend String.prototype**\n- Expressive API\n- Clean and focused\n- Auto-detects color support\n- Actively maintained\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/chalk): `npm install --save chalk`\n\n\n## Example\n\nChalk comes with an easy to use composable API where you just chain the styles you want.\n\n```js\nvar chalk = require('chalk');\n\n// style a string\nconsole.log(chalk.blue('Hello world!'));\n\n// combine styled and normal strings\nconsole.log(chalk.blue('Hello') + 'World' + chalk.red('!'));\n\n// compose multiple styles using the chainable API\nconsole.log(chalk.blue.bgRed.bold('Hello world!'));\n\n// nest styles\nchalk.red('Hello' + chalk.underline.bgBlue('world') + '!');\n```\n\nYou can easily define your own themes.\n\n```js\nvar chalk = require('chalk');\nvar error = chalk.bold.red;\nconsole.log(error('Error!'));\n```\n\n\n## API\n\n### chalk.\\ + + + + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js new file mode 100644 index 00000000..24692256 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/test/test.js @@ -0,0 +1,228 @@ +if (!this.uuid) { + // node.js + uuid = require('../uuid'); +} + +// +// x-platform log/assert shims +// + +function _log(msg, type) { + type = type || 'log'; + + if (typeof(document) != 'undefined') { + document.write('
      ' + msg.replace(/\n/g, '
      ') + '
      '); + } + if (typeof(console) != 'undefined') { + var color = { + log: '\033[39m', + warn: '\033[33m', + error: '\033[31m' + }; + console[type](color[type] + msg + color.log); + } +} + +function log(msg) {_log(msg, 'log');} +function warn(msg) {_log(msg, 'warn');} +function error(msg) {_log(msg, 'error');} + +function assert(res, msg) { + if (!res) { + error('FAIL: ' + msg); + } else { + log('Pass: ' + msg); + } +} + +// +// Unit tests +// + +// Verify ordering of v1 ids created with explicit times +var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00 + +function compare(name, ids) { + ids = ids.map(function(id) { + return id.split('-').reverse().join('-'); + }).sort(); + var sorted = ([].concat(ids)).sort(); + + assert(sorted.toString() == ids.toString(), name + ' have expected order'); +} + +// Verify ordering of v1 ids created using default behavior +compare('uuids with current time', [ + uuid.v1(), + uuid.v1(), + uuid.v1(), + uuid.v1(), + uuid.v1() +]); + +// Verify ordering of v1 ids created with explicit times +compare('uuids with time option', [ + uuid.v1({msecs: TIME - 10*3600*1000}), + uuid.v1({msecs: TIME - 1}), + uuid.v1({msecs: TIME}), + uuid.v1({msecs: TIME + 1}), + uuid.v1({msecs: TIME + 28*24*3600*1000}) +]); + +assert( + uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}), + 'IDs created at same msec are different' +); + +// Verify throw if too many ids created +var thrown = false; +try { + uuid.v1({msecs: TIME, nsecs: 10000}); +} catch (e) { + thrown = true; +} +assert(thrown, 'Exception thrown when > 10K ids created in 1 ms'); + +// Verify clock regression bumps clockseq +var uidt = uuid.v1({msecs: TIME}); +var uidtb = uuid.v1({msecs: TIME - 1}); +assert( + parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1, + 'Clock regression by msec increments the clockseq' +); + +// Verify clock regression bumps clockseq +var uidtn = uuid.v1({msecs: TIME, nsecs: 10}); +var uidtnb = uuid.v1({msecs: TIME, nsecs: 9}); +assert( + parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1, + 'Clock regression by nsec increments the clockseq' +); + +// Verify explicit options produce expected id +var id = uuid.v1({ + msecs: 1321651533573, + nsecs: 5432, + clockseq: 0x385c, + node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ] +}); +assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id'); + +// Verify adjacent ids across a msec boundary are 1 time unit apart +var u0 = uuid.v1({msecs: TIME, nsecs: 9999}); +var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0}); + +var before = u0.split('-')[0], after = u1.split('-')[0]; +var dt = parseInt(after, 16) - parseInt(before, 16); +assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart'); + +// +// Test parse/unparse +// + +id = '00112233445566778899aabbccddeeff'; +assert(uuid.unparse(uuid.parse(id.substr(0,10))) == + '00112233-4400-0000-0000-000000000000', 'Short parse'); +assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == + '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); + +// +// Perf tests +// + +var generators = { + v1: uuid.v1, + v4: uuid.v4 +}; + +var UUID_FORMAT = { + v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, + v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i +}; + +var N = 1e4; + +// Get %'age an actual value differs from the ideal value +function divergence(actual, ideal) { + return Math.round(100*100*(actual - ideal)/ideal)/100; +} + +function rate(msg, t) { + log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second'); +} + +for (var version in generators) { + var counts = {}, max = 0; + var generator = generators[version]; + var format = UUID_FORMAT[version]; + + log('\nSanity check ' + N + ' ' + version + ' uuids'); + for (var i = 0, ok = 0; i < N; i++) { + id = generator(); + if (!format.test(id)) { + throw Error(id + ' is not a valid UUID string'); + } + + if (id != uuid.unparse(uuid.parse(id))) { + assert(fail, id + ' is not a valid id'); + } + + // Count digits for our randomness check + if (version == 'v4') { + var digits = id.replace(/-/g, '').split(''); + for (var j = digits.length-1; j >= 0; j--) { + var c = digits[j]; + max = Math.max(max, counts[c] = (counts[c] || 0) + 1); + } + } + } + + // Check randomness for v4 UUIDs + if (version == 'v4') { + // Limit that we get worried about randomness. (Purely empirical choice, this!) + var limit = 2*100*Math.sqrt(1/N); + + log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)'); + + for (var i = 0; i < 16; i++) { + var c = i.toString(16); + var bar = '', n = counts[c], p = Math.round(n/max*100|0); + + // 1-3,5-8, and D-F: 1:16 odds over 30 digits + var ideal = N*30/16; + if (i == 4) { + // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits + ideal = N*(1 + 30/16); + } else if (i >= 8 && i <= 11) { + // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits + ideal = N*(1/4 + 30/16); + } else { + // Otherwise: 1:16 odds on 30 digits + ideal = N*30/16; + } + var d = divergence(n, ideal); + + // Draw bar using UTF squares (just for grins) + var s = n/max*50 | 0; + while (s--) bar += '='; + + assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)'); + } + } +} + +// Perf tests +for (var version in generators) { + log('\nPerformance testing ' + version + ' UUIDs'); + var generator = generators[version]; + var buf = new uuid.BufferClass(16); + + for (var i = 0, t = Date.now(); i < N; i++) generator(); + rate('uuid.' + version + '()', t); + + for (var i = 0, t = Date.now(); i < N; i++) generator('binary'); + rate('uuid.' + version + '(\'binary\')', t); + + for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf); + rate('uuid.' + version + '(\'binary\', buffer)', t); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js new file mode 100644 index 00000000..2fac6dc4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/node-uuid/uuid.js @@ -0,0 +1,245 @@ +// uuid.js +// +// Copyright (c) 2010-2012 Robert Kieffer +// MIT License - http://opensource.org/licenses/mit-license.php + +(function() { + var _global = this; + + // Unique ID creation requires a high quality random # generator. We feature + // detect to determine the best RNG source, normalizing to a function that + // returns 128-bits of randomness, since that's what's usually required + var _rng; + + // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html + // + // Moderately fast, high quality + if (typeof(require) == 'function') { + try { + var _rb = require('crypto').randomBytes; + _rng = _rb && function() {return _rb(16);}; + } catch(e) {} + } + + if (!_rng && _global.crypto && crypto.getRandomValues) { + // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto + // + // Moderately fast, high quality + var _rnds8 = new Uint8Array(16); + _rng = function whatwgRNG() { + crypto.getRandomValues(_rnds8); + return _rnds8; + }; + } + + if (!_rng) { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var _rnds = new Array(16); + _rng = function() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } + + return _rnds; + }; + } + + // Buffer class to use + var BufferClass = typeof(Buffer) == 'function' ? Buffer : Array; + + // Maps for number <-> hex string conversion + var _byteToHex = []; + var _hexToByte = {}; + for (var i = 0; i < 256; i++) { + _byteToHex[i] = (i + 0x100).toString(16).substr(1); + _hexToByte[_byteToHex[i]] = i; + } + + // **`parse()` - Parse a UUID into it's component bytes** + function parse(s, buf, offset) { + var i = (buf && offset) || 0, ii = 0; + + buf = buf || []; + s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { + if (ii < 16) { // Don't overflow! + buf[i + ii++] = _hexToByte[oct]; + } + }); + + // Zero out remaining bytes if string was short + while (ii < 16) { + buf[i + ii++] = 0; + } + + return buf; + } + + // **`unparse()` - Convert UUID byte array (ala parse()) into a string** + function unparse(buf, offset) { + var i = offset || 0, bth = _byteToHex; + return bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + '-' + + bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]] + + bth[buf[i++]] + bth[buf[i++]]; + } + + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + + // random #'s we need to init node and clockseq + var _seedBytes = _rng(); + + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + var _nodeId = [ + _seedBytes[0] | 0x01, + _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] + ]; + + // Per 4.2.2, randomize (14 bit) clockseq + var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff; + + // Previous uuid creation time + var _lastMSecs = 0, _lastNSecs = 0; + + // See https://github.com/broofa/node-uuid for API details + function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; + + options = options || {}; + + var clockseq = options.clockseq != null ? options.clockseq : _clockseq; + + // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + var msecs = options.msecs != null ? options.msecs : new Date().getTime(); + + // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1; + + // Time since last uuid creation (in msecs) + var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; + + // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq == null) { + clockseq = clockseq + 1 & 0x3fff; + } + + // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) { + nsecs = 0; + } + + // Per 4.2.1.2 Throw error if too many uuids are requested + if (nsecs >= 10000) { + throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + + // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000; + + // `time_low` + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; + + // `time_mid` + var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; + + // `time_high_and_version` + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + b[i++] = tmh >>> 16 & 0xff; + + // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + b[i++] = clockseq >>> 8 | 0x80; + + // `clock_seq_low` + b[i++] = clockseq & 0xff; + + // `node` + var node = options.node || _nodeId; + for (var n = 0; n < 6; n++) { + b[i + n] = node[n]; + } + + return buf ? buf : unparse(b); + } + + // **`v4()` - Generate random UUID** + + // See https://github.com/broofa/node-uuid for API details + function v4(options, buf, offset) { + // Deprecated - 'format' argument, as supported in v1.2 + var i = buf && offset || 0; + + if (typeof(options) == 'string') { + buf = options == 'binary' ? new BufferClass(16) : null; + options = null; + } + options = options || {}; + + var rnds = options.random || (options.rng || _rng)(); + + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ii++) { + buf[i + ii] = rnds[ii]; + } + } + + return buf || unparse(rnds); + } + + // Export public API + var uuid = v4; + uuid.v1 = v1; + uuid.v4 = v4; + uuid.parse = parse; + uuid.unparse = unparse; + uuid.BufferClass = BufferClass; + + if (typeof define === 'function' && define.amd) { + // Publish as AMD module + define(function() {return uuid;}); + } else if (typeof(module) != 'undefined' && module.exports) { + // Publish as node.js module + module.exports = uuid; + } else { + // Publish as global (in browsers) + var _previousRoot = _global.uuid; + + // **`noConflict()` - (browser only) to reset global 'uuid' var** + uuid.noConflict = function() { + _global.uuid = _previousRoot; + return uuid; + }; + + _global.uuid = uuid; + } +}).call(this); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/LICENSE @@ -0,0 +1,55 @@ +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +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 + +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 \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md new file mode 100644 index 00000000..34c4a85d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/README.md @@ -0,0 +1,4 @@ +oauth-sign +========== + +OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js new file mode 100644 index 00000000..e35bfa67 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/index.js @@ -0,0 +1,43 @@ +var crypto = require('crypto') + , qs = require('querystring') + ; + +function sha1 (key, body) { + return crypto.createHmac('sha1', key).update(body).digest('base64') +} + +function rfc3986 (str) { + return encodeURIComponent(str) + .replace(/!/g,'%21') + .replace(/\*/g,'%2A') + .replace(/\(/g,'%28') + .replace(/\)/g,'%29') + .replace(/'/g,'%27') + ; +} + +function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) { + // adapted from https://dev.twitter.com/docs/auth/oauth and + // https://dev.twitter.com/docs/auth/creating-signature + + var querystring = Object.keys(params).sort().map(function(key){ + // big WTF here with the escape + encoding but it's what twitter wants + return escape(rfc3986(key)) + "%3D" + escape(rfc3986(params[key])) + }).join('%26') + + var base = [ + httpMethod ? httpMethod.toUpperCase() : 'GET', + rfc3986(base_uri), + querystring + ].join('&') + + var key = [ + consumer_secret, + token_secret || '' + ].map(rfc3986).join('&') + + return sha1(key, base) +} + +exports.hmacsign = hmacsign +exports.rfc3986 = rfc3986 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json new file mode 100644 index 00000000..abc9d21d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/package.json @@ -0,0 +1,35 @@ +{ + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "name": "oauth-sign", + "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", + "version": "0.3.0", + "repository": { + "url": "https://github.com/mikeal/oauth-sign" + }, + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "scripts": { + "test": "node test.js" + }, + "readme": "oauth-sign\n==========\n\nOAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. \n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/mikeal/oauth-sign/issues" + }, + "homepage": "https://github.com/mikeal/oauth-sign", + "_id": "oauth-sign@0.3.0", + "dist": { + "shasum": "cb540f93bb2b22a7d5941691a288d60e8ea9386e" + }, + "_from": "oauth-sign@~0.3.0", + "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js new file mode 100644 index 00000000..46955ff6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/oauth-sign/test.js @@ -0,0 +1,49 @@ +var hmacsign = require('./index').hmacsign + , assert = require('assert') + , qs = require('querystring') + ; + +// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth + +var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', + { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' + , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' + , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' + , oauth_signature_method: 'HMAC-SHA1' + , oauth_timestamp: '1272323042' + , oauth_version: '1.0' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98") + +console.log(reqsign) +console.log('8wUi7m5HFQy76nowoCThusfgB+Q=') +assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=') + +var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', + { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' + , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8' + , oauth_signature_method: 'HMAC-SHA1' + , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc' + , oauth_timestamp: '1272323047' + , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' + , oauth_version: '1.0' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") + +console.log(accsign) +console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') +assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') + +var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', + { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" + , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" + , oauth_signature_method: "HMAC-SHA1" + , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" + , oauth_timestamp: "1272325550" + , oauth_version: "1.0" + , status: 'setting up my twitter 私のさえずりを設定する' + }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") + +console.log(upsign) +console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=') +assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=') + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules new file mode 100644 index 00000000..49e31dac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.gitmodules @@ -0,0 +1,6 @@ +[submodule "support/expresso"] + path = support/expresso + url = git://github.com/visionmedia/expresso.git +[submodule "support/should"] + path = support/should + url = git://github.com/visionmedia/should.js.git diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore new file mode 100644 index 00000000..e85ce2af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/.npmignore @@ -0,0 +1,7 @@ +test +.travis.yml +benchmark.js +component.json +examples.js +History.md +Makefile diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md new file mode 100644 index 00000000..27e54a4a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/Readme.md @@ -0,0 +1,58 @@ +# node-querystring + + query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others. + +## Installation + + $ npm install qs + +## Examples + +```js +var qs = require('qs'); + +qs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com'); +// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } } + +qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }}) +// => user[name]=Tobi&user[email]=tobi%40learnboost.com +``` + +## Testing + +Install dev dependencies: + + $ npm install -d + +and execute: + + $ make test + +browser: + + $ open test/browser/index.html + +## License + +(The MIT License) + +Copyright (c) 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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js new file mode 100644 index 00000000..b05938ac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/index.js @@ -0,0 +1,366 @@ +/** + * Object#toString() ref for stringify(). + */ + +var toString = Object.prototype.toString; + +/** + * Object#hasOwnProperty ref + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Array#indexOf shim. + */ + +var indexOf = typeof Array.prototype.indexOf === 'function' + ? function(arr, el) { return arr.indexOf(el); } + : function(arr, el) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === el) return i; + } + return -1; + }; + +/** + * Array.isArray shim. + */ + +var isArray = Array.isArray || function(arr) { + return toString.call(arr) == '[object Array]'; +}; + +/** + * Object.keys shim. + */ + +var objectKeys = Object.keys || function(obj) { + var ret = []; + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + ret.push(key); + } + } + return ret; +}; + +/** + * Array#forEach shim. + */ + +var forEach = typeof Array.prototype.forEach === 'function' + ? function(arr, fn) { return arr.forEach(fn); } + : function(arr, fn) { + for (var i = 0; i < arr.length; i++) fn(arr[i]); + }; + +/** + * Array#reduce shim. + */ + +var reduce = function(arr, fn, initial) { + if (typeof arr.reduce === 'function') return arr.reduce(fn, initial); + var res = initial; + for (var i = 0; i < arr.length; i++) res = fn(res, arr[i]); + return res; +}; + +/** + * Cache non-integer test regexp. + */ + +var isint = /^[0-9]+$/; + +function promote(parent, key) { + if (parent[key].length == 0) return parent[key] = {} + var t = {}; + for (var i in parent[key]) { + if (hasOwnProperty.call(parent[key], i)) { + t[i] = parent[key][i]; + } + } + parent[key] = t; + return t; +} + +function parse(parts, parent, key, val) { + var part = parts.shift(); + + // illegal + if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; + + // end + if (!part) { + if (isArray(parent[key])) { + parent[key].push(val); + } else if ('object' == typeof parent[key]) { + parent[key] = val; + } else if ('undefined' == typeof parent[key]) { + parent[key] = val; + } else { + parent[key] = [parent[key], val]; + } + // array + } else { + var obj = parent[key] = parent[key] || []; + if (']' == part) { + if (isArray(obj)) { + if ('' != val) obj.push(val); + } else if ('object' == typeof obj) { + obj[objectKeys(obj).length] = val; + } else { + obj = parent[key] = [parent[key], val]; + } + // prop + } else if (~indexOf(part, ']')) { + part = part.substr(0, part.length - 1); + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + // key + } else { + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + } + } +} + +/** + * Merge parent key/val pair. + */ + +function merge(parent, key, val){ + if (~indexOf(key, ']')) { + var parts = key.split('[') + , len = parts.length + , last = len - 1; + parse(parts, parent, 'base', val); + // optimize + } else { + if (!isint.test(key) && isArray(parent.base)) { + var t = {}; + for (var k in parent.base) t[k] = parent.base[k]; + parent.base = t; + } + set(parent.base, key, val); + } + + return parent; +} + +/** + * Compact sparse arrays. + */ + +function compact(obj) { + if ('object' != typeof obj) return obj; + + if (isArray(obj)) { + var ret = []; + + for (var i in obj) { + if (hasOwnProperty.call(obj, i)) { + ret.push(obj[i]); + } + } + + return ret; + } + + for (var key in obj) { + obj[key] = compact(obj[key]); + } + + return obj; +} + +/** + * Parse the given obj. + */ + +function parseObject(obj){ + var ret = { base: {} }; + + forEach(objectKeys(obj), function(name){ + merge(ret, name, obj[name]); + }); + + return compact(ret.base); +} + +/** + * Parse the given str. + */ + +function parseString(str){ + var ret = reduce(String(str).split('&'), function(ret, pair){ + var eql = indexOf(pair, '=') + , brace = lastBraceInKey(pair) + , key = pair.substr(0, brace || eql) + , val = pair.substr(brace || eql, pair.length) + , val = val.substr(indexOf(val, '=') + 1, val.length); + + // ?foo + if ('' == key) key = pair, val = ''; + if ('' == key) return ret; + + return merge(ret, decode(key), decode(val)); + }, { base: {} }).base; + + return compact(ret); +} + +/** + * Parse the given query `str` or `obj`, returning an object. + * + * @param {String} str | {Object} obj + * @return {Object} + * @api public + */ + +exports.parse = function(str){ + if (null == str || '' == str) return {}; + return 'object' == typeof str + ? parseObject(str) + : parseString(str); +}; + +/** + * Turn the given `obj` into a query string + * + * @param {Object} obj + * @return {String} + * @api public + */ + +var stringify = exports.stringify = function(obj, prefix) { + if (isArray(obj)) { + return stringifyArray(obj, prefix); + } else if ('[object Object]' == toString.call(obj)) { + return stringifyObject(obj, prefix); + } else if ('string' == typeof obj) { + return stringifyString(obj, prefix); + } else { + return prefix + '=' + encodeURIComponent(String(obj)); + } +}; + +/** + * Stringify the given `str`. + * + * @param {String} str + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyString(str, prefix) { + if (!prefix) throw new TypeError('stringify expects an object'); + return prefix + '=' + encodeURIComponent(str); +} + +/** + * Stringify the given `arr`. + * + * @param {Array} arr + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyArray(arr, prefix) { + var ret = []; + if (!prefix) throw new TypeError('stringify expects an object'); + for (var i = 0; i < arr.length; i++) { + ret.push(stringify(arr[i], prefix + '[' + i + ']')); + } + return ret.join('&'); +} + +/** + * Stringify the given `obj`. + * + * @param {Object} obj + * @param {String} prefix + * @return {String} + * @api private + */ + +function stringifyObject(obj, prefix) { + var ret = [] + , keys = objectKeys(obj) + , key; + + for (var i = 0, len = keys.length; i < len; ++i) { + key = keys[i]; + if ('' == key) continue; + if (null == obj[key]) { + ret.push(encodeURIComponent(key) + '='); + } else { + ret.push(stringify(obj[key], prefix + ? prefix + '[' + encodeURIComponent(key) + ']' + : encodeURIComponent(key))); + } + } + + return ret.join('&'); +} + +/** + * Set `obj`'s `key` to `val` respecting + * the weird and wonderful syntax of a qs, + * where "foo=bar&foo=baz" becomes an array. + * + * @param {Object} obj + * @param {String} key + * @param {String} val + * @api private + */ + +function set(obj, key, val) { + var v = obj[key]; + if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; + if (undefined === v) { + obj[key] = val; + } else if (isArray(v)) { + v.push(val); + } else { + obj[key] = [v, val]; + } +} + +/** + * Locate last brace in `str` within the key. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function lastBraceInKey(str) { + var len = str.length + , brace + , c; + for (var i = 0; i < len; ++i) { + c = str[i]; + if (']' == c) brace = false; + if ('[' == c) brace = true; + if ('=' == c && !brace) return i; + } +} + +/** + * Decode `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +function decode(str) { + try { + return decodeURIComponent(str.replace(/\+/g, ' ')); + } catch (err) { + return str; + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json new file mode 100644 index 00000000..313485c0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/qs/package.json @@ -0,0 +1,38 @@ +{ + "name": "qs", + "description": "querystring parser", + "version": "0.6.6", + "keywords": [ + "query string", + "parser", + "component" + ], + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-querystring.git" + }, + "devDependencies": { + "mocha": "*", + "expect.js": "*" + }, + "scripts": { + "test": "make test" + }, + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "main": "index", + "engines": { + "node": "*" + }, + "readme": "# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require('qs');\n\nqs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com');\n// => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } }\n\nqs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", + "readmeFilename": "Readme.md", + "bugs": { + "url": "https://github.com/visionmedia/node-querystring/issues" + }, + "homepage": "https://github.com/visionmedia/node-querystring", + "_id": "qs@0.6.6", + "_from": "qs@~0.6.0" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc new file mode 100644 index 00000000..8fcead4f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.jshintrc @@ -0,0 +1,72 @@ +{ + // Settings + "passfail" : false, // Stop on first error. + "maxerr" : 100, // Maximum error before stopping. + + + // Predefined globals whom JSHint will ignore. + "browser" : false, // Standard browser globals e.g. `window`, `document`. + "node" : true, + "rhino" : false, + "couch" : false, + "wsh" : false, // Windows Scripting Host. + + "jquery" : false, + "prototypejs" : false, + "mootools" : false, + "dojo" : false, + + "predef" : [ // Custom globals. + "escape", "unescape" // aren't picked up by node flag above :/ + ], + + + // Development. + "debug" : false, // Allow debugger statements e.g. browser breakpoints. + "devel" : false, // Allow developments statements e.g. `console.log();`. + + + // EcmaScript 5. + "es5" : true, // Allow EcmaScript 5 syntax. + "esnext" : true, // Allow ES "next" syntax, specifically 'const' (V8 has this) + "strict" : false, // Require `use strict` pragma in every file. + "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). + + + // The Good Parts. + "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). + "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. + "bitwise" : true, // Prohibit bitwise operators (&, |, ^, etc.). + "boss" : false, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. + "curly" : false, // Require {} for every new block or scope. + "eqeqeq" : false, // Require triple equals i.e. `===`. + "eqnull" : true, // Tolerate use of `== null`. + "evil" : false, // Tolerate use of `eval`. + "expr" : true, // Tolerate `ExpressionStatement` as Programs. + "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. + "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef" : false, // Prohibit variable use before definition. + "loopfunc" : false, // Allow functions to be defined within loops. + "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "regexp" : true, // Prohibit `.` and `[^...]` in regular expressions. + "regexdash" : false, // Tolerate unescaped last dash i.e. `[-...]`. + "scripturl" : true, // Tolerate script-targeted URLs. + "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. + "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. + "undef" : true, // Require all non-global variables be declared before they are used. + + + // Personal styling prefrences. + "lastsemic" : true, // Prohibit missing semicolon for the last statement in a one-line block + "newcap" : false, // Require capitalization of all constructor functions e.g. `new F()`. + "noempty" : true, // Prohipit use of empty blocks. + "nonew" : true, // Prohibit use of constructors for side-effects. + "nomen" : false, // Prohibit use of initial or trailing underbars in names. + "onevar" : false, // Allow only one `var` statement per function. + "onecase" : false, // Allow switches with one case statement + "plusplus" : false, // Prohibit use of `++` & `--`. + "proto" : false, // Allow use of __proto__ + "sub" : true, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. + "trailing" : true, // Prohibit trailing whitespaces. + "white" : false // Check against strict whitespace and indentation rules. +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore new file mode 100644 index 00000000..54efff98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/.npmignore @@ -0,0 +1,3 @@ +node_modules/ +.*.sw[nmop] +npm-debug.log diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE new file mode 100644 index 00000000..3fac4c85 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/LICENSE @@ -0,0 +1,78 @@ +Copyright GoInstant, Inc. and other contributors. 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. + +The following exceptions apply: + +=== + +`pubSufTest()` of generate-pubsuffix.js is in the public domain. + + // Any copyright is dedicated to the Public Domain. + // http://creativecommons.org/publicdomain/zero/1.0/ + +=== + +`public-suffix.txt` was obtained from + +via . + +That file contains the usual Mozilla triple-license, for which this project uses it +under the terms of the MPL 1.1: + + // ***** BEGIN LICENSE BLOCK ***** + // Version: MPL 1.1/GPL 2.0/LGPL 2.1 + // + // The contents of this file are subject to the Mozilla Public License Version + // 1.1 (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.mozilla.org/MPL/ + // + // Software distributed under the License is distributed on an "AS IS" basis, + // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + // for the specific language governing rights and limitations under the + // License. + // + // The Original Code is the Public Suffix List. + // + // The Initial Developer of the Original Code is + // Jo Hermans . + // Portions created by the Initial Developer are Copyright (C) 2007 + // the Initial Developer. All Rights Reserved. + // + // Contributor(s): + // Ruben Arakelyan + // Gervase Markham + // Pamela Greene + // David Triendl + // Jothan Frakes + // The kind representatives of many TLD registries + // + // Alternatively, the contents of this file may be used under the terms of + // either the GNU General Public License Version 2 or later (the "GPL"), or + // the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + // in which case the provisions of the GPL or the LGPL are applicable instead + // of those above. If you wish to allow use of your version of this file only + // under the terms of either the GPL or the LGPL, and not to allow others to + // use your version of this file under the terms of the MPL, indicate your + // decision by deleting the provisions above and replace them with the notice + // and other provisions required by the GPL or the LGPL. If you do not delete + // the provisions above, a recipient may use your version of this file under + // the terms of any one of the MPL, the GPL or the LGPL. + // + // ***** END LICENSE BLOCK ***** diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md new file mode 100644 index 00000000..fd1dbb1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/README.md @@ -0,0 +1,380 @@ +[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js + +![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg) + +# Synopsis + +``` javascript +var cookies = require('tough-cookie'); // note: not 'cookie', 'cookies' or 'node-cookie' +var Cookie = cookies.Cookie; +var cookie = Cookie.parse(header); +cookie.value = 'somethingdifferent'; +header = cookie.toString(); + +var cookiejar = new cookies.CookieJar(); +cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb); +// ... +cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) { + res.headers['cookie'] = cookies.join('; '); +}); +``` + +# Installation + +It's _so_ easy! + +`npm install tough-cookie` + +Requires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default. + +Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken. + +# API + +cookies +======= + +Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound". + +parseDate(string[,strict]) +----------------- + +Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. "Thu, 01 Jan 1970 00:00:010 GMT" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid). + +formatDate(date) +---------------- + +Format a Date into a RFC1123 string (the RFC6265-recommended format). + +canonicalDomain(str) +-------------------- + +Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects). + +domainMatch(str,domStr[,canonicalize=true]) +------------------------------------------- + +Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match". + +The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not. + +defaultPath(path) +----------------- + +Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC. + +The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output. + +pathMatch(reqPath,cookiePath) +----------------------------- + +Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean. + +This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`. + +parse(header[,strict=false]) +---------------------------- + +alias for `Cookie.parse(header[,strict])` + +fromJSON(string) +---------------- + +alias for `Cookie.fromJSON(string)` + +getPublicSuffix(hostname) +------------------------- + +Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it. + +For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`. + +For further information, see http://publicsuffix.org/. This module derives its list from that site. + +cookieCompare(a,b) +------------------ + +For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest. + +``` javascript +var cookies = [ /* unsorted array of Cookie objects */ ]; +cookies = cookies.sort(cookieCompare); +``` + +permuteDomain(domain) +--------------------- + +Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores. + + +permutePath(path) +----------------- + +Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores. + +Cookie +====== + +Cookie.parse(header[,strict=false]) +----------------------------------- + +Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. If in strict mode, returns `undefined` if the cookie doesn't follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off. + +Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response: + +``` javascript +if (res.headers['set-cookie'] instanceof Array) + cookies = res.headers['set-cookie'].map(Cookie.parse); +else + cookies = [Cookie.parse(res.headers['set-cookie'])]; +``` + +Cookie.fromJSON(string) +----------------------- + +Convert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects. + +Properties +========== + + * _key_ - string - the name or key of the cookie (default "") + * _value_ - string - the value of the cookie (default "") + * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()` + * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()` + * _domain_ - string - the `Domain=` attribute of the cookie + * _path_ - string - the `Path=` of the cookie + * _secure_ - boolean - the `Secure` cookie flag + * _httpOnly_ - boolean - the `HttpOnly` cookie flag + * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside) + +After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes: + + * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied) + * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one. + * _created_ - `Date` - when this cookie was added to the jar + * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute. + +Construction([{options}]) +------------ + +Receives an options object that can contain any Cookie properties, uses the default for unspecified properties. + +.toString() +----------- + +encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`. + +.cookieString() +--------------- + +encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '='). + +.setExpires(String) +------------------- + +sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set. + +.setMaxAge(number) +------------------- + +sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly. + +.expiryTime([now=Date.now()]) +----------------------------- + +.expiryDate([now=Date.now()]) +----------------------------- + +expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds. + +Max-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute. + +If Expires (`.expires`) is set, that's returned. + +Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents). + +.TTL([now=Date.now()]) +--------- + +compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply. + +The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. + +.canonicalizedDoman() +--------------------- + +.cdomain() +---------- + +return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters. + +.validate() +----------- + +Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive. + +validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct: + +``` javascript +if (cookie.validate() === true) { + // it's tasty +} else { + // yuck! +} +``` + +CookieJar +========= + +Construction([store = new MemoryCookieStore()][, rejectPublicSuffixes]) +------------ + +Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used. + + +Attributes +---------- + + * _rejectPublicSuffixes_ - boolean - reject cookies with domains like "com" and "co.uk" (default: `true`) + +Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods. + +.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie)) +------------------------------------------------------------------- + +Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _strict_ - boolean - default `false` - perform extra checks + * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren't ignored by this option. + +As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual). + +.storeCookie(cookie, [{options},] cb(err,cookie)) +------------------------------------------------- + +__REMOVED__ removed in lieu of the CookieStore API below + +.getCookies(currentUrl, [{options},] cb(err,cookies)) +----------------------------------------------------- + +Retrieve the list of cookies that can be sent in a Cookie header for the current url. + +If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially). + * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it). + +The `.lastAccessed` property of the returned cookies will have been updated. + +.getCookieString(...) +--------------------- + +Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`. + +.getSetCookieStrings(...) +------------------------- + +Accepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`. + +# CookieStore API + +The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores. + +All `domain` parameters will have been normalized before calling. + +The Cookie store must have all of the following methods. + +store.findCookie(domain, path, key, cb(err,cookie)) +--------------------------------------------------- + +Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned. + +Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error). + +store.findCookies(domain, path, cb(err,cookies)) +------------------------------------------------ + +Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above. + +If no cookies are found, the callback MUST be passed an empty array. + +The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done. + +As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only). + +store.putCookie(cookie, cb(err)) +-------------------------------- + +Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur. + +The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties. + +Pass an error if the cookie cannot be stored. + +store.updateCookie(oldCookie, newCookie, cb(err)) +------------------------------------------------- + +Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store. + +The `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion). + +Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object. + +The `newCookie` and `oldCookie` objects MUST NOT be modified. + +Pass an error if the newCookie cannot be stored. + +store.removeCookie(domain, path, key, cb(err)) +---------------------------------------------- + +Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint). + +The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie. + +store.removeCookies(domain, path, cb(err)) +------------------------------------------ + +Removes matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed. + +Pass an error ONLY if removing any existing cookies failed. + +# TODO + + * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()` + * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891 + * better tests for `validate()`? + +# Copyright and License + +(tl;dr: MIT with some MPL/1.1) + +Copyright GoInstant, Inc. and other contributors. 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. + +Portions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js new file mode 100644 index 00000000..a7fa5452 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js @@ -0,0 +1,230 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +var fs = require('fs'); +var assert = require('assert'); +var punycode = require('punycode'); + +fs.readFile('./public-suffix.txt', 'utf8', function(err,string) { + if (err) throw err; + var lines = string.split("\n"); + process.nextTick(function() { + processList(lines); + }); +}); + +var index = {}; + +var COMMENT = new RegExp('//.+'); +function processList(lines) { + while (lines.length) { + var line = lines.shift(); + line = line.replace(COMMENT,'').trim(); + if (!line) continue; + addToIndex(index,line); + } + + pubSufTest(); + + var w = fs.createWriteStream('./lib/pubsuffix.js',{ + flags: 'w', + encoding: 'utf8', + mode: 0644, + }); + w.on('end', process.exit); + w.write("/****************************************************\n"); + w.write(" * AUTOMATICALLY GENERATED by generate-pubsuffix.js *\n"); + w.write(" * DO NOT EDIT! *\n"); + w.write(" ****************************************************/\n\n"); + + w.write("module.exports.getPublicSuffix = "); + w.write(getPublicSuffix.toString()); + w.write(";\n\n"); + + w.write("// The following generated structure is used under the MPL version 1.1\n"); + w.write("// See public-suffix.txt for more information\n\n"); + w.write("var index = module.exports.index = Object.freeze(\n"); + w.write(JSON.stringify(index)); + w.write(");\n\n"); + w.write("// END of automatically generated file\n"); + + w.end(); +} + +function addToIndex(index,line) { + var prefix = ''; + if (line.replace(/^(!|\*\.)/)) { + prefix = RegExp.$1; + line = line.slice(prefix.length); + } + line = prefix + punycode.toASCII(line); + + if (line.substr(0,1) == '!') + index[line.substr(1)] = false; + else + index[line] = true; +} + +// include the licence in the function since it gets written to pubsuffix.js +function getPublicSuffix(domain) { + /* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + if (!domain) return null; + if (domain.match(/^\./)) return null; + + domain = domain.toLowerCase(); + var parts = domain.split('.').reverse(); + + var suffix = ''; + var suffixLen = 0; + for (var i=0; i suffixLen) { + return parts.slice(0,suffixLen+1).reverse().join('.'); + } + + return null; +} + +function checkPublicSuffix(give,get) { + var got = getPublicSuffix(give); + assert.equal(got, get, give+' should be '+(get==null?'NULL':get)+' but got '+got); +} + +// pubSufTest() was converted to JavaScript from http://publicsuffix.org/list/test.txt +function pubSufTest() { + // For this function-scope and this function-scope ONLY: + // Any copyright is dedicated to the Public Domain. + // http://creativecommons.org/publicdomain/zero/1.0/ + + // NULL input. + checkPublicSuffix(null, null); + // Mixed case. + checkPublicSuffix('COM', null); + checkPublicSuffix('example.COM', 'example.com'); + checkPublicSuffix('WwW.example.COM', 'example.com'); + // Leading dot. + checkPublicSuffix('.com', null); + checkPublicSuffix('.example', null); + checkPublicSuffix('.example.com', null); + checkPublicSuffix('.example.example', null); + // Unlisted TLD. + checkPublicSuffix('example', null); + checkPublicSuffix('example.example', null); + checkPublicSuffix('b.example.example', null); + checkPublicSuffix('a.b.example.example', null); + // Listed, but non-Internet, TLD. + checkPublicSuffix('local', null); + checkPublicSuffix('example.local', null); + checkPublicSuffix('b.example.local', null); + checkPublicSuffix('a.b.example.local', null); + // TLD with only 1 rule. + checkPublicSuffix('biz', null); + checkPublicSuffix('domain.biz', 'domain.biz'); + checkPublicSuffix('b.domain.biz', 'domain.biz'); + checkPublicSuffix('a.b.domain.biz', 'domain.biz'); + // TLD with some 2-level rules. + checkPublicSuffix('com', null); + checkPublicSuffix('example.com', 'example.com'); + checkPublicSuffix('b.example.com', 'example.com'); + checkPublicSuffix('a.b.example.com', 'example.com'); + checkPublicSuffix('uk.com', null); + checkPublicSuffix('example.uk.com', 'example.uk.com'); + checkPublicSuffix('b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('a.b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('test.ac', 'test.ac'); + // TLD with only 1 (wildcard) rule. + checkPublicSuffix('cy', null); + checkPublicSuffix('c.cy', null); + checkPublicSuffix('b.c.cy', 'b.c.cy'); + checkPublicSuffix('a.b.c.cy', 'b.c.cy'); + // More complex TLD. + checkPublicSuffix('jp', null); + checkPublicSuffix('test.jp', 'test.jp'); + checkPublicSuffix('www.test.jp', 'test.jp'); + checkPublicSuffix('ac.jp', null); + checkPublicSuffix('test.ac.jp', 'test.ac.jp'); + checkPublicSuffix('www.test.ac.jp', 'test.ac.jp'); + checkPublicSuffix('kyoto.jp', null); + checkPublicSuffix('c.kyoto.jp', null); + checkPublicSuffix('b.c.kyoto.jp', 'b.c.kyoto.jp'); + checkPublicSuffix('a.b.c.kyoto.jp', 'b.c.kyoto.jp'); + checkPublicSuffix('pref.kyoto.jp', 'pref.kyoto.jp'); // Exception rule. + checkPublicSuffix('www.pref.kyoto.jp', 'pref.kyoto.jp'); // Exception rule. + checkPublicSuffix('city.kyoto.jp', 'city.kyoto.jp'); // Exception rule. + checkPublicSuffix('www.city.kyoto.jp', 'city.kyoto.jp'); // Exception rule. + // TLD with a wildcard rule and exceptions. + checkPublicSuffix('om', null); + checkPublicSuffix('test.om', null); + checkPublicSuffix('b.test.om', 'b.test.om'); + checkPublicSuffix('a.b.test.om', 'b.test.om'); + checkPublicSuffix('songfest.om', 'songfest.om'); + checkPublicSuffix('www.songfest.om', 'songfest.om'); + // US K12. + checkPublicSuffix('us', null); + checkPublicSuffix('test.us', 'test.us'); + checkPublicSuffix('www.test.us', 'test.us'); + checkPublicSuffix('ak.us', null); + checkPublicSuffix('test.ak.us', 'test.ak.us'); + checkPublicSuffix('www.test.ak.us', 'test.ak.us'); + checkPublicSuffix('k12.ak.us', null); + checkPublicSuffix('test.k12.ak.us', 'test.k12.ak.us'); + checkPublicSuffix('www.test.k12.ak.us', 'test.k12.ak.us'); + + +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js new file mode 100644 index 00000000..1d8615b5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/cookie.js @@ -0,0 +1,947 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +/*jshint regexp:false */ +var net = require('net'); +var urlParse = require('url').parse; +var pubsuffix = require('./pubsuffix'); + +var punycode; +try { + punycode = require('punycode'); +} catch(e) { + console.warn("cookie: can't load punycode; won't use punycode for domain normalization"); +} + +var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/; + +// From RFC2616 S2.2: +var TOKEN = /[\x21\x23-\x26\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/; + +// From RFC6265 S4.1.1 +// note that it excludes \x3B ";" +var COOKIE_OCTET = /[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/; +var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/; + +// The name/key cannot be empty but the value can (S5.2): +var COOKIE_PAIR_STRICT = new RegExp('^('+TOKEN.source+'+)=("?)('+COOKIE_OCTET.source+'*)\\2'); +var COOKIE_PAIR = /^([^=\s]+)\s*=\s*("?)\s*(.*)\s*\2/; + +// RFC6265 S4.1.1 defines extension-av as 'any CHAR except CTLs or ";"' +// Note ';' is \x3B +var NON_CTL_SEMICOLON = /[\x20-\x3A\x3C-\x7E]+/; +var EXTENSION_AV = NON_CTL_SEMICOLON; +var PATH_VALUE = NON_CTL_SEMICOLON; + +// Used for checking whether or not there is a trailing semi-colon +var TRAILING_SEMICOLON = /;+$/; + +/* RFC6265 S5.1.1.5: + * [fail if] the day-of-month-value is less than 1 or greater than 31 + */ +var DAY_OF_MONTH = /^(0?[1-9]|[12][0-9]|3[01])$/; + +/* RFC6265 S5.1.1.5: + * [fail if] + * * the hour-value is greater than 23, + * * the minute-value is greater than 59, or + * * the second-value is greater than 59. + */ +var TIME = /(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/; +var STRICT_TIME = /^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/; + +var MONTH = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$/i; +var MONTH_TO_NUM = { + jan:0, feb:1, mar:2, apr:3, may:4, jun:5, jul:6, aug:7, sep:8, oct:9, nov:10, dec:11 +}; +var NUM_TO_MONTH = [ + 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' +]; +var NUM_TO_DAY = [ + 'Sun','Mon','Tue','Wed','Thu','Fri','Sat' +]; + +var YEAR = /^([1-9][0-9]{1,3})$/; // 2 to 4 digits (will check range when parsing) + +var MAX_TIME = 2147483647000; // 31-bit max +var MAX_DATE = new Date(CookieJar.MAX_TIME); // 31-bit max +var MIN_TIME = 0; // 31-bit min +var MIN_DATE = new Date(CookieJar.MIN_TIME); // 31-bit min + + +// RFC6265 S5.1.1 date parser: +function parseDate(str,strict) { + if (!str) return; + var found_time, found_dom, found_month, found_year; + + /* RFC6265 S5.1.1: + * 2. Process each date-token sequentially in the order the date-tokens + * appear in the cookie-date + */ + var tokens = str.split(DATE_DELIM); + if (!tokens) return; + + var date = new Date(); + date.setMilliseconds(0); + + for (var i=0; i= 10 ? d : '0'+d; + var h = date.getUTCHours(); h = h >= 10 ? h : '0'+h; + var m = date.getUTCMinutes(); m = m >= 10 ? m : '0'+m; + var s = date.getUTCSeconds(); s = s >= 10 ? s : '0'+s; + return NUM_TO_DAY[date.getUTCDay()] + ', ' + + d+' '+ NUM_TO_MONTH[date.getUTCMonth()] +' '+ date.getUTCFullYear() +' '+ + h+':'+m+':'+s+' GMT'; +} + +// S5.1.2 Canonicalized Host Names +function canonicalDomain(str) { + if (str == null) return null; + str = str.trim().replace(/^\./,''); // S4.1.2.3 & S5.2.3: ignore leading . + + // convert to IDN if any non-ASCII characters + if (punycode && /[^\u0001-\u007f]/.test(str)) + str = punycode.toASCII(str); + + return str.toLowerCase(); +} + +// S5.1.3 Domain Matching +function domainMatch(str, domStr, canonicalize) { + if (str == null || domStr == null) return null; + if (canonicalize !== false) { + str = canonicalDomain(str); + domStr = canonicalDomain(domStr); + } + + /* + * "The domain string and the string are identical. (Note that both the + * domain string and the string will have been canonicalized to lower case at + * this point)" + */ + if (str == domStr) return true; + + /* "All of the following [three] conditions hold:" (order adjusted from the RFC) */ + + /* "* The string is a host name (i.e., not an IP address)." */ + if (net.isIP(str)) return false; + + /* "* The domain string is a suffix of the string" */ + var idx = str.indexOf(domStr); + if (idx <= 0) return false; // it's a non-match (-1) or prefix (0) + + // e.g "a.b.c".indexOf("b.c") === 2 + // 5 === 3+2 + if (str.length !== domStr.length + idx) // it's not a suffix + return false; + + /* "* The last character of the string that is not included in the domain + * string is a %x2E (".") character." */ + if (str.substr(idx-1,1) !== '.') return false; + return true; +} + + +// RFC6265 S5.1.4 Paths and Path-Match + +/* + * "The user agent MUST use an algorithm equivalent to the following algorithm + * to compute the default-path of a cookie:" + * + * Assumption: the path (and not query part or absolute uri) is passed in. + */ +function defaultPath(path) { + // "2. If the uri-path is empty or if the first character of the uri-path is not + // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps. + if (!path || path.substr(0,1) !== "/") return "/"; + + // "3. If the uri-path contains no more than one %x2F ("/") character, output + // %x2F ("/") and skip the remaining step." + if (path === "/") return path; + + var rightSlash = path.lastIndexOf("/"); + if (rightSlash === 0) return "/"; + + // "4. Output the characters of the uri-path from the first character up to, + // but not including, the right-most %x2F ("/")." + return path.slice(0, rightSlash); +} + +/* + * "A request-path path-matches a given cookie-path if at least one of the + * following conditions holds:" + */ +function pathMatch(reqPath,cookiePath) { + // "o The cookie-path and the request-path are identical." + if (cookiePath === reqPath) + return true; + + var idx = reqPath.indexOf(cookiePath); + if (idx === 0) { + // "o The cookie-path is a prefix of the request-path, and the last + // character of the cookie-path is %x2F ("/")." + if (cookiePath.substr(-1) === "/") + return true; + + // " o The cookie-path is a prefix of the request-path, and the first + // character of the request-path that is not included in the cookie- path + // is a %x2F ("/") character." + if (reqPath.substr(cookiePath.length,1) === "/") + return true; + } + + return false; +} + +function parse(str, strict) { + str = str.trim(); + + // S4.1.1 Trailing semi-colons are not part of the specification. + // If we are not in strict mode we remove the trailing semi-colons. + var semiColonCheck = TRAILING_SEMICOLON.exec(str); + if (semiColonCheck) { + if (strict) return; + str = str.slice(0, semiColonCheck.index); + } + + // We use a regex to parse the "name-value-pair" part of S5.2 + var firstSemi = str.indexOf(';'); // S5.2 step 1 + var pairRx = strict ? COOKIE_PAIR_STRICT : COOKIE_PAIR; + var result = pairRx.exec(firstSemi === -1 ? str : str.substr(0,firstSemi)); + + // Rx satisfies the "the name string is empty" and "lacks a %x3D ("=")" + // constraints as well as trimming any whitespace. + if (!result) return; + + var c = new Cookie(); + c.key = result[1]; // the regexp should trim() already + c.value = result[3]; // [2] is quotes or empty-string + + if (firstSemi === -1) return c; + + // S5.2.3 "unparsed-attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question)." plus later on in the same section + // "discard the first ";" and trim". + var unparsed = str.slice(firstSemi).replace(/^\s*;\s*/,'').trim(); + + // "If the unparsed-attributes string is empty, skip the rest of these + // steps." + if (unparsed.length === 0) return c; + + /* + * S5.2 says that when looping over the items "[p]rocess the attribute-name + * and attribute-value according to the requirements in the following + * subsections" for every item. Plus, for many of the individual attributes + * in S5.3 it says to use the "attribute-value of the last attribute in the + * cookie-attribute-list". Therefore, in this implementation, we overwrite + * the previous value. + */ + var cookie_avs = unparsed.split(/\s*;\s*/); + while (cookie_avs.length) { + var av = cookie_avs.shift(); + + if (strict && !EXTENSION_AV.test(av)) return; + + var av_sep = av.indexOf('='); + var av_key, av_value; + if (av_sep === -1) { + av_key = av; + av_value = null; + } else { + av_key = av.substr(0,av_sep); + av_value = av.substr(av_sep+1); + } + + av_key = av_key.trim().toLowerCase(); + if (av_value) av_value = av_value.trim(); + + switch(av_key) { + case 'expires': // S5.2.1 + if (!av_value) { if(strict){return}else{break;} } + var exp = parseDate(av_value,strict); + // "If the attribute-value failed to parse as a cookie date, ignore the + // cookie-av." + if (exp == null) { if(strict){return}else{break;} } + c.expires = exp; + // over and underflow not realistically a concern: V8's getTime() seems to + // store something larger than a 32-bit time_t (even with 32-bit node) + break; + + case 'max-age': // S5.2.2 + if (!av_value) { if(strict){return}else{break;} } + // "If the first character of the attribute-value is not a DIGIT or a "-" + // character ...[or]... If the remainder of attribute-value contains a + // non-DIGIT character, ignore the cookie-av." + if (!/^-?[0-9]+$/.test(av_value)) { if(strict){return}else{break;} } + var delta = parseInt(av_value,10); + if (strict && delta <= 0) return; // S4.1.1 + // "If delta-seconds is less than or equal to zero (0), let expiry-time + // be the earliest representable date and time." + c.setMaxAge(delta); + break; + + case 'domain': // S5.2.3 + // "If the attribute-value is empty, the behavior is undefined. However, + // the user agent SHOULD ignore the cookie-av entirely." + if (!av_value) { if(strict){return}else{break;} } + // S5.2.3 "Let cookie-domain be the attribute-value without the leading %x2E + // (".") character." + var domain = av_value.trim().replace(/^\./,''); + if (!domain) { if(strict){return}else{break;} } // see "is empty" above + // "Convert the cookie-domain to lower case." + c.domain = domain.toLowerCase(); + break; + + case 'path': // S5.2.4 + /* + * "If the attribute-value is empty or if the first character of the + * attribute-value is not %x2F ("/"): + * Let cookie-path be the default-path. + * Otherwise: + * Let cookie-path be the attribute-value." + * + * We'll represent the default-path as null since it depends on the + * context of the parsing. + */ + if (!av_value || av_value.substr(0,1) != "/") { if(strict){return}else{break;} } + c.path = av_value; + break; + + case 'secure': // S5.2.5 + /* + * "If the attribute-name case-insensitively matches the string "Secure", + * the user agent MUST append an attribute to the cookie-attribute-list + * with an attribute-name of Secure and an empty attribute-value." + */ + if (av_value != null) { if(strict){return} } + c.secure = true; + break; + + case 'httponly': // S5.2.6 -- effectively the same as 'secure' + if (av_value != null) { if(strict){return} } + c.httpOnly = true; + break; + + default: + c.extensions = c.extensions || []; + c.extensions.push(av); + break; + } + } + + // ensure a default date for sorting: + c.creation = new Date(); + return c; +} + +function fromJSON(str) { + if (!str) return null; + + var obj; + try { + obj = JSON.parse(str); + } catch (e) { + return null; + } + + var c = new Cookie(); + for (var i=0; i 1) { + var lindex = path.lastIndexOf('/'); + if (lindex === 0) break; + path = path.substr(0,lindex); + permutations.push(path); + } + permutations.push('/'); + return permutations; +} + + +function Cookie (opts) { + if (typeof opts !== "object") return; + Object.keys(opts).forEach(function (key) { + if (Cookie.prototype.hasOwnProperty(key)) { + this[key] = opts[key] || Cookie.prototype[key]; + } + }.bind(this)); +} + +Cookie.parse = parse; +Cookie.fromJSON = fromJSON; + +Cookie.prototype.key = ""; +Cookie.prototype.value = ""; + +// the order in which the RFC has them: +Cookie.prototype.expires = "Infinity"; // coerces to literal Infinity +Cookie.prototype.maxAge = null; // takes precedence over expires for TTL +Cookie.prototype.domain = null; +Cookie.prototype.path = null; +Cookie.prototype.secure = false; +Cookie.prototype.httpOnly = false; +Cookie.prototype.extensions = null; + +// set by the CookieJar: +Cookie.prototype.hostOnly = null; // boolean when set +Cookie.prototype.pathIsDefault = null; // boolean when set +Cookie.prototype.creation = null; // Date when set; defaulted by Cookie.parse +Cookie.prototype.lastAccessed = null; // Date when set + +var cookieProperties = Object.freeze(Object.keys(Cookie.prototype).map(function(p) { + if (p instanceof Function) return; + return p; +})); +var numCookieProperties = cookieProperties.length; + +Cookie.prototype.inspect = function inspect() { + var now = Date.now(); + return 'Cookie="'+this.toString() + + '; hostOnly='+(this.hostOnly != null ? this.hostOnly : '?') + + '; aAge='+(this.lastAccessed ? (now-this.lastAccessed.getTime())+'ms' : '?') + + '; cAge='+(this.creation ? (now-this.creation.getTime())+'ms' : '?') + + '"'; +}; + +Cookie.prototype.validate = function validate() { + if (!COOKIE_OCTETS.test(this.value)) + return false; + if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires,true)) + return false; + if (this.maxAge != null && this.maxAge <= 0) + return false; // "Max-Age=" non-zero-digit *DIGIT + if (this.path != null && !PATH_VALUE.test(this.path)) + return false; + + var cdomain = this.cdomain(); + if (cdomain) { + if (cdomain.match(/\.$/)) + return false; // S4.1.2.3 suggests that this is bad. domainMatch() tests confirm this + var suffix = pubsuffix.getPublicSuffix(cdomain); + if (suffix == null) // it's a public suffix + return false; + } + return true; +}; + +Cookie.prototype.setExpires = function setExpires(exp) { + if (exp instanceof Date) this.expires = exp; + else this.expires = parseDate(exp) || "Infinity"; +}; + +Cookie.prototype.setMaxAge = function setMaxAge(age) { + if (age === Infinity || age === -Infinity) + this.maxAge = age.toString(); // so JSON.stringify() works + else + this.maxAge = age; +}; + +// gives Cookie header format +Cookie.prototype.cookieString = function cookieString() { + var val = this.value; + if (val == null) val = ''; + if (!val.length || COOKIE_OCTETS.test(val)) + return this.key+'='+val; + else + return this.key+'="'+val+'"'; +}; + +// gives Set-Cookie header format +Cookie.prototype.toString = function toString() { + var str = this.cookieString(); + + if (this.expires != Infinity) { + if (this.expires instanceof Date) + str += '; Expires='+formatDate(this.expires); + else + str += '; Expires='+this.expires; + } + + if (this.maxAge != null && this.maxAge != Infinity) + str += '; Max-Age='+this.maxAge; + + if (this.domain && !this.hostOnly) + str += '; Domain='+this.domain; + if (this.path) + str += '; Path='+this.path; + + if (this.secure) str += '; Secure'; + if (this.httpOnly) str += '; HttpOnly'; + if (this.extensions) { + this.extensions.forEach(function(ext) { + str += '; '+ext; + }); + } + + return str; +}; + +// TTL() partially replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere) +// S5.3 says to give the "latest representable date" for which we use Infinity +// For "expired" we use 0 +Cookie.prototype.TTL = function TTL(now) { + /* RFC6265 S4.1.2.2 If a cookie has both the Max-Age and the Expires + * attribute, the Max-Age attribute has precedence and controls the + * expiration date of the cookie. + * (Concurs with S5.3 step 3) + */ + if (this.maxAge != null) { + return this.maxAge<=0 ? 0 : this.maxAge*1000; + } + + var expires = this.expires; + if (expires != Infinity) { + if (!(expires instanceof Date)) { + expires = parseDate(expires) || Infinity; + } + + if (expires == Infinity) + return Infinity; + + return expires.getTime() - (now || Date.now()); + } + + return Infinity; +}; + +// expiryTime() replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere) +Cookie.prototype.expiryTime = function expiryTime(now) { + if (this.maxAge != null) { + var relativeTo = this.creation || now || new Date(); + var age = (this.maxAge <= 0) ? -Infinity : this.maxAge*1000; + return relativeTo.getTime() + age; + } + + if (this.expires == Infinity) return Infinity; + return this.expires.getTime(); +}; + +// expiryDate() replaces the "expiry-time" parts of S5.3 step 3 (setCookie() +// elsewhere), except it returns a Date +Cookie.prototype.expiryDate = function expiryDate(now) { + var millisec = this.expiryTime(now); + if (millisec == Infinity) return new Date(MAX_TIME); + else if (millisec == -Infinity) return new Date(MIN_TIME); + else return new Date(millisec); +}; + +// This replaces the "persistent-flag" parts of S5.3 step 3 +Cookie.prototype.isPersistent = function isPersistent() { + return (this.maxAge != null || this.expires != Infinity); +}; + +// Mostly S5.1.2 and S5.2.3: +Cookie.prototype.cdomain = +Cookie.prototype.canonicalizedDomain = function canonicalizedDomain() { + if (this.domain == null) return null; + return canonicalDomain(this.domain); +}; + + +var memstore; +function CookieJar(store, rejectPublicSuffixes) { + if (rejectPublicSuffixes != null) this.rejectPublicSuffixes = rejectPublicSuffixes; + if (!store) { + memstore = memstore || require('./memstore'); + store = new memstore.MemoryCookieStore(); + } + this.store = store; +} +CookieJar.prototype.store = null; +CookieJar.prototype.rejectPublicSuffixes = true; + +CookieJar.prototype.setCookie = function setCookie(cookie, url, options, cb) { + var err; + var context = (url instanceof Object) ? url : urlParse(url); + if (options instanceof Function) { + cb = options; + options = {}; + } + + var host = canonicalDomain(context.hostname); + + // S5.3 step 1 + if (!(cookie instanceof Cookie)) + cookie = Cookie.parse(cookie, options.strict === true); + if (!cookie) { + err = new Error("Cookie failed to parse"); + return cb(options.ignoreError ? null : err); + } + + // S5.3 step 2 + var now = options.now || new Date(); // will assign later to save effort in the face of errors + + // S5.3 step 3: NOOP; persistent-flag and expiry-time is handled by getCookie() + + // S5.3 step 4: NOOP; domain is null by default + + // S5.3 step 5: public suffixes + if (this.rejectPublicSuffixes && cookie.domain) { + var suffix = pubsuffix.getPublicSuffix(cookie.cdomain()); + if (suffix == null) { // e.g. "com" + err = new Error("Cookie has domain set to a public suffix"); + return cb(options.ignoreError ? null : err); + } + } + + // S5.3 step 6: + if (cookie.domain) { + if (!domainMatch(host, cookie.cdomain(), false)) { + err = new Error("Cookie not in this host's domain. Cookie:"+cookie.cdomain()+" Request:"+host); + return cb(options.ignoreError ? null : err); + } + + if (cookie.hostOnly == null) // don't reset if already set + cookie.hostOnly = false; + + } else { + cookie.hostOnly = true; + cookie.domain = host; + } + + // S5.3 step 7: "Otherwise, set the cookie's path to the default-path of the + // request-uri" + if (!cookie.path) { + cookie.path = defaultPath(context.pathname); + cookie.pathIsDefault = true; + } else { + if (cookie.path.length > 1 && cookie.path.substr(-1) == '/') + cookie.path = cookie.path.slice(0,-1); + } + + // S5.3 step 8: NOOP; secure attribute + // S5.3 step 9: NOOP; httpOnly attribute + + // S5.3 step 10 + if (options.http === false && cookie.httpOnly) { + err = new Error("Cookie is HttpOnly and this isn't an HTTP API"); + return cb(options.ignoreError ? null : err); + } + + var store = this.store; + + if (!store.updateCookie) { + store.updateCookie = function stubUpdateCookie(oldCookie, newCookie, cb) { + this.putCookie(newCookie, cb); + }; + } + + store.findCookie(cookie.domain, cookie.path, cookie.key, function(err,oldCookie) { + if (err) return cb(err); + + var next = function(err) { + if (err) return cb(err); + else cb(null, cookie); + }; + + if (oldCookie) { + // S5.3 step 11 - "If the cookie store contains a cookie with the same name, + // domain, and path as the newly created cookie:" + if (options.http === false && oldCookie.httpOnly) { // step 11.2 + err = new Error("old Cookie is HttpOnly and this isn't an HTTP API"); + return cb(options.ignoreError ? null : err); + } + cookie.creation = oldCookie.creation; // step 11.3 + cookie.lastAccessed = now; + // Step 11.4 (delete cookie) is implied by just setting the new one: + store.updateCookie(oldCookie, cookie, next); // step 12 + + } else { + cookie.creation = cookie.lastAccessed = now; + store.putCookie(cookie, next); // step 12 + } + }); +}; + +// RFC6365 S5.4 +CookieJar.prototype.getCookies = function getCookies(url, options, cb) { + var context = (url instanceof Object) ? url : urlParse(url); + if (options instanceof Function) { + cb = options; + options = {}; + } + + var host = canonicalDomain(context.hostname); + var path = context.pathname || '/'; + + var secure = options.secure; + if (secure == null && context.protocol && + (context.protocol == 'https:' || context.protocol == 'wss:')) + { + secure = true; + } + + var http = options.http; + if (http == null) http = true; + + var now = options.now || Date.now(); + var expireCheck = options.expire !== false; + var allPaths = !!options.allPaths; + var store = this.store; + + function matchingCookie(c) { + // "Either: + // The cookie's host-only-flag is true and the canonicalized + // request-host is identical to the cookie's domain. + // Or: + // The cookie's host-only-flag is false and the canonicalized + // request-host domain-matches the cookie's domain." + if (c.hostOnly) { + if (c.domain != host) return false; + } else { + if (!domainMatch(host, c.domain, false)) return false; + } + + // "The request-uri's path path-matches the cookie's path." + if (!allPaths && !pathMatch(path, c.path)) + return false; + + // "If the cookie's secure-only-flag is true, then the request-uri's + // scheme must denote a "secure" protocol" + if (c.secure && !secure) + return false; + + // "If the cookie's http-only-flag is true, then exclude the cookie if the + // cookie-string is being generated for a "non-HTTP" API" + if (c.httpOnly && !http) + return false; + + // deferred from S5.3 + // non-RFC: allow retention of expired cookies by choice + if (expireCheck && c.expiryTime() <= now) { + store.removeCookie(c.domain, c.path, c.key, function(){}); // result ignored + return false; + } + + return true; + } + + store.findCookies(host, allPaths ? null : path, function(err,cookies) { + if (err) return cb(err); + + cookies = cookies.filter(matchingCookie); + + // sorting of S5.4 part 2 + if (options.sort !== false) + cookies = cookies.sort(cookieCompare); + + // S5.4 part 3 + var now = new Date(); + cookies.forEach(function(c) { c.lastAccessed = now }); + // TODO persist lastAccessed + + cb(null,cookies); + }); +}; + +CookieJar.prototype.getCookieString = function(/*..., cb*/) { + var args = Array.prototype.slice.call(arguments,0); + var cb = args.pop(); + var next = function(err,cookies) { + if (err) cb(err); + else cb(null, cookies.map(function(c){return c.cookieString()}).join('; ')); + }; + args.push(next); + this.getCookies.apply(this,args); +}; + +CookieJar.prototype.getSetCookieStrings = function(/*..., cb*/) { + var args = Array.prototype.slice.call(arguments,0); + var cb = args.pop(); + var next = function(err,cookies) { + if (err) cb(err); + else cb(null, cookies.map(function(c){return c.toString()})); + }; + args.push(next); + this.getCookies.apply(this,args); +}; + + + +module.exports = { + CookieJar: CookieJar, + Cookie: Cookie, + parseDate: parseDate, + formatDate: formatDate, + parse: parse, + fromJSON: fromJSON, + domainMatch: domainMatch, + defaultPath: defaultPath, + pathMatch: pathMatch, + getPublicSuffix: pubsuffix.getPublicSuffix, + cookieCompare: cookieCompare, + permuteDomain: permuteDomain, + permutePath: permutePath, + canonicalDomain: canonicalDomain, +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js new file mode 100644 index 00000000..66abb376 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/memstore.js @@ -0,0 +1,102 @@ +var tough = require('./cookie'); +var permuteDomain = tough.permuteDomain; +var permutePath = tough.permutePath; +var util = require('util'); + +function MemoryCookieStore() { + this.idx = {}; +} +module.exports.MemoryCookieStore = MemoryCookieStore; +MemoryCookieStore.prototype.idx = null; + +// force a default depth: +MemoryCookieStore.prototype.inspect = function inspect() { + return "{ idx: "+util.inspect(this.idx, false, 2)+' }'; +}; + +MemoryCookieStore.prototype.findCookie = function findCookie(domain, path, key, cb) { + if (!this.idx[domain]) return cb(null,undefined); + if (!this.idx[domain][path]) return cb(null,undefined); + return cb(null,this.idx[domain][path][key]||null); +}; + +MemoryCookieStore.prototype.findCookies = function findCookies(domain, path, cb) { + var results = []; + if (!domain) return cb(null,[]); + + var pathMatcher; + if (!path) { + // null or '/' means "all paths" + pathMatcher = function matchAll(domainIndex) { + for (var curPath in domainIndex) { + var pathIndex = domainIndex[curPath]; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + } + }; + + } else if (path === '/') { + pathMatcher = function matchSlash(domainIndex) { + var pathIndex = domainIndex['/']; + if (!pathIndex) return; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + }; + + } else { + var paths = permutePath(path) || [path]; + pathMatcher = function matchRFC(domainIndex) { + paths.forEach(function(curPath) { + var pathIndex = domainIndex[curPath]; + if (!pathIndex) return; + for (var key in pathIndex) { + results.push(pathIndex[key]); + } + }); + }; + } + + var domains = permuteDomain(domain) || [domain]; + var idx = this.idx; + domains.forEach(function(curDomain) { + var domainIndex = idx[curDomain]; + if (!domainIndex) return; + pathMatcher(domainIndex); + }); + + cb(null,results); +}; + +MemoryCookieStore.prototype.putCookie = function putCookie(cookie, cb) { + if (!this.idx[cookie.domain]) this.idx[cookie.domain] = {}; + if (!this.idx[cookie.domain][cookie.path]) this.idx[cookie.domain][cookie.path] = {}; + this.idx[cookie.domain][cookie.path][cookie.key] = cookie; + cb(null); +}; + +MemoryCookieStore.prototype.updateCookie = function updateCookie(oldCookie, newCookie, cb) { + // updateCookie() may avoid updating cookies that are identical. For example, + // lastAccessed may not be important to some stores and an equality + // comparison could exclude that field. + this.putCookie(newCookie,cb); +}; + +MemoryCookieStore.prototype.removeCookie = function removeCookie(domain, path, key, cb) { + if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) { + delete this.idx[domain][path][key]; + } + cb(null); +}; + +MemoryCookieStore.prototype.removeCookies = function removeCookies(domain, path, cb) { + if (!this.idx[domain]) { + if (path) { + delete this.idx[domain][path]; + } else { + delete this.idx[domain]; + } + } + return cb(null); +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js new file mode 100644 index 00000000..a7031473 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js @@ -0,0 +1,69 @@ +/**************************************************** + * AUTOMATICALLY GENERATED by generate-pubsuffix.js * + * DO NOT EDIT! * + ****************************************************/ + +module.exports.getPublicSuffix = function getPublicSuffix(domain) { + /* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + if (!domain) return null; + if (domain.match(/^\./)) return null; + + domain = domain.toLowerCase(); + var parts = domain.split('.').reverse(); + + var suffix = ''; + var suffixLen = 0; + for (var i=0; i suffixLen) { + return parts.slice(0,suffixLen+1).reverse().join('.'); + } + + return null; +}; + +// The following generated structure is used under the MPL version 1.1 +// See public-suffix.txt for more information + +var index = module.exports.index = Object.freeze( +{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"marketplace.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"taxi.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"an":true,"com.an":true,"net.an":true,"org.an":true,"edu.an":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"*.ar":true,"congresodelalengua3.ar":false,"educ.ar":false,"gobiernoelectronico.ar":false,"mecon.ar":false,"nacion.ar":false,"nic.ar":false,"promocion.ar":false,"retina.ar":false,"uba.ar":false,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"csiro.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"act.gov.au":true,"nt.gov.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"org.ba":true,"net.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"unsa.ba":true,"unbi.ba":true,"co.ba":true,"com.ba":true,"rs.ba":true,"bb":true,"biz.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"br":true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"can.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mus.br":true,"net.br":true,"nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"gov.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cx":true,"gov.cx":true,"*.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"*.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"org.gg":true,"net.gg":true,"sch.gg":true,"gov.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"gm":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"*.gt":true,"www.gt":false,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"net.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"co.id":true,"go.id":true,"mil.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"*.il":true,"im":true,"co.im":true,"ltd.co.im":true,"plc.co.im":true,"net.im":true,"gov.im":true,"org.im":true,"nic.im":true,"ac.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"agrigento.it":true,"ag.it":true,"alessandria.it":true,"al.it":true,"ancona.it":true,"an.it":true,"aosta.it":true,"aoste.it":true,"ao.it":true,"arezzo.it":true,"ar.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"ap.it":true,"asti.it":true,"at.it":true,"avellino.it":true,"av.it":true,"bari.it":true,"ba.it":true,"andria-barletta-trani.it":true,"andriabarlettatrani.it":true,"trani-barletta-andria.it":true,"tranibarlettaandria.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"andria-trani-barletta.it":true,"andriatranibarletta.it":true,"trani-andria-barletta.it":true,"traniandriabarletta.it":true,"bt.it":true,"belluno.it":true,"bl.it":true,"benevento.it":true,"bn.it":true,"bergamo.it":true,"bg.it":true,"biella.it":true,"bi.it":true,"bologna.it":true,"bo.it":true,"bolzano.it":true,"bozen.it":true,"balsan.it":true,"alto-adige.it":true,"altoadige.it":true,"suedtirol.it":true,"bz.it":true,"brescia.it":true,"bs.it":true,"brindisi.it":true,"br.it":true,"cagliari.it":true,"ca.it":true,"caltanissetta.it":true,"cl.it":true,"campobasso.it":true,"cb.it":true,"carboniaiglesias.it":true,"carbonia-iglesias.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"ci.it":true,"caserta.it":true,"ce.it":true,"catania.it":true,"ct.it":true,"catanzaro.it":true,"cz.it":true,"chieti.it":true,"ch.it":true,"como.it":true,"co.it":true,"cosenza.it":true,"cs.it":true,"cremona.it":true,"cr.it":true,"crotone.it":true,"kr.it":true,"cuneo.it":true,"cn.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"ogliastra.it":true,"og.it":true,"enna.it":true,"en.it":true,"ferrara.it":true,"fe.it":true,"fermo.it":true,"fm.it":true,"firenze.it":true,"florence.it":true,"fi.it":true,"foggia.it":true,"fg.it":true,"forli-cesena.it":true,"forlicesena.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"fc.it":true,"frosinone.it":true,"fr.it":true,"genova.it":true,"genoa.it":true,"ge.it":true,"gorizia.it":true,"go.it":true,"grosseto.it":true,"gr.it":true,"imperia.it":true,"im.it":true,"isernia.it":true,"is.it":true,"laquila.it":true,"aquila.it":true,"aq.it":true,"la-spezia.it":true,"laspezia.it":true,"sp.it":true,"latina.it":true,"lt.it":true,"lecce.it":true,"le.it":true,"lecco.it":true,"lc.it":true,"livorno.it":true,"li.it":true,"lodi.it":true,"lo.it":true,"lucca.it":true,"lu.it":true,"macerata.it":true,"mc.it":true,"mantova.it":true,"mn.it":true,"massa-carrara.it":true,"massacarrara.it":true,"carrara-massa.it":true,"carraramassa.it":true,"ms.it":true,"matera.it":true,"mt.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"vs.it":true,"messina.it":true,"me.it":true,"milano.it":true,"milan.it":true,"mi.it":true,"modena.it":true,"mo.it":true,"monza.it":true,"monza-brianza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"monza-e-della-brianza.it":true,"mb.it":true,"napoli.it":true,"naples.it":true,"na.it":true,"novara.it":true,"no.it":true,"nuoro.it":true,"nu.it":true,"oristano.it":true,"or.it":true,"padova.it":true,"padua.it":true,"pd.it":true,"palermo.it":true,"pa.it":true,"parma.it":true,"pr.it":true,"pavia.it":true,"pv.it":true,"perugia.it":true,"pg.it":true,"pescara.it":true,"pe.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"pu.it":true,"piacenza.it":true,"pc.it":true,"pisa.it":true,"pi.it":true,"pistoia.it":true,"pt.it":true,"pordenone.it":true,"pn.it":true,"potenza.it":true,"pz.it":true,"prato.it":true,"po.it":true,"ragusa.it":true,"rg.it":true,"ravenna.it":true,"ra.it":true,"reggio-calabria.it":true,"reggiocalabria.it":true,"rc.it":true,"reggio-emilia.it":true,"reggioemilia.it":true,"re.it":true,"rieti.it":true,"ri.it":true,"rimini.it":true,"rn.it":true,"roma.it":true,"rome.it":true,"rm.it":true,"rovigo.it":true,"ro.it":true,"salerno.it":true,"sa.it":true,"sassari.it":true,"ss.it":true,"savona.it":true,"sv.it":true,"siena.it":true,"si.it":true,"siracusa.it":true,"sr.it":true,"sondrio.it":true,"so.it":true,"taranto.it":true,"ta.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"ot.it":true,"teramo.it":true,"te.it":true,"terni.it":true,"tr.it":true,"torino.it":true,"turin.it":true,"to.it":true,"trapani.it":true,"tp.it":true,"trento.it":true,"trentino.it":true,"tn.it":true,"treviso.it":true,"tv.it":true,"trieste.it":true,"ts.it":true,"udine.it":true,"ud.it":true,"varese.it":true,"va.it":true,"venezia.it":true,"venice.it":true,"ve.it":true,"verbania.it":true,"vb.it":true,"vercelli.it":true,"vc.it":true,"verona.it":true,"vr.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vv.it":true,"vicenza.it":true,"vi.it":true,"viterbo.it":true,"vt.it":true,"je":true,"co.je":true,"org.je":true,"net.je":true,"sch.je":true,"gov.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"*.aichi.jp":true,"*.akita.jp":true,"*.aomori.jp":true,"*.chiba.jp":true,"*.ehime.jp":true,"*.fukui.jp":true,"*.fukuoka.jp":true,"*.fukushima.jp":true,"*.gifu.jp":true,"*.gunma.jp":true,"*.hiroshima.jp":true,"*.hokkaido.jp":true,"*.hyogo.jp":true,"*.ibaraki.jp":true,"*.ishikawa.jp":true,"*.iwate.jp":true,"*.kagawa.jp":true,"*.kagoshima.jp":true,"*.kanagawa.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.kochi.jp":true,"*.kumamoto.jp":true,"*.kyoto.jp":true,"*.mie.jp":true,"*.miyagi.jp":true,"*.miyazaki.jp":true,"*.nagano.jp":true,"*.nagasaki.jp":true,"*.nagoya.jp":true,"*.nara.jp":true,"*.niigata.jp":true,"*.oita.jp":true,"*.okayama.jp":true,"*.okinawa.jp":true,"*.osaka.jp":true,"*.saga.jp":true,"*.saitama.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.shiga.jp":true,"*.shimane.jp":true,"*.shizuoka.jp":true,"*.tochigi.jp":true,"*.tokushima.jp":true,"*.tokyo.jp":true,"*.tottori.jp":true,"*.toyama.jp":true,"*.wakayama.jp":true,"*.yamagata.jp":true,"*.yamaguchi.jp":true,"*.yamanashi.jp":true,"*.yokohama.jp":true,"metro.tokyo.jp":false,"pref.aichi.jp":false,"pref.akita.jp":false,"pref.aomori.jp":false,"pref.chiba.jp":false,"pref.ehime.jp":false,"pref.fukui.jp":false,"pref.fukuoka.jp":false,"pref.fukushima.jp":false,"pref.gifu.jp":false,"pref.gunma.jp":false,"pref.hiroshima.jp":false,"pref.hokkaido.jp":false,"pref.hyogo.jp":false,"pref.ibaraki.jp":false,"pref.ishikawa.jp":false,"pref.iwate.jp":false,"pref.kagawa.jp":false,"pref.kagoshima.jp":false,"pref.kanagawa.jp":false,"pref.kochi.jp":false,"pref.kumamoto.jp":false,"pref.kyoto.jp":false,"pref.mie.jp":false,"pref.miyagi.jp":false,"pref.miyazaki.jp":false,"pref.nagano.jp":false,"pref.nagasaki.jp":false,"pref.nara.jp":false,"pref.niigata.jp":false,"pref.oita.jp":false,"pref.okayama.jp":false,"pref.okinawa.jp":false,"pref.osaka.jp":false,"pref.saga.jp":false,"pref.saitama.jp":false,"pref.shiga.jp":false,"pref.shimane.jp":false,"pref.shizuoka.jp":false,"pref.tochigi.jp":false,"pref.tokushima.jp":false,"pref.tottori.jp":false,"pref.toyama.jp":false,"pref.wakayama.jp":false,"pref.yamagata.jp":false,"pref.yamaguchi.jp":false,"pref.yamanashi.jp":false,"city.chiba.jp":false,"city.fukuoka.jp":false,"city.hiroshima.jp":false,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.kyoto.jp":false,"city.nagoya.jp":false,"city.niigata.jp":false,"city.okayama.jp":false,"city.osaka.jp":false,"city.saitama.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.shizuoka.jp":false,"city.yokohama.jp":false,"*.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"*.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"*.mz":true,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ac.ng":true,"com.ng":true,"edu.ng":true,"gov.ng":true,"net.ng":true,"org.ng":true,"*.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"*.nz":true,"*.om":true,"mediaphone.om":false,"nawrastelecom.om":false,"nawras.om":false,"omanmobile.om":false,"omanpost.om":false,"omantel.om":false,"rakpetroleum.om":false,"siemens.om":false,"songfest.om":false,"statecouncil.om":false,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"com.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"net.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"org.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"6bone.pl":true,"art.pl":true,"mbone.pl":true,"gov.pl":true,"uw.gov.pl":true,"um.gov.pl":true,"ug.gov.pl":true,"upow.gov.pl":true,"starostwo.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"po.gov.pl":true,"pa.gov.pl":true,"ngo.pl":true,"irc.pl":true,"usenet.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"siedlce.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aca.pro":true,"bar.pro":true,"cpa.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"eng.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"*.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"com.re":true,"asso.re":true,"nom.re":true,"ro":true,"com.ro":true,"org.ro":true,"tm.ro":true,"nt.ro":true,"nom.ro":true,"info.ro":true,"rec.ro":true,"arts.ro":true,"firm.ro":true,"store.ro":true,"www.ro":true,"rs":true,"co.rs":true,"org.rs":true,"edu.rs":true,"ac.rs":true,"gov.rs":true,"in.rs":true,"ru":true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"mosreg.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"pskov.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"magnitka.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"sshn.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"si":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"*.sv":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"*.tr":true,"nic.tr":false,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"ac.tz":true,"co.tz":true,"go.tz":true,"mil.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"chernigov.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"ks.ua":true,"kv.ua":true,"lg.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lviv.ua":true,"mk.ua":true,"nikolaev.ua":true,"od.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rovno.ua":true,"rv.ua":true,"sebastopol.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vn.ua":true,"zaporizhzhe.ua":true,"zp.ua":true,"zhitomir.ua":true,"zt.ua":true,"co.ua":true,"pp.ua":true,"ug":true,"co.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"or.ug":true,"*.uk":true,"*.sch.uk":true,"bl.uk":false,"british-library.uk":false,"icnet.uk":false,"jet.uk":false,"mod.uk":false,"nel.uk":false,"nhs.uk":false,"nic.uk":false,"nls.uk":false,"national-library-scotland.uk":false,"parliament.uk":false,"police.uk":false,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.nd.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.sd.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wv.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.de.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wv.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"*.uy":true,"uz":true,"com.uz":true,"co.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"*.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--54b7fta0cc":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--node":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--mgb9awbf":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"*.za":true,"*.zm":true,"*.zw":true,"biz.at":true,"info.at":true,"priv.at":true,"co.ca":true,"ar.com":true,"br.com":true,"cn.com":true,"de.com":true,"eu.com":true,"gb.com":true,"gr.com":true,"hu.com":true,"jpn.com":true,"kr.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"uk.com":true,"us.com":true,"uy.com":true,"za.com":true,"gb.net":true,"jp.net":true,"se.net":true,"uk.net":true,"ae.org":true,"us.org":true,"com.de":true,"operaunite.com":true,"appspot.com":true,"iki.fi":true,"c.la":true,"za.net":true,"za.org":true,"co.nl":true,"co.no":true,"co.pl":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true}); + +// END of automatically generated file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt new file mode 100644 index 00000000..11dddd00 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt new file mode 100644 index 00000000..97067e54 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json new file mode 100644 index 00000000..69e12ae2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json @@ -0,0 +1,77 @@ +{ + "name": "punycode", + "version": "1.2.3", + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "homepage": "http://mths.be/punycode", + "main": "punycode.js", + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "licenses": [ + { + "type": "MIT", + "url": "http://mths.be/mit" + }, + { + "type": "GPL", + "url": "http://mths.be/gpl" + } + ], + "author": { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "http://mathiasbynens.be/" + }, + "contributors": [ + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "http://mathiasbynens.be/" + }, + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + } + ], + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/bestiejs/punycode.js.git" + }, + "engines": [ + "node", + "rhino" + ], + "directories": { + "doc": "docs", + "test": "tests" + }, + "scripts": { + "test": "node tests/tests.js" + }, + "devDependencies": { + "grunt": "~0.4.1", + "grunt-contrib-uglify": "~0.2.2", + "grunt-shell": "~0.2.2", + "istanbul": "~0.1.37", + "qunit-clib": "~1.3.0", + "qunitjs": "~1.11.0", + "requirejs": "~2.1.6" + }, + "readme": "ERROR: No README data found!", + "_id": "punycode@1.2.3", + "dist": { + "shasum": "b4e304471082d783c73b3bafabf2fd9b6a486266" + }, + "_from": "punycode@>=0.2.0", + "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.2.3.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js new file mode 100644 index 00000000..41803ba4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js @@ -0,0 +1,508 @@ +/*! http://mths.be/punycode v1.2.3 by @mathias */ +;(function(root) { + + /** Detect free variables */ + var freeExports = typeof exports == 'object' && exports; + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /** + * The `punycode` object. + * @name punycode + * @type Object + */ + var punycode, + + /** Highest positive signed 32-bit float value */ + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + /** Bootstring parameters */ + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + /** Regular expressions */ + regexPunycode = /^xn--/, + regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators + + /** Error messages */ + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + while (length--) { + array[length] = fn(array[length]); + } + return array; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings. + * @private + * @param {String} domain The domain name. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + return map(string.split(regexSeparators), fn).join('.'); + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * http://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + length, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols to a Punycode string of ASCII-only + * symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name to Unicode. Only the + * Punycoded parts of the domain name will be converted, i.e. it doesn't + * matter if you call it on a string that has already been converted to + * Unicode. + * @memberOf punycode + * @param {String} domain The Punycode domain name to convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(domain) { + return mapDomain(domain, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name to Punycode. Only the + * non-ASCII parts of the domain name will be converted, i.e. it doesn't + * matter if you call it with a domain that's already in ASCII. + * @memberOf punycode + * @param {String} domain The domain name to convert, as a Unicode string. + * @returns {String} The Punycode representation of the given domain name. + */ + function toASCII(domain) { + return mapDomain(domain, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.2.3', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define(function() { + return punycode; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js new file mode 100644 index 00000000..ac5d914a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js @@ -0,0 +1,2 @@ +/*! http://mths.be/punycode v1.2.3 by @mathias */ +(function(o){function e(o){throw RangeError(L[o])}function n(o,e){for(var n=o.length;n--;)o[n]=e(o[n]);return o}function t(o,e){return n(o.split(S),e).join(".")}function r(o){for(var e,n,t=[],r=0,u=o.length;u>r;)e=o.charCodeAt(r++),e>=55296&&56319>=e&&u>r?(n=o.charCodeAt(r++),56320==(64512&n)?t.push(((1023&e)<<10)+(1023&n)+65536):(t.push(e),r--)):t.push(e);return t}function u(o){return n(o,function(o){var e="";return o>65535&&(o-=65536,e+=R(55296|1023&o>>>10),o=56320|1023&o),e+=R(o)}).join("")}function i(o){return 10>o-48?o-22:26>o-65?o-65:26>o-97?o-97:x}function f(o,e){return o+22+75*(26>o)-((0!=e)<<5)}function c(o,e,n){var t=0;for(o=n?P(o/m):o>>1,o+=P(o/e);o>M*y>>1;t+=x)o=P(o/M);return P(t+(M+1)*o/(o+j))}function l(o){var n,t,r,f,l,d,s,a,p,h,v=[],g=o.length,w=0,j=I,m=A;for(t=o.lastIndexOf(F),0>t&&(t=0),r=0;t>r;++r)o.charCodeAt(r)>=128&&e("not-basic"),v.push(o.charCodeAt(r));for(f=t>0?t+1:0;g>f;){for(l=w,d=1,s=x;f>=g&&e("invalid-input"),a=i(o.charCodeAt(f++)),(a>=x||a>P((b-w)/d))&&e("overflow"),w+=a*d,p=m>=s?C:s>=m+y?y:s-m,!(p>a);s+=x)h=x-p,d>P(b/h)&&e("overflow"),d*=h;n=v.length+1,m=c(w-l,n,0==l),P(w/n)>b-j&&e("overflow"),j+=P(w/n),w%=n,v.splice(w++,0,j)}return u(v)}function d(o){var n,t,u,i,l,d,s,a,p,h,v,g,w,j,m,E=[];for(o=r(o),g=o.length,n=I,t=0,l=A,d=0;g>d;++d)v=o[d],128>v&&E.push(R(v));for(u=i=E.length,i&&E.push(F);g>u;){for(s=b,d=0;g>d;++d)v=o[d],v>=n&&s>v&&(s=v);for(w=u+1,s-n>P((b-t)/w)&&e("overflow"),t+=(s-n)*w,n=s,d=0;g>d;++d)if(v=o[d],n>v&&++t>b&&e("overflow"),v==n){for(a=t,p=x;h=l>=p?C:p>=l+y?y:p-l,!(h>a);p+=x)m=a-h,j=x-h,E.push(R(f(h+m%j,0))),a=P(m/j);E.push(R(f(a,0))),l=c(t,w,u==i),t=0,++u}++t,++n}return E.join("")}function s(o){return t(o,function(o){return E.test(o)?l(o.slice(4).toLowerCase()):o})}function a(o){return t(o,function(o){return O.test(o)?"xn--"+d(o):o})}var p="object"==typeof exports&&exports,h="object"==typeof module&&module&&module.exports==p&&module,v="object"==typeof global&&global;(v.global===v||v.window===v)&&(o=v);var g,w,b=2147483647,x=36,C=1,y=26,j=38,m=700,A=72,I=128,F="-",E=/^xn--/,O=/[^ -~]/,S=/\x2E|\u3002|\uFF0E|\uFF61/g,L={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=x-C,P=Math.floor,R=String.fromCharCode;if(g={version:"1.2.3",ucs2:{decode:r,encode:u},decode:l,encode:d,toASCII:a,toUnicode:s},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return g});else if(p&&!p.nodeType)if(h)h.exports=g;else for(w in g)g.hasOwnProperty(w)&&(p[w]=g[w]);else o.punycode=g})(this); \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt new file mode 100644 index 00000000..a7501f98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright 2011-2013 John-David Dalton + +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md new file mode 100644 index 00000000..fbddce91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md @@ -0,0 +1,35 @@ +# Docdown v1.0.0 + +A simple JSDoc to Markdown documentation generator. + +## Documentation + +The documentation for Docdown can be viewed here: [/doc/README.md](https://github.com/jdalton/docdown/blob/master/doc/README.md#readme) + +For a list of upcoming features, check out our [roadmap](https://github.com/jdalton/docdown/wiki/Roadmap). + +## Installation and usage + +Usage example: + +```php +require("docdown.php"); + +// generate Markdown +$markdown = docdown(array( + "path" => $filepath, + "url" => "https://github.com/username/project/blob/master/my.js" +)); +``` + +## Author + +| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") | +|---| +| [John-David Dalton](http://allyoucanleet.com/) | + +## Contributors + +| [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](http://mathiasbynens.be/) | diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md new file mode 100644 index 00000000..459d36ab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md @@ -0,0 +1,69 @@ +# Docdown v1.0.0 + + + + + + +##
      `docdown` +* [`docdown`](#docdown$optionsarray) + + + + + + + + + + + + +## `docdown` + + + +### `docdown([$options=array()])` +# [Ⓢ](https://github.com/jdalton/docdown/blob/master/docdown.php#L34 "View in source") [Ⓣ][1] + +Generates Markdown from JSDoc entries in a given file. + +#### Arguments +1. `[$options=array()]` *(Array)*: The options array. + +#### Returns +*(String)*: The generated Markdown. + +#### Example +```php +// specify a file path +$markdown = docdown(array( + // path to js file + 'path' => $filepath, + // url used to reference line numbers in code + 'url' => 'https://github.com/username/project/blob/master/my.js' +)); + +// or pass raw js +$markdown = docdown(array( + // raw JavaScript source + 'source' => $rawJS, + // documentation title + 'title' => 'My API Documentation', + // url used to reference line numbers in code + 'url' => 'https://github.com/username/project/blob/master/my.js' +)); +``` + +* * * + + + + + + + + + + + [1]: #docdown "Jump back to the TOC." \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php new file mode 100644 index 00000000..eca8d145 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php @@ -0,0 +1,35 @@ + '../' . $file, + 'title' => 'Docdown v1.0.0', + 'url' => 'https://github.com/jdalton/docdown/blob/master/docdown.php' + )); + + // save to a .md file + file_put_contents($output . '.md', $markdown); + + // print + header('Content-Type: text/plain;charset=utf-8'); + echo $markdown . PHP_EOL; + +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php new file mode 100644 index 00000000..4a786d75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php @@ -0,0 +1,38 @@ + + * Available under MIT license + */ +require(dirname(__FILE__) . '/src/DocDown/Generator.php'); + +/** + * Generates Markdown from JSDoc entries in a given file. + * + * @param {Array} [$options=array()] The options array. + * @returns {String} The generated Markdown. + * @example + * + * // specify a file path + * $markdown = docdown(array( + * // path to js file + * 'path' => $filepath, + * // url used to reference line numbers in code + * 'url' => 'https://github.com/username/project/blob/master/my.js' + * )); + * + * // or pass raw js + * $markdown = docdown(array( + * // raw JavaScript source + * 'source' => $rawJS, + * // documentation title + * 'title' => 'My API Documentation', + * // url used to reference line numbers in code + * 'url' => 'https://github.com/username/project/blob/master/my.js' + * )); + */ +function docdown( $options = array() ) { + $gen = new Generator($options); + return $gen->generate(); +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php new file mode 100644 index 00000000..0a7c552e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php @@ -0,0 +1,226 @@ +owner = $owner; + $this->_name = $name; + $this->_call = $owner->getCall(); + $this->_category = $owner->getCategory(); + $this->_desc = $owner->getDesc(); + $this->_example = $owner->getExample(); + $this->_isCtor = $owner->isCtor(); + $this->_isLicense = $owner->isLicense(); + $this->_isPlugin = $owner->isPlugin(); + $this->_isPrivate = $owner->isPrivate(); + $this->_isStatic = $owner->isStatic(); + $this->_lineNumber = $owner->getLineNumber(); + $this->_members = $owner->getMembers(); + $this->_params = $owner->getParams(); + $this->_returns = $owner->getReturns(); + $this->_type = $owner->getType(); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the entry's `alias` objects. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `alias` objects. + */ + public function getAliases( $index = null ) { + $result = array(); + return $index !== null + ? @$result[$index] + : $result; + } + + /** + * Extracts the function call from the owner entry. + * + * @memberOf Alias + * @returns {String} The function call. + */ + public function getCall() { + return $this->_call; + } + + /** + * Extracts the owner entry's `category` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `category` data. + */ + public function getCategory() { + return $this->_category; + } + + /** + * Extracts the owner entry's description. + * + * @memberOf Alias + * @returns {String} The owner entry's description. + */ + public function getDesc() { + return $this->_desc; + } + + /** + * Extracts the owner entry's `example` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `example` data. + */ + public function getExample() { + return $this->_example; + } + + /** + * Checks if the entry is an alias. + * + * @memberOf Alias + * @returns {Boolean} Returns `true`. + */ + public function isAlias() { + return true; + } + + /** + * Checks if the owner entry is a constructor. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if a constructor, else `false`. + */ + public function isCtor() { + return $this->_isCtor; + } + + /** + * Checks if the owner entry is a license. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if a license, else `false`. + */ + public function isLicense() { + return $this->_isLicense; + } + + /** + * Checks if the owner entry *is* assigned to a prototype. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if assigned to a prototype, else `false`. + */ + public function isPlugin() { + return $this->_isPlugin; + } + + /** + * Checks if the owner entry is private. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if private, else `false`. + */ + public function isPrivate() { + return $this->_isPrivate; + } + + /** + * Checks if the owner entry is *not* assigned to a prototype. + * + * @memberOf Alias + * @returns {Boolean} Returns `true` if not assigned to a prototype, else `false`. + */ + public function isStatic() { + return $this->_isStatic; + } + + /** + * Resolves the owner entry's line number. + * + * @memberOf Alias + * @returns {Number} The owner entry's line number. + */ + public function getLineNumber() { + return $this->_lineNumber; + } + + /** + * Extracts the owner entry's `member` data. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The owner entry's `member` data. + */ + public function getMembers( $index = null ) { + return $index !== null + ? @$this->_members[$index] + : $this->_members; + } + + /** + * Extracts the owner entry's `name` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `name` data. + */ + public function getName() { + return $this->_name; + } + + /** + * Extracts the owner entry's `param` data. + * + * @memberOf Alias + * @param {Number} $index The index of the array value to return. + * @returns {Array} The owner entry's `param` data. + */ + public function getParams( $index = null ) { + return $index !== null + ? @$this->_params[$index] + : $this->_params; + } + + /** + * Extracts the owner entry's `returns` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `returns` data. + */ + public function getReturns() { + return $this->_returns; + } + + /** + * Extracts the owner entry's `type` data. + * + * @memberOf Alias + * @returns {String} The owner entry's `type` data. + */ + public function getType() { + return $this->_type; + } +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php new file mode 100644 index 00000000..a973d9a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php @@ -0,0 +1,442 @@ +entry = $entry; + $this->lang = $lang; + $this->source = str_replace(PHP_EOL, "\n", $source); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the documentation entries from source code. + * + * @static + * @memberOf Entry + * @param {String} $source The source code. + * @returns {Array} The array of entries. + */ + public static function getEntries( $source ) { + preg_match_all('#/\*\*(?![-!])[\s\S]*?\*/\s*.+#', $source, $result); + return array_pop($result); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Checks if the entry is a function reference. + * + * @private + * @memberOf Entry + * @returns {Boolean} Returns `true` if the entry is a function reference, else `false`. + */ + private function isFunction() { + if (!isset($this->_isFunction)) { + $this->_isFunction = !!( + $this->isCtor() || + count($this->getParams()) || + count($this->getReturns()) || + preg_match('/\*[\t ]*@function\b/', $this->entry) + ); + } + return $this->_isFunction; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Extracts the entry's `alias` objects. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `alias` objects. + */ + public function getAliases( $index = null ) { + if (!isset($this->_aliases)) { + preg_match('#\*[\t ]*@alias\s+(.+)#', $this->entry, $result); + + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + $result = preg_split('/,\s*/', $result); + natsort($result); + + foreach ($result as $resultIndex => $value) { + $result[$resultIndex] = new Alias($value, $this); + } + } + $this->_aliases = $result; + } + return $index !== null + ? @$this->_aliases[$index] + : $this->_aliases; + } + + /** + * Extracts the function call from the entry. + * + * @memberOf Entry + * @returns {String} The function call. + */ + public function getCall() { + if (isset($this->_call)) { + return $this->_call; + } + + preg_match('#\*/\s*(?:function ([^(]*)|(.*?)(?=[:=,]|return\b))#', $this->entry, $result); + if ($result = array_pop($result)) { + $result = array_pop(explode('var ', trim(trim(array_pop(explode('.', $result))), "'"))); + } + // resolve name + // avoid $this->getName() because it calls $this->getCall() + preg_match('#\*[\t ]*@name\s+(.+)#', $this->entry, $name); + if (count($name)) { + $name = trim($name[1]); + } else { + $name = $result; + } + // compile function call syntax + if ($this->isFunction()) { + // compose parts + $result = array($result); + $params = $this->getParams(); + foreach ($params as $param) { + $result[] = $param[1]; + } + // format + $result = $name .'('. implode(array_slice($result, 1), ', ') .')'; + $result = str_replace(', [', ' [, ', str_replace('], [', ', ', $result)); + } + + $this->_call = $result ? $result : $name; + return $this->_call; + } + + /** + * Extracts the entry's `category` data. + * + * @memberOf Entry + * @returns {String} The entry's `category` data. + */ + public function getCategory() { + if (isset($this->_category)) { + return $this->_category; + } + + preg_match('#\*[\t ]*@category\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = $this->getType() == 'Function' ? 'Methods' : 'Properties'; + } + $this->_category = $result; + return $result; + } + + /** + * Extracts the entry's description. + * + * @memberOf Entry + * @returns {String} The entry's description. + */ + public function getDesc() { + if (isset($this->_desc)) { + return $this->_desc; + } + + preg_match('#/\*\*(?:\s*\*)?([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $type = $this->getType(); + $result = preg_replace('/:\n[\t ]*\*[\t ]*/', ":
      \n", $result[1]); + $result = preg_replace('/(?:^|\n)[\t ]*\*\n[\t ]*\*[\t ]*/', "\n\n", $result); + $result = preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result); + $result = trim($result); + $result = ($type == 'Function' ? '' : '(' . str_replace('|', ', ', trim($type, '{}')) . '): ') . $result; + } + $this->_desc = $result; + return $result; + } + + /** + * Extracts the entry's `example` data. + * + * @memberOf Entry + * @returns {String} The entry's `example` data. + */ + public function getExample() { + if (isset($this->_example)) { + return $this->_example; + } + + preg_match('#\*[\t ]*@example\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', "\n", $result[1])); + $result = '```' . $this->lang . "\n" . $result . "\n```"; + } + $this->_example = $result; + return $result; + } + + /** + * Checks if the entry is an alias. + * + * @memberOf Entry + * @returns {Boolean} Returns `false`. + */ + public function isAlias() { + return false; + } + + /** + * Checks if the entry is a constructor. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if a constructor, else `false`. + */ + public function isCtor() { + if (!isset($this->_isCtor)) { + $this->_isCtor = !!preg_match('/\*[\t ]*@constructor\b/', $this->entry); + } + return $this->_isCtor; + } + + /** + * Checks if the entry is a license. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if a license, else `false`. + */ + public function isLicense() { + if (!isset($this->_isLicense)) { + $this->_isLicense = !!preg_match('/\*[\t ]*@license\b/', $this->entry); + } + return $this->_isLicense; + } + + /** + * Checks if the entry *is* assigned to a prototype. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if assigned to a prototype, else `false`. + */ + public function isPlugin() { + if (!isset($this->_isPlugin)) { + $this->_isPlugin = !$this->isCtor() && !$this->isPrivate() && !$this->isStatic(); + } + return $this->_isPlugin; + } + + /** + * Checks if the entry is private. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if private, else `false`. + */ + public function isPrivate() { + if (!isset($this->_isPrivate)) { + $this->_isPrivate = $this->isLicense() || !!preg_match('/\*[\t ]*@private\b/', $this->entry) || !preg_match('/\*[\t ]*@[a-z]+\b/', $this->entry); + } + return $this->_isPrivate; + } + + /** + * Checks if the entry is *not* assigned to a prototype. + * + * @memberOf Entry + * @returns {Boolean} Returns `true` if not assigned to a prototype, else `false`. + */ + public function isStatic() { + if (isset($this->_isStatic)) { + return $this->_isStatic; + } + + $public = !$this->isPrivate(); + $result = $public && !!preg_match('/\*[\t ]*@static\b/', $this->entry); + + // set in cases where it isn't explicitly stated + if ($public && !$result) { + if ($parent = array_pop(preg_split('/[#.]/', $this->getMembers(0)))) { + foreach (Entry::getEntries($this->source) as $entry) { + $entry = new Entry($entry, $this->source); + if ($entry->getName() == $parent) { + $result = !$entry->isCtor(); + break; + } + } + } else { + $result = true; + } + } + $this->_isStatic = $result; + return $result; + } + + /** + * Resolves the entry's line number. + * + * @memberOf Entry + * @returns {Number} The entry's line number. + */ + public function getLineNumber() { + if (!isset($this->_lineNumber)) { + preg_match_all('/\n/', substr($this->source, 0, strrpos($this->source, $this->entry) + strlen($this->entry)), $lines); + $this->_lineNumber = count(array_pop($lines)) + 1; + } + return $this->_lineNumber; + } + + /** + * Extracts the entry's `member` data. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array|String} The entry's `member` data. + */ + public function getMembers( $index = null ) { + if (!isset($this->_members)) { + preg_match('#\*[\t ]*@member(?:Of)?\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + $result = preg_split('/,\s*/', $result); + natsort($result); + } + $this->_members = $result; + } + return $index !== null + ? @$this->_members[$index] + : $this->_members; + } + + /** + * Extracts the entry's `name` data. + * + * @memberOf Entry + * @returns {String} The entry's `name` data. + */ + public function getName() { + if (isset($this->_name)) { + return $this->_name; + } + + preg_match('#\*[\t ]*@name\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = array_shift(explode('(', $this->getCall())); + } + $this->_name = $result; + return $result; + } + + /** + * Extracts the entry's `param` data. + * + * @memberOf Entry + * @param {Number} $index The index of the array value to return. + * @returns {Array} The entry's `param` data. + */ + public function getParams( $index = null ) { + if (!isset($this->_params)) { + preg_match_all('#\*[\t ]*@param\s+\{([^}]+)\}\s+(\[.+\]|[$\w|]+(?:\[.+\])?)\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#i', $this->entry, $result); + if (count($result = array_filter(array_slice($result, 1)))) { + // repurpose array + foreach ($result as $param) { + foreach ($param as $key => $value) { + if (!is_array($result[0][$key])) { + $result[0][$key] = array(); + } + $result[0][$key][] = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]*/', ' ', $value)); + } + } + $result = $result[0]; + } + $this->_params = $result; + } + return $index !== null + ? @$this->_params[$index] + : $this->_params; + } + + /** + * Extracts the entry's `returns` data. + * + * @memberOf Entry + * @returns {String} The entry's `returns` data. + */ + public function getReturns() { + if (isset($this->_returns)) { + return $this->_returns; + } + + preg_match('#\*[\t ]*@returns\s+\{([^}]+)\}\s+([\s\S]*?)(?=\*\s\@[a-z]|\*/)#', $this->entry, $result); + if (count($result)) { + $result = array_map('trim', array_slice($result, 1)); + $result[0] = str_replace('|', ', ', $result[0]); + $result[1] = preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1]); + } + $this->_returns = $result; + return $result; + } + + /** + * Extracts the entry's `type` data. + * + * @memberOf Entry + * @returns {String} The entry's `type` data. + */ + public function getType() { + if (isset($this->_type)) { + return $this->_type; + } + + preg_match('#\*[\t ]*@type\s+(.+)#', $this->entry, $result); + if (count($result)) { + $result = trim(preg_replace('/(?:^|\n)[\t ]*\*[\t ]?/', ' ', $result[1])); + } else { + $result = $this->isFunction() ? 'Function' : 'Unknown'; + } + $this->_type = $result; + return $result; + } +} +?> \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php new file mode 100644 index 00000000..5dc2583f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php @@ -0,0 +1,563 @@ +\n"; + + /** + * An array of JSDoc entries. + * + * @memberOf Generator + * @type Array + */ + public $entries = array(); + + /** + * The HTML for the open tag. + * + * @static + * @memberOf Generator + * @type String + */ + public $openTag = "\n\n"; + + /** + * An options array used to configure the generator. + * + * @memberOf Generator + * @type Array + */ + public $options = array(); + + /** + * The file's source code. + * + * @memberOf Generator + * @type String + */ + public $source = ''; + + /*--------------------------------------------------------------------------*/ + + /** + * The Generator constructor. + * + * @constructor + * @param {String} $source The source code to parse. + * @param {Array} $options The options array. + */ + public function __construct( $source, $options = array() ) { + // juggle arguments + if (is_array($source)) { + $options = $source; + } else { + $options['source'] = $source; + } + if (isset($options['source']) && realpath($options['source'])) { + $options['path'] = $options['source']; + } + if (isset($options['path'])) { + preg_match('/(?<=\.)[a-z]+$/', $options['path'], $ext); + $options['source'] = file_get_contents($options['path']); + $ext = array_pop($ext); + + if (!isset($options['lang']) && $ext) { + $options['lang'] = $ext; + } + if (!isset($options['title'])) { + $options['title'] = ucfirst(basename($options['path'])) . ' API documentation'; + } + } + if (!isset($options['lang'])) { + $options['lang'] = 'js'; + } + if (!isset($options['toc'])) { + $options['toc'] = 'properties'; + } + + $this->options = $options; + $this->source = str_replace(PHP_EOL, "\n", $options['source']); + $this->entries = Entry::getEntries($this->source); + + foreach ($this->entries as $index => $value) { + $this->entries[$index] = new Entry($value, $this->source, $options['lang']); + } + } + + /*--------------------------------------------------------------------------*/ + + /** + * Performs common string formatting operations. + * + * @private + * @static + * @memberOf Generator + * @param {String} $string The string to format. + * @returns {String} The formatted string. + */ + private static function format( $string ) { + $counter = 0; + + // tokenize inline code snippets + preg_match_all('/`[^`]+`/', $string, $tokenized); + $tokenized = $tokenized[0]; + foreach ($tokenized as $snippet) { + $string = str_replace($snippet, '__token' . ($counter++) .'__', $string); + } + + // italicize parentheses + $string = preg_replace('/(^|\s)(\([^)]+\))/', '$1*$2*', $string); + + // mark numbers as inline code + $string = preg_replace('/[\t ](-?\d+(?:.\d+)?)(?!\.[^\n])/', ' `$1`', $string); + + // detokenize inline code snippets + $counter = 0; + foreach ($tokenized as $snippet) { + $string = str_replace('__token' . ($counter++) . '__', $snippet, $string); + } + + return trim($string); + } + + /** + * Modify a string by replacing named tokens with matching assoc. array values. + * + * @private + * @static + * @memberOf Generator + * @param {String} $string The string to modify. + * @param {Array|Object} $object The template object. + * @returns {String} The modified string. + */ + private static function interpolate( $string, $object ) { + preg_match_all('/#\{([^}]+)\}/', $string, $tokens); + $tokens = array_unique(array_pop($tokens)); + + foreach ($tokens as $token) { + $pattern = '/#\{' . $token . '\}/'; + $replacement = ''; + + if (is_object($object)) { + preg_match('/\(([^)]+?)\)$/', $token, $args); + $args = preg_split('/,\s*/', array_pop($args)); + $method = 'get' . ucfirst(str_replace('/\([^)]+?\)$/', '', $token)); + + if (method_exists($object, $method)) { + $replacement = (string) call_user_func_array(array($object, $method), $args); + } else if (isset($object->{$token})) { + $replacement = (string) $object->{$token}; + } + } else if (isset($object[$token])) { + $replacement = (string) $object[$token]; + } + $string = preg_replace($pattern, trim($replacement), $string); + } + return Generator::format($string); + } + + /*--------------------------------------------------------------------------*/ + + /** + * Adds the given `$entries` to the `$result` array. + * + * @private + * @memberOf Generator + * @param {Array} $result The result array to modify. + * @param {Array} $entries The entries to add to the `$result`. + */ + private function addEntries( &$result, $entries ) { + foreach ($entries as $entry) { + // skip aliases + if ($entry->isAlias()) { + continue; + } + // name and description + array_push( + $result, + $this->openTag, + Generator::interpolate("### `#{member}#{separator}#{call}`\n# [Ⓢ](#{href} \"View in source\") [Ⓣ][1]\n\n#{desc}", $entry) + ); + + // @alias + if (count($aliases = $entry->getAliases())) { + array_push($result, '', '#### Aliases'); + foreach ($aliases as $index => $alias) { + $aliases[$index] = $alias->getName(); + } + $result[] = '*' . implode(', ', $aliases) . '*'; + } + // @param + if (count($params = $entry->getParams())) { + array_push($result, '', '#### Arguments'); + foreach ($params as $index => $param) { + $result[] = Generator::interpolate('#{num}. `#{name}` (#{type}): #{desc}', array( + 'desc' => $param[2], + 'name' => $param[1], + 'num' => $index + 1, + 'type' => $param[0] + )); + } + } + // @returns + if (count($returns = $entry->getReturns())) { + array_push( + $result, '', + '#### Returns', + Generator::interpolate('(#{type}): #{desc}', array('desc' => $returns[1], 'type' => $returns[0])) + ); + } + // @example + if ($example = $entry->getExample()) { + array_push($result, '', '#### Example', $example); + } + array_push($result, "\n* * *", $this->closeTag); + } + } + + /** + * Resolves the entry's hash used to navigate the documentation. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @param {String} $member The name of the member. + * @returns {String} The url hash. + */ + private function getHash( $entry, $member = '' ) { + $entry = is_numeric($entry) ? $this->entries[$entry] : $entry; + $member = !$member ? $entry->getMembers(0) : $member; + $result = ($member ? $member . ($entry->isPlugin() ? 'prototype' : '') : '') . $entry->getCall(); + $result = preg_replace('/\(\[|\[\]/', '', $result); + $result = preg_replace('/[ =|\'"{}.()\]]/', '', $result); + $result = preg_replace('/[[#,]/', '-', $result); + return strtolower($result); + } + + /** + * Resolves the entry's url for the specific line number. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @returns {String} The url. + */ + private function getLineUrl( $entry ) { + $entry = is_numeric($entry) ? $this->entries($entry) : $entry; + return $this->options['url'] . '#L' . $entry->getLineNumber(); + } + + /** + * Extracts the character used to separate the entry's name from its member. + * + * @private + * @memberOf Generator + * @param {Number|Object} $entry The entry object. + * @returns {String} The separator. + */ + private function getSeparator( $entry ) { + $entry = is_numeric($entry) ? $this->entries($entry) : $entry; + return $entry->isPlugin() ? '.prototype.' : '.'; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Generates Markdown from JSDoc entries. + * + * @memberOf Generator + * @returns {String} The rendered Markdown. + */ + public function generate() { + $api = array(); + $byCategory = $this->options['toc'] == 'categories'; + $categories = array(); + $closeTag = $this->closeTag; + $compiling = false; + $openTag = $this->openTag; + $result = array('# ' . $this->options['title']); + $toc = 'toc'; + + // initialize $api array + foreach ($this->entries as $entry) { + // skip invalid or private entries + $name = $entry->getName(); + if (!$name || $entry->isPrivate()) { + continue; + } + + $members = $entry->getMembers(); + $members = count($members) ? $members : array(''); + + foreach ($members as $member) { + // create api category arrays + if ($member && !isset($api[$member])) { + // create temporary entry to be replaced later + $api[$member] = new stdClass; + $api[$member]->static = array(); + $api[$member]->plugin = array(); + } + + // append entry to api member + if (!$member || $entry->isCtor() || ($entry->getType() == 'Object' && + !preg_match('/[=:]\s*(?:null|undefined)\s*[,;]?$/', $entry->entry))) { + + // assign the real entry, replacing the temporary entry if it exist + $member = ($member ? $member . ($entry->isPlugin() ? '#' : '.') : '') . $name; + $entry->static = @$api[$member] ? $api[$member]->static : array(); + $entry->plugin = @$api[$member] ? $api[$member]->plugin : array(); + + $api[$member] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->static[] = $alias; + } + } + else if ($entry->isStatic()) { + $api[$member]->static[] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->static[] = $alias; + } + } + else if (!$entry->isCtor()) { + $api[$member]->plugin[] = $entry; + foreach ($entry->getAliases() as $alias) { + $api[$member]->plugin[] = $alias; + } + } + } + } + + // add properties to each entry + foreach ($api as $entry) { + $entry->hash = $this->getHash($entry); + $entry->href = $this->getLineUrl($entry); + + $member = $entry->getMembers(0); + $member = ($member ? $member . ($entry->isPlugin() ? '.prototype.' : '.') : '') . $entry->getName(); + $entry->member = preg_replace('/' . $entry->getName() . '$/', '', $member); + + // add properties to static and plugin sub-entries + foreach (array('static', 'plugin') as $kind) { + foreach ($entry->{$kind} as $subentry) { + $subentry->hash = $this->getHash($subentry); + $subentry->href = $this->getLineUrl($subentry); + $subentry->member = $member; + $subentry->separator = $this->getSeparator($subentry); + } + } + } + + /*------------------------------------------------------------------------*/ + + // custom sort for root level entries + // TODO: see how well it handles deeper namespace traversal + function sortCompare($a, $b) { + $score = array( 'a' => 0, 'b' => 0); + foreach (array( 'a' => $a, 'b' => $b) as $key => $value) { + // capitalized properties are last + if (preg_match('/[#.][A-Z]/', $value)) { + $score[$key] = 0; + } + // lowercase prototype properties are next to last + else if (preg_match('/#[a-z]/', $value)) { + $score[$key] = 1; + } + // lowercase static properties next to first + else if (preg_match('/\.[a-z]/', $value)) { + $score[$key] = 2; + } + // root properties are first + else if (preg_match('/^[^#.]+$/', $value)) { + $score[$key] = 3; + } + } + $score = $score['b'] - $score['a']; + return $score ? $score : strcasecmp($a, $b); + } + + uksort($api, 'sortCompare'); + + // sort static and plugin sub-entries + foreach ($api as $entry) { + foreach (array('static', 'plugin') as $kind) { + $sortBy = array( 'a' => array(), 'b' => array(), 'c' => array() ); + foreach ($entry->{$kind} as $subentry) { + $name = $subentry->getName(); + // functions w/o ALL-CAPs names are last + $sortBy['a'][] = $subentry->getType() == 'Function' && !preg_match('/^[A-Z_]+$/', $name); + // ALL-CAPs properties first + $sortBy['b'][] = preg_match('/^[A-Z_]+$/', $name); + // lowercase alphanumeric sort + $sortBy['c'][] = strtolower($name); + } + array_multisort($sortBy['a'], SORT_ASC, $sortBy['b'], SORT_DESC, $sortBy['c'], SORT_ASC, $entry->{$kind}); + } + } + + /*------------------------------------------------------------------------*/ + + // add categories + foreach ($api as $entry) { + $categories[$entry->getCategory()][] = $entry; + foreach (array('static', 'plugin') as $kind) { + foreach ($entry->{$kind} as $subentry) { + $categories[$subentry->getCategory()][] = $subentry; + } + } + } + + // sort categories + ksort($categories); + + foreach(array('Methods', 'Properties') as $category) { + if (isset($categories[$category])) { + $entries = $categories[$category]; + unset($categories[$category]); + $categories[$category] = $entries; + } + } + + /*------------------------------------------------------------------------*/ + + // compile TOC + $result[] = $openTag; + + // compile TOC by categories + if ($byCategory) { + foreach ($categories as $category => $entries) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + // assign TOC hash + if (count($result) == 2) { + $toc = $category; + } + // add category + array_push( + $result, + $openTag, '## ' . (count($result) == 2 ? '' : '') . '`' . $category . '`' + ); + // add entries + foreach ($entries as $entry) { + $result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $entry); + } + } + } + // compile TOC by namespace + else { + foreach ($api as $entry) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + $member = $entry->member . $entry->getName(); + + // assign TOC hash + if (count($result) == 2) { + $toc = $member; + } + // add root entry + array_push( + $result, + $openTag, '## ' . (count($result) == 2 ? '' : '') . '`' . $member . '`', + Generator::interpolate('* [`' . $member . '`](##{hash})', $entry) + ); + + // add static and plugin sub-entries + foreach (array('static', 'plugin') as $kind) { + if ($kind == 'plugin' && count($entry->plugin)) { + array_push( + $result, + $closeTag, + $openTag, + '## `' . $member . ($entry->isCtor() ? '.prototype`' : '`') + ); + } + foreach ($entry->{$kind} as $subentry) { + $subentry->member = $member; + $result[] = Generator::interpolate('* [`#{member}#{separator}#{name}`](##{hash})', $subentry); + } + } + } + } + + array_push($result, $closeTag, $closeTag); + + /*------------------------------------------------------------------------*/ + + // compile content + $compiling = false; + $result[] = $openTag; + + if ($byCategory) { + foreach ($categories as $category => $entries) { + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + if ($category != 'Methods' && $category != 'Properties') { + $category = '“' . $category . '” Methods'; + } + array_push($result, $openTag, '## `' . $category . '`'); + $this->addEntries($result, $entries); + } + } + else { + foreach ($api as $entry) { + // skip aliases + if ($entry->isAlias()) { + continue; + } + if ($compiling) { + $result[] = $closeTag; + } else { + $compiling = true; + } + // add root entry name + $member = $entry->member . $entry->getName(); + array_push($result, $openTag, '## `' . $member . '`'); + + foreach (array($entry, 'static', 'plugin') as $kind) { + $subentries = is_string($kind) ? $entry->{$kind} : array($kind); + + // add sub-entry name + if ($kind != 'static' && $entry->getType() != 'Object' && + count($subentries) && $subentries[0] != $kind) { + if ($kind == 'plugin') { + $result[] = $closeTag; + } + array_push( + $result, + $openTag, + '## `' . $member . ($kind == 'plugin' ? '.prototype`' : '`') + ); + } + $this->addEntries($result, $subentries); + } + } + } + + // close tags add TOC link reference + array_push($result, $closeTag, $closeTag, '', ' [1]: #' . $toc . ' "Jump back to the TOC."'); + + // cleanup whitespace + return trim(preg_replace('/[\t ]+\n/', "\n", join($result, "\n"))); + } +} +?> diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json new file mode 100644 index 00000000..167c7c6a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/package.json @@ -0,0 +1,50 @@ +{ + "author": { + "name": "Jeremy Stashewsky", + "email": "jeremy@goinstant.com", + "url": "https://github.com/stash" + }, + "name": "tough-cookie", + "description": "RFC6265 Cookies and Cookie Jar for node.js", + "keywords": [ + "HTTP", + "cookie", + "cookies", + "set-cookie", + "cookiejar", + "jar", + "RFC6265", + "RFC2965" + ], + "version": "0.9.15", + "homepage": "https://github.com/goinstant/node-cookie", + "repository": { + "type": "git", + "url": "git://github.com/goinstant/node-cookie.git" + }, + "bugs": { + "url": "https://github.com/goinstant/node-cookie/issues" + }, + "main": "./lib/cookie", + "scripts": { + "test": "vows test.js" + }, + "engines": { + "node": ">=0.4.12" + }, + "dependencies": { + "punycode": ">=0.2.0" + }, + "devDependencies": { + "vows": ">=0.6.0", + "async": ">=0.1.12" + }, + "readme": "[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js\n\n![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg)\n\n# Synopsis\n\n``` javascript\nvar cookies = require('tough-cookie'); // note: not 'cookie', 'cookies' or 'node-cookie'\nvar Cookie = cookies.Cookie;\nvar cookie = Cookie.parse(header);\ncookie.value = 'somethingdifferent';\nheader = cookie.toString();\n\nvar cookiejar = new cookies.CookieJar();\ncookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb);\n// ...\ncookiejar.getCookies('http://example.com/otherpath',function(err,cookies) {\n res.headers['cookie'] = cookies.join('; ');\n});\n```\n\n# Installation\n\nIt's _so_ easy!\n\n`npm install tough-cookie`\n\nRequires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default.\n\nWhy the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.\n\n# API\n\ncookies\n=======\n\nFunctions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be \"bound\".\n\nparseDate(string[,strict])\n-----------------\n\nParse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. \"Thu, 01 Jan 1970 00:00:010 GMT\" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid).\n\nformatDate(date)\n----------------\n\nFormat a Date into a RFC1123 string (the RFC6265-recommended format).\n\ncanonicalDomain(str)\n--------------------\n\nTransforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).\n\ndomainMatch(str,domStr[,canonicalize=true])\n-------------------------------------------\n\nAnswers \"does this real domain match the domain in a cookie?\". The `str` is the \"current\" domain-name and the `domStr` is the \"cookie\" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a \"suffix match\".\n\nThe `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.\n\ndefaultPath(path)\n-----------------\n\nGiven a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the \"directory\" of a \"file\" in the path, but is specified by Section 5.1.4 of the RFC.\n\nThe `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output.\n\npathMatch(reqPath,cookiePath)\n-----------------------------\n\nAnswers \"does the request-path path-match a given cookie-path?\" as per RFC6265 Section 5.1.4. Returns a boolean.\n\nThis is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.\n\nparse(header[,strict=false])\n----------------------------\n\nalias for `Cookie.parse(header[,strict])`\n\nfromJSON(string)\n----------------\n\nalias for `Cookie.fromJSON(string)`\n\ngetPublicSuffix(hostname)\n-------------------------\n\nReturns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.\n\nFor example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.\n\nFor further information, see http://publicsuffix.org/. This module derives its list from that site.\n\ncookieCompare(a,b)\n------------------\n\nFor use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest.\n\n``` javascript\nvar cookies = [ /* unsorted array of Cookie objects */ ];\ncookies = cookies.sort(cookieCompare);\n```\n\npermuteDomain(domain)\n---------------------\n\nGenerates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.\n\n\npermutePath(path)\n-----------------\n\nGenerates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.\n\nCookie\n======\n\nCookie.parse(header[,strict=false])\n-----------------------------------\n\nParses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. If in strict mode, returns `undefined` if the cookie doesn't follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off.\n\nHere's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:\n\n``` javascript\nif (res.headers['set-cookie'] instanceof Array)\n cookies = res.headers['set-cookie'].map(Cookie.parse);\nelse\n cookies = [Cookie.parse(res.headers['set-cookie'])];\n```\n\nCookie.fromJSON(string)\n-----------------------\n\nConvert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects.\n\nProperties\n==========\n\n * _key_ - string - the name or key of the cookie (default \"\")\n * _value_ - string - the value of the cookie (default \"\")\n * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `\"Infinity\"`). See `setExpires()`\n * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `\"Infinity\"` and `\"-Infinity\"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`\n * _domain_ - string - the `Domain=` attribute of the cookie\n * _path_ - string - the `Path=` of the cookie\n * _secure_ - boolean - the `Secure` cookie flag\n * _httpOnly_ - boolean - the `HttpOnly` cookie flag\n * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)\n \nAfter a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:\n\n * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)\n * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.\n * _created_ - `Date` - when this cookie was added to the jar\n * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.\n\nConstruction([{options}])\n------------\n\nReceives an options object that can contain any Cookie properties, uses the default for unspecified properties.\n\n.toString()\n-----------\n\nencode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.\n\n.cookieString()\n---------------\n\nencode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '=').\n\n.setExpires(String)\n-------------------\n\nsets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `\"Infinity\"` (a string) is set.\n\n.setMaxAge(number)\n-------------------\n\nsets the maxAge in seconds. Coerces `-Infinity` to `\"-Infinity\"` and `Infinity` to `\"Infinity\"` so it JSON serializes correctly.\n\n.expiryTime([now=Date.now()])\n-----------------------------\n\n.expiryDate([now=Date.now()])\n-----------------------------\n\nexpiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.\n\nMax-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.\n\nIf Expires (`.expires`) is set, that's returned.\n\nOtherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for \"Tue, 19 Jan 2038 03:14:07 GMT\" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).\n\n.TTL([now=Date.now()])\n---------\n\ncompute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.\n\nThe \"number\" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.\n\n.canonicalizedDoman()\n---------------------\n\n.cdomain()\n----------\n\nreturn the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.\n\n.validate()\n-----------\n\nStatus: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.\n\nvalidates cookie attributes for semantic correctness. Useful for \"lint\" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:\n\n``` javascript\nif (cookie.validate() === true) {\n // it's tasty\n} else {\n // yuck!\n}\n```\n\nCookieJar\n=========\n\nConstruction([store = new MemoryCookieStore()][, rejectPublicSuffixes])\n------------\n\nSimply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.\n\n\nAttributes\n----------\n\n * _rejectPublicSuffixes_ - boolean - reject cookies with domains like \"com\" and \"co.uk\" (default: `true`)\n \nSince eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.\n\n.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))\n-------------------------------------------------------------------\n\nAttempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a \"Secure\" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _strict_ - boolean - default `false` - perform extra checks\n * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren't ignored by this option.\n\nAs per the RFC, the `.hostOnly` property is set if there was no \"Domain=\" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).\n\n.storeCookie(cookie, [{options},] cb(err,cookie))\n-------------------------------------------------\n\n__REMOVED__ removed in lieu of the CookieStore API below\n \n.getCookies(currentUrl, [{options},] cb(err,cookies))\n-----------------------------------------------------\n\nRetrieve the list of cookies that can be sent in a Cookie header for the current url.\n\nIf an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a \"Secure\" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).\n * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it).\n\nThe `.lastAccessed` property of the returned cookies will have been updated.\n\n.getCookieString(...)\n---------------------\n\nAccepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.\n\n.getSetCookieStrings(...)\n-------------------------\n\nAccepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`.\n\n# CookieStore API\n\nThe storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.\n\nAll `domain` parameters will have been normalized before calling.\n\nThe Cookie store must have all of the following methods.\n\nstore.findCookie(domain, path, key, cb(err,cookie))\n---------------------------------------------------\n\nRetrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.\n\nCallback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).\n\nstore.findCookies(domain, path, cb(err,cookies))\n------------------------------------------------\n\nLocates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.\n\nIf no cookies are found, the callback MUST be passed an empty array.\n\nThe resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.\n\nAs of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).\n\nstore.putCookie(cookie, cb(err))\n--------------------------------\n\nAdds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.\n\nThe `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.\n\nPass an error if the cookie cannot be stored.\n\nstore.updateCookie(oldCookie, newCookie, cb(err))\n-------------------------------------------------\n\nUpdate an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.\n\nThe `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion).\n\nStores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.\n\nThe `newCookie` and `oldCookie` objects MUST NOT be modified.\n\nPass an error if the newCookie cannot be stored.\n\nstore.removeCookie(domain, path, key, cb(err))\n----------------------------------------------\n\nRemove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).\n\nThe implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie.\n\nstore.removeCookies(domain, path, cb(err))\n------------------------------------------\n\nRemoves matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed.\n\nPass an error ONLY if removing any existing cookies failed.\n\n# TODO\n\n * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()`\n * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891\n * better tests for `validate()`?\n\n# Copyright and License\n\n(tl;dr: MIT with some MPL/1.1)\n\nCopyright GoInstant, Inc. and other contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\nPortions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details.\n", + "readmeFilename": "README.md", + "_id": "tough-cookie@0.9.15", + "dist": { + "shasum": "0fbda7fb5b5bca17e4f97909a0818dc8c2c12588" + }, + "_from": "tough-cookie@~0.9.15", + "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt new file mode 100644 index 00000000..2c201312 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/public-suffix.txt @@ -0,0 +1,5229 @@ +// ***** BEGIN LICENSE BLOCK ***** +// Version: MPL 1.1/GPL 2.0/LGPL 2.1 +// +// The contents of this file are subject to the Mozilla Public License Version +// 1.1 (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.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the +// License. +// +// The Original Code is the Public Suffix List. +// +// The Initial Developer of the Original Code is +// Jo Hermans . +// Portions created by the Initial Developer are Copyright (C) 2007 +// the Initial Developer. All Rights Reserved. +// +// Contributor(s): +// Ruben Arakelyan +// Gervase Markham +// Pamela Greene +// David Triendl +// Jothan Frakes +// The kind representatives of many TLD registries +// +// Alternatively, the contents of this file may be used under the terms of +// either the GNU General Public License Version 2 or later (the "GPL"), or +// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +// in which case the provisions of the GPL or the LGPL are applicable instead +// of those above. If you wish to allow use of your version of this file only +// under the terms of either the GPL or the LGPL, and not to allow others to +// use your version of this file under the terms of the MPL, indicate your +// decision by deleting the provisions above and replace them with the notice +// and other provisions required by the GPL or the LGPL. If you do not delete +// the provisions above, a recipient may use your version of this file under +// the terms of any one of the MPL, the GPL or the LGPL. +// +// ***** END LICENSE BLOCK ***** + +// ===BEGIN ICANN DOMAINS=== + +// ac : http://en.wikipedia.org/wiki/.ac +ac +com.ac +edu.ac +gov.ac +net.ac +mil.ac +org.ac + +// ad : http://en.wikipedia.org/wiki/.ad +ad +nom.ad + +// ae : http://en.wikipedia.org/wiki/.ae +// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php +ae +co.ae +net.ae +org.ae +sch.ae +ac.ae +gov.ae +mil.ae + +// aero : see http://www.information.aero/index.php?id=66 +aero +accident-investigation.aero +accident-prevention.aero +aerobatic.aero +aeroclub.aero +aerodrome.aero +agents.aero +aircraft.aero +airline.aero +airport.aero +air-surveillance.aero +airtraffic.aero +air-traffic-control.aero +ambulance.aero +amusement.aero +association.aero +author.aero +ballooning.aero +broker.aero +caa.aero +cargo.aero +catering.aero +certification.aero +championship.aero +charter.aero +civilaviation.aero +club.aero +conference.aero +consultant.aero +consulting.aero +control.aero +council.aero +crew.aero +design.aero +dgca.aero +educator.aero +emergency.aero +engine.aero +engineer.aero +entertainment.aero +equipment.aero +exchange.aero +express.aero +federation.aero +flight.aero +freight.aero +fuel.aero +gliding.aero +government.aero +groundhandling.aero +group.aero +hanggliding.aero +homebuilt.aero +insurance.aero +journal.aero +journalist.aero +leasing.aero +logistics.aero +magazine.aero +maintenance.aero +marketplace.aero +media.aero +microlight.aero +modelling.aero +navigation.aero +parachuting.aero +paragliding.aero +passenger-association.aero +pilot.aero +press.aero +production.aero +recreation.aero +repbody.aero +res.aero +research.aero +rotorcraft.aero +safety.aero +scientist.aero +services.aero +show.aero +skydiving.aero +software.aero +student.aero +taxi.aero +trader.aero +trading.aero +trainer.aero +union.aero +workinggroup.aero +works.aero + +// af : http://www.nic.af/help.jsp +af +gov.af +com.af +org.af +net.af +edu.af + +// ag : http://www.nic.ag/prices.htm +ag +com.ag +org.ag +net.ag +co.ag +nom.ag + +// ai : http://nic.com.ai/ +ai +off.ai +com.ai +net.ai +org.ai + +// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31 +al +com.al +edu.al +gov.al +mil.al +net.al +org.al + +// am : http://en.wikipedia.org/wiki/.am +am + +// an : http://www.una.an/an_domreg/default.asp +an +com.an +net.an +org.an +edu.an + +// ao : http://en.wikipedia.org/wiki/.ao +// http://www.dns.ao/REGISTR.DOC +ao +ed.ao +gv.ao +og.ao +co.ao +pb.ao +it.ao + +// aq : http://en.wikipedia.org/wiki/.aq +aq + +// ar : http://en.wikipedia.org/wiki/.ar +*.ar +!congresodelalengua3.ar +!educ.ar +!gobiernoelectronico.ar +!mecon.ar +!nacion.ar +!nic.ar +!promocion.ar +!retina.ar +!uba.ar + +// arpa : http://en.wikipedia.org/wiki/.arpa +// Confirmed by registry 2008-06-18 +e164.arpa +in-addr.arpa +ip6.arpa +iris.arpa +uri.arpa +urn.arpa + +// as : http://en.wikipedia.org/wiki/.as +as +gov.as + +// asia : http://en.wikipedia.org/wiki/.asia +asia + +// at : http://en.wikipedia.org/wiki/.at +// Confirmed by registry 2008-06-17 +at +ac.at +co.at +gv.at +or.at + +// au : http://en.wikipedia.org/wiki/.au +// http://www.auda.org.au/ +// 2LDs +com.au +net.au +org.au +edu.au +gov.au +csiro.au +asn.au +id.au +// Historic 2LDs (closed to new registration, but sites still exist) +info.au +conf.au +oz.au +// CGDNs - http://www.cgdn.org.au/ +act.au +nsw.au +nt.au +qld.au +sa.au +tas.au +vic.au +wa.au +// 3LDs +act.edu.au +nsw.edu.au +nt.edu.au +qld.edu.au +sa.edu.au +tas.edu.au +vic.edu.au +wa.edu.au +act.gov.au +// Removed at request of Shae.Donelan@services.nsw.gov.au, 2010-03-04 +// nsw.gov.au +nt.gov.au +qld.gov.au +sa.gov.au +tas.gov.au +vic.gov.au +wa.gov.au + +// aw : http://en.wikipedia.org/wiki/.aw +aw +com.aw + +// ax : http://en.wikipedia.org/wiki/.ax +ax + +// az : http://en.wikipedia.org/wiki/.az +az +com.az +net.az +int.az +gov.az +org.az +edu.az +info.az +pp.az +mil.az +name.az +pro.az +biz.az + +// ba : http://en.wikipedia.org/wiki/.ba +ba +org.ba +net.ba +edu.ba +gov.ba +mil.ba +unsa.ba +unbi.ba +co.ba +com.ba +rs.ba + +// bb : http://en.wikipedia.org/wiki/.bb +bb +biz.bb +com.bb +edu.bb +gov.bb +info.bb +net.bb +org.bb +store.bb + +// bd : http://en.wikipedia.org/wiki/.bd +*.bd + +// be : http://en.wikipedia.org/wiki/.be +// Confirmed by registry 2008-06-08 +be +ac.be + +// bf : http://en.wikipedia.org/wiki/.bf +bf +gov.bf + +// bg : http://en.wikipedia.org/wiki/.bg +// https://www.register.bg/user/static/rules/en/index.html +bg +a.bg +b.bg +c.bg +d.bg +e.bg +f.bg +g.bg +h.bg +i.bg +j.bg +k.bg +l.bg +m.bg +n.bg +o.bg +p.bg +q.bg +r.bg +s.bg +t.bg +u.bg +v.bg +w.bg +x.bg +y.bg +z.bg +0.bg +1.bg +2.bg +3.bg +4.bg +5.bg +6.bg +7.bg +8.bg +9.bg + +// bh : http://en.wikipedia.org/wiki/.bh +bh +com.bh +edu.bh +net.bh +org.bh +gov.bh + +// bi : http://en.wikipedia.org/wiki/.bi +// http://whois.nic.bi/ +bi +co.bi +com.bi +edu.bi +or.bi +org.bi + +// biz : http://en.wikipedia.org/wiki/.biz +biz + +// bj : http://en.wikipedia.org/wiki/.bj +bj +asso.bj +barreau.bj +gouv.bj + +// bm : http://www.bermudanic.bm/dnr-text.txt +bm +com.bm +edu.bm +gov.bm +net.bm +org.bm + +// bn : http://en.wikipedia.org/wiki/.bn +*.bn + +// bo : http://www.nic.bo/ +bo +com.bo +edu.bo +gov.bo +gob.bo +int.bo +org.bo +net.bo +mil.bo +tv.bo + +// br : http://registro.br/dominio/dpn.html +// Updated by registry 2011-03-01 +br +adm.br +adv.br +agr.br +am.br +arq.br +art.br +ato.br +b.br +bio.br +blog.br +bmd.br +can.br +cim.br +cng.br +cnt.br +com.br +coop.br +ecn.br +edu.br +emp.br +eng.br +esp.br +etc.br +eti.br +far.br +flog.br +fm.br +fnd.br +fot.br +fst.br +g12.br +ggf.br +gov.br +imb.br +ind.br +inf.br +jor.br +jus.br +lel.br +mat.br +med.br +mil.br +mus.br +net.br +nom.br +not.br +ntr.br +odo.br +org.br +ppg.br +pro.br +psc.br +psi.br +qsl.br +radio.br +rec.br +slg.br +srv.br +taxi.br +teo.br +tmp.br +trd.br +tur.br +tv.br +vet.br +vlog.br +wiki.br +zlg.br + +// bs : http://www.nic.bs/rules.html +bs +com.bs +net.bs +org.bs +edu.bs +gov.bs + +// bt : http://en.wikipedia.org/wiki/.bt +bt +com.bt +edu.bt +gov.bt +net.bt +org.bt + +// bv : No registrations at this time. +// Submitted by registry 2006-06-16 + +// bw : http://en.wikipedia.org/wiki/.bw +// http://www.gobin.info/domainname/bw.doc +// list of other 2nd level tlds ? +bw +co.bw +org.bw + +// by : http://en.wikipedia.org/wiki/.by +// http://tld.by/rules_2006_en.html +// list of other 2nd level tlds ? +by +gov.by +mil.by +// Official information does not indicate that com.by is a reserved +// second-level domain, but it's being used as one (see www.google.com.by and +// www.yahoo.com.by, for example), so we list it here for safety's sake. +com.by + +// http://hoster.by/ +of.by + +// bz : http://en.wikipedia.org/wiki/.bz +// http://www.belizenic.bz/ +bz +com.bz +net.bz +org.bz +edu.bz +gov.bz + +// ca : http://en.wikipedia.org/wiki/.ca +ca +// ca geographical names +ab.ca +bc.ca +mb.ca +nb.ca +nf.ca +nl.ca +ns.ca +nt.ca +nu.ca +on.ca +pe.ca +qc.ca +sk.ca +yk.ca +// gc.ca: http://en.wikipedia.org/wiki/.gc.ca +// see also: http://registry.gc.ca/en/SubdomainFAQ +gc.ca + +// cat : http://en.wikipedia.org/wiki/.cat +cat + +// cc : http://en.wikipedia.org/wiki/.cc +cc + +// cd : http://en.wikipedia.org/wiki/.cd +// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1 +cd +gov.cd + +// cf : http://en.wikipedia.org/wiki/.cf +cf + +// cg : http://en.wikipedia.org/wiki/.cg +cg + +// ch : http://en.wikipedia.org/wiki/.ch +ch + +// ci : http://en.wikipedia.org/wiki/.ci +// http://www.nic.ci/index.php?page=charte +ci +org.ci +or.ci +com.ci +co.ci +edu.ci +ed.ci +ac.ci +net.ci +go.ci +asso.ci +aéroport.ci +int.ci +presse.ci +md.ci +gouv.ci + +// ck : http://en.wikipedia.org/wiki/.ck +*.ck +!www.ck + +// cl : http://en.wikipedia.org/wiki/.cl +cl +gov.cl +gob.cl +co.cl +mil.cl + +// cm : http://en.wikipedia.org/wiki/.cm +cm +gov.cm + +// cn : http://en.wikipedia.org/wiki/.cn +// Submitted by registry 2008-06-11 +cn +ac.cn +com.cn +edu.cn +gov.cn +net.cn +org.cn +mil.cn +公司.cn +网络.cn +網絡.cn +// cn geographic names +ah.cn +bj.cn +cq.cn +fj.cn +gd.cn +gs.cn +gz.cn +gx.cn +ha.cn +hb.cn +he.cn +hi.cn +hl.cn +hn.cn +jl.cn +js.cn +jx.cn +ln.cn +nm.cn +nx.cn +qh.cn +sc.cn +sd.cn +sh.cn +sn.cn +sx.cn +tj.cn +xj.cn +xz.cn +yn.cn +zj.cn +hk.cn +mo.cn +tw.cn + +// co : http://en.wikipedia.org/wiki/.co +// Submitted by registry 2008-06-11 +co +arts.co +com.co +edu.co +firm.co +gov.co +info.co +int.co +mil.co +net.co +nom.co +org.co +rec.co +web.co + +// com : http://en.wikipedia.org/wiki/.com +com + +// coop : http://en.wikipedia.org/wiki/.coop +coop + +// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do +cr +ac.cr +co.cr +ed.cr +fi.cr +go.cr +or.cr +sa.cr + +// cu : http://en.wikipedia.org/wiki/.cu +cu +com.cu +edu.cu +org.cu +net.cu +gov.cu +inf.cu + +// cv : http://en.wikipedia.org/wiki/.cv +cv + +// cx : http://en.wikipedia.org/wiki/.cx +// list of other 2nd level tlds ? +cx +gov.cx + +// cy : http://en.wikipedia.org/wiki/.cy +*.cy + +// cz : http://en.wikipedia.org/wiki/.cz +cz + +// de : http://en.wikipedia.org/wiki/.de +// Confirmed by registry (with technical +// reservations) 2008-07-01 +de + +// dj : http://en.wikipedia.org/wiki/.dj +dj + +// dk : http://en.wikipedia.org/wiki/.dk +// Confirmed by registry 2008-06-17 +dk + +// dm : http://en.wikipedia.org/wiki/.dm +dm +com.dm +net.dm +org.dm +edu.dm +gov.dm + +// do : http://en.wikipedia.org/wiki/.do +do +art.do +com.do +edu.do +gob.do +gov.do +mil.do +net.do +org.do +sld.do +web.do + +// dz : http://en.wikipedia.org/wiki/.dz +dz +com.dz +org.dz +net.dz +gov.dz +edu.dz +asso.dz +pol.dz +art.dz + +// ec : http://www.nic.ec/reg/paso1.asp +// Submitted by registry 2008-07-04 +ec +com.ec +info.ec +net.ec +fin.ec +k12.ec +med.ec +pro.ec +org.ec +edu.ec +gov.ec +gob.ec +mil.ec + +// edu : http://en.wikipedia.org/wiki/.edu +edu + +// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B +ee +edu.ee +gov.ee +riik.ee +lib.ee +med.ee +com.ee +pri.ee +aip.ee +org.ee +fie.ee + +// eg : http://en.wikipedia.org/wiki/.eg +eg +com.eg +edu.eg +eun.eg +gov.eg +mil.eg +name.eg +net.eg +org.eg +sci.eg + +// er : http://en.wikipedia.org/wiki/.er +*.er + +// es : https://www.nic.es/site_ingles/ingles/dominios/index.html +es +com.es +nom.es +org.es +gob.es +edu.es + +// et : http://en.wikipedia.org/wiki/.et +*.et + +// eu : http://en.wikipedia.org/wiki/.eu +eu + +// fi : http://en.wikipedia.org/wiki/.fi +fi +// aland.fi : http://en.wikipedia.org/wiki/.ax +// This domain is being phased out in favor of .ax. As there are still many +// domains under aland.fi, we still keep it on the list until aland.fi is +// completely removed. +// TODO: Check for updates (expected to be phased out around Q1/2009) +aland.fi + +// fj : http://en.wikipedia.org/wiki/.fj +*.fj + +// fk : http://en.wikipedia.org/wiki/.fk +*.fk + +// fm : http://en.wikipedia.org/wiki/.fm +fm + +// fo : http://en.wikipedia.org/wiki/.fo +fo + +// fr : http://www.afnic.fr/ +// domaines descriptifs : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-descriptifs +fr +com.fr +asso.fr +nom.fr +prd.fr +presse.fr +tm.fr +// domaines sectoriels : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-sectoriels +aeroport.fr +assedic.fr +avocat.fr +avoues.fr +cci.fr +chambagri.fr +chirurgiens-dentistes.fr +experts-comptables.fr +geometre-expert.fr +gouv.fr +greta.fr +huissier-justice.fr +medecin.fr +notaires.fr +pharmacien.fr +port.fr +veterinaire.fr + +// ga : http://en.wikipedia.org/wiki/.ga +ga + +// gb : This registry is effectively dormant +// Submitted by registry 2008-06-12 + +// gd : http://en.wikipedia.org/wiki/.gd +gd + +// ge : http://www.nic.net.ge/policy_en.pdf +ge +com.ge +edu.ge +gov.ge +org.ge +mil.ge +net.ge +pvt.ge + +// gf : http://en.wikipedia.org/wiki/.gf +gf + +// gg : http://www.channelisles.net/applic/avextn.shtml +gg +co.gg +org.gg +net.gg +sch.gg +gov.gg + +// gh : http://en.wikipedia.org/wiki/.gh +// see also: http://www.nic.gh/reg_now.php +// Although domains directly at second level are not possible at the moment, +// they have been possible for some time and may come back. +gh +com.gh +edu.gh +gov.gh +org.gh +mil.gh + +// gi : http://www.nic.gi/rules.html +gi +com.gi +ltd.gi +gov.gi +mod.gi +edu.gi +org.gi + +// gl : http://en.wikipedia.org/wiki/.gl +// http://nic.gl +gl + +// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm +gm + +// gn : http://psg.com/dns/gn/gn.txt +// Submitted by registry 2008-06-17 +ac.gn +com.gn +edu.gn +gov.gn +org.gn +net.gn + +// gov : http://en.wikipedia.org/wiki/.gov +gov + +// gp : http://www.nic.gp/index.php?lang=en +gp +com.gp +net.gp +mobi.gp +edu.gp +org.gp +asso.gp + +// gq : http://en.wikipedia.org/wiki/.gq +gq + +// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html +// Submitted by registry 2008-06-09 +gr +com.gr +edu.gr +net.gr +org.gr +gov.gr + +// gs : http://en.wikipedia.org/wiki/.gs +gs + +// gt : http://www.gt/politicas.html +*.gt +!www.gt + +// gu : http://gadao.gov.gu/registration.txt +*.gu + +// gw : http://en.wikipedia.org/wiki/.gw +gw + +// gy : http://en.wikipedia.org/wiki/.gy +// http://registry.gy/ +gy +co.gy +com.gy +net.gy + +// hk : https://www.hkdnr.hk +// Submitted by registry 2008-06-11 +hk +com.hk +edu.hk +gov.hk +idv.hk +net.hk +org.hk +公司.hk +教育.hk +敎育.hk +政府.hk +個人.hk +个人.hk +箇人.hk +網络.hk +网络.hk +组織.hk +網絡.hk +网絡.hk +组织.hk +組織.hk +組织.hk + +// hm : http://en.wikipedia.org/wiki/.hm +hm + +// hn : http://www.nic.hn/politicas/ps02,,05.html +hn +com.hn +edu.hn +org.hn +net.hn +mil.hn +gob.hn + +// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf +hr +iz.hr +from.hr +name.hr +com.hr + +// ht : http://www.nic.ht/info/charte.cfm +ht +com.ht +shop.ht +firm.ht +info.ht +adult.ht +net.ht +pro.ht +org.ht +med.ht +art.ht +coop.ht +pol.ht +asso.ht +edu.ht +rel.ht +gouv.ht +perso.ht + +// hu : http://www.domain.hu/domain/English/sld.html +// Confirmed by registry 2008-06-12 +hu +co.hu +info.hu +org.hu +priv.hu +sport.hu +tm.hu +2000.hu +agrar.hu +bolt.hu +casino.hu +city.hu +erotica.hu +erotika.hu +film.hu +forum.hu +games.hu +hotel.hu +ingatlan.hu +jogasz.hu +konyvelo.hu +lakas.hu +media.hu +news.hu +reklam.hu +sex.hu +shop.hu +suli.hu +szex.hu +tozsde.hu +utazas.hu +video.hu + +// id : http://en.wikipedia.org/wiki/.id +// see also: https://register.pandi.or.id/ +id +ac.id +co.id +go.id +mil.id +net.id +or.id +sch.id +web.id + +// ie : http://en.wikipedia.org/wiki/.ie +ie +gov.ie + +// il : http://en.wikipedia.org/wiki/.il +*.il + +// im : https://www.nic.im/pdfs/imfaqs.pdf +im +co.im +ltd.co.im +plc.co.im +net.im +gov.im +org.im +nic.im +ac.im + +// in : http://en.wikipedia.org/wiki/.in +// see also: http://www.inregistry.in/policies/ +// Please note, that nic.in is not an offical eTLD, but used by most +// government institutions. +in +co.in +firm.in +net.in +org.in +gen.in +ind.in +nic.in +ac.in +edu.in +res.in +gov.in +mil.in + +// info : http://en.wikipedia.org/wiki/.info +info + +// int : http://en.wikipedia.org/wiki/.int +// Confirmed by registry 2008-06-18 +int +eu.int + +// io : http://www.nic.io/rules.html +// list of other 2nd level tlds ? +io +com.io + +// iq : http://www.cmc.iq/english/iq/iqregister1.htm +iq +gov.iq +edu.iq +mil.iq +com.iq +org.iq +net.iq + +// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules +// Also see http://www.nic.ir/Internationalized_Domain_Names +// Two .ir entries added at request of , 2010-04-16 +ir +ac.ir +co.ir +gov.ir +id.ir +net.ir +org.ir +sch.ir +// xn--mgba3a4f16a.ir (.ir, Persian YEH) +ایران.ir +// xn--mgba3a4fra.ir (.ir, Arabic YEH) +ايران.ir + +// is : http://www.isnic.is/domain/rules.php +// Confirmed by registry 2008-12-06 +is +net.is +com.is +edu.is +gov.is +org.is +int.is + +// it : http://en.wikipedia.org/wiki/.it +it +gov.it +edu.it +// list of reserved geo-names : +// http://www.nic.it/documenti/regolamenti-e-linee-guida/regolamento-assegnazione-versione-6.0.pdf +// (There is also a list of reserved geo-names corresponding to Italian +// municipalities : http://www.nic.it/documenti/appendice-c.pdf , but it is +// not included here.) +agrigento.it +ag.it +alessandria.it +al.it +ancona.it +an.it +aosta.it +aoste.it +ao.it +arezzo.it +ar.it +ascoli-piceno.it +ascolipiceno.it +ap.it +asti.it +at.it +avellino.it +av.it +bari.it +ba.it +andria-barletta-trani.it +andriabarlettatrani.it +trani-barletta-andria.it +tranibarlettaandria.it +barletta-trani-andria.it +barlettatraniandria.it +andria-trani-barletta.it +andriatranibarletta.it +trani-andria-barletta.it +traniandriabarletta.it +bt.it +belluno.it +bl.it +benevento.it +bn.it +bergamo.it +bg.it +biella.it +bi.it +bologna.it +bo.it +bolzano.it +bozen.it +balsan.it +alto-adige.it +altoadige.it +suedtirol.it +bz.it +brescia.it +bs.it +brindisi.it +br.it +cagliari.it +ca.it +caltanissetta.it +cl.it +campobasso.it +cb.it +carboniaiglesias.it +carbonia-iglesias.it +iglesias-carbonia.it +iglesiascarbonia.it +ci.it +caserta.it +ce.it +catania.it +ct.it +catanzaro.it +cz.it +chieti.it +ch.it +como.it +co.it +cosenza.it +cs.it +cremona.it +cr.it +crotone.it +kr.it +cuneo.it +cn.it +dell-ogliastra.it +dellogliastra.it +ogliastra.it +og.it +enna.it +en.it +ferrara.it +fe.it +fermo.it +fm.it +firenze.it +florence.it +fi.it +foggia.it +fg.it +forli-cesena.it +forlicesena.it +cesena-forli.it +cesenaforli.it +fc.it +frosinone.it +fr.it +genova.it +genoa.it +ge.it +gorizia.it +go.it +grosseto.it +gr.it +imperia.it +im.it +isernia.it +is.it +laquila.it +aquila.it +aq.it +la-spezia.it +laspezia.it +sp.it +latina.it +lt.it +lecce.it +le.it +lecco.it +lc.it +livorno.it +li.it +lodi.it +lo.it +lucca.it +lu.it +macerata.it +mc.it +mantova.it +mn.it +massa-carrara.it +massacarrara.it +carrara-massa.it +carraramassa.it +ms.it +matera.it +mt.it +medio-campidano.it +mediocampidano.it +campidano-medio.it +campidanomedio.it +vs.it +messina.it +me.it +milano.it +milan.it +mi.it +modena.it +mo.it +monza.it +monza-brianza.it +monzabrianza.it +monzaebrianza.it +monzaedellabrianza.it +monza-e-della-brianza.it +mb.it +napoli.it +naples.it +na.it +novara.it +no.it +nuoro.it +nu.it +oristano.it +or.it +padova.it +padua.it +pd.it +palermo.it +pa.it +parma.it +pr.it +pavia.it +pv.it +perugia.it +pg.it +pescara.it +pe.it +pesaro-urbino.it +pesarourbino.it +urbino-pesaro.it +urbinopesaro.it +pu.it +piacenza.it +pc.it +pisa.it +pi.it +pistoia.it +pt.it +pordenone.it +pn.it +potenza.it +pz.it +prato.it +po.it +ragusa.it +rg.it +ravenna.it +ra.it +reggio-calabria.it +reggiocalabria.it +rc.it +reggio-emilia.it +reggioemilia.it +re.it +rieti.it +ri.it +rimini.it +rn.it +roma.it +rome.it +rm.it +rovigo.it +ro.it +salerno.it +sa.it +sassari.it +ss.it +savona.it +sv.it +siena.it +si.it +siracusa.it +sr.it +sondrio.it +so.it +taranto.it +ta.it +tempio-olbia.it +tempioolbia.it +olbia-tempio.it +olbiatempio.it +ot.it +teramo.it +te.it +terni.it +tr.it +torino.it +turin.it +to.it +trapani.it +tp.it +trento.it +trentino.it +tn.it +treviso.it +tv.it +trieste.it +ts.it +udine.it +ud.it +varese.it +va.it +venezia.it +venice.it +ve.it +verbania.it +vb.it +vercelli.it +vc.it +verona.it +vr.it +vibo-valentia.it +vibovalentia.it +vv.it +vicenza.it +vi.it +viterbo.it +vt.it + +// je : http://www.channelisles.net/applic/avextn.shtml +je +co.je +org.je +net.je +sch.je +gov.je + +// jm : http://www.com.jm/register.html +*.jm + +// jo : http://www.dns.jo/Registration_policy.aspx +jo +com.jo +org.jo +net.jo +edu.jo +sch.jo +gov.jo +mil.jo +name.jo + +// jobs : http://en.wikipedia.org/wiki/.jobs +jobs + +// jp : http://en.wikipedia.org/wiki/.jp +// http://jprs.co.jp/en/jpdomain.html +// Submitted by registry 2008-06-11 +// Updated by registry 2008-12-04 +jp +// jp organizational type names +ac.jp +ad.jp +co.jp +ed.jp +go.jp +gr.jp +lg.jp +ne.jp +or.jp +// jp geographic type names +// http://jprs.jp/doc/rule/saisoku-1.html +*.aichi.jp +*.akita.jp +*.aomori.jp +*.chiba.jp +*.ehime.jp +*.fukui.jp +*.fukuoka.jp +*.fukushima.jp +*.gifu.jp +*.gunma.jp +*.hiroshima.jp +*.hokkaido.jp +*.hyogo.jp +*.ibaraki.jp +*.ishikawa.jp +*.iwate.jp +*.kagawa.jp +*.kagoshima.jp +*.kanagawa.jp +*.kawasaki.jp +*.kitakyushu.jp +*.kobe.jp +*.kochi.jp +*.kumamoto.jp +*.kyoto.jp +*.mie.jp +*.miyagi.jp +*.miyazaki.jp +*.nagano.jp +*.nagasaki.jp +*.nagoya.jp +*.nara.jp +*.niigata.jp +*.oita.jp +*.okayama.jp +*.okinawa.jp +*.osaka.jp +*.saga.jp +*.saitama.jp +*.sapporo.jp +*.sendai.jp +*.shiga.jp +*.shimane.jp +*.shizuoka.jp +*.tochigi.jp +*.tokushima.jp +*.tokyo.jp +*.tottori.jp +*.toyama.jp +*.wakayama.jp +*.yamagata.jp +*.yamaguchi.jp +*.yamanashi.jp +*.yokohama.jp +!metro.tokyo.jp +!pref.aichi.jp +!pref.akita.jp +!pref.aomori.jp +!pref.chiba.jp +!pref.ehime.jp +!pref.fukui.jp +!pref.fukuoka.jp +!pref.fukushima.jp +!pref.gifu.jp +!pref.gunma.jp +!pref.hiroshima.jp +!pref.hokkaido.jp +!pref.hyogo.jp +!pref.ibaraki.jp +!pref.ishikawa.jp +!pref.iwate.jp +!pref.kagawa.jp +!pref.kagoshima.jp +!pref.kanagawa.jp +!pref.kochi.jp +!pref.kumamoto.jp +!pref.kyoto.jp +!pref.mie.jp +!pref.miyagi.jp +!pref.miyazaki.jp +!pref.nagano.jp +!pref.nagasaki.jp +!pref.nara.jp +!pref.niigata.jp +!pref.oita.jp +!pref.okayama.jp +!pref.okinawa.jp +!pref.osaka.jp +!pref.saga.jp +!pref.saitama.jp +!pref.shiga.jp +!pref.shimane.jp +!pref.shizuoka.jp +!pref.tochigi.jp +!pref.tokushima.jp +!pref.tottori.jp +!pref.toyama.jp +!pref.wakayama.jp +!pref.yamagata.jp +!pref.yamaguchi.jp +!pref.yamanashi.jp +!city.chiba.jp +!city.fukuoka.jp +!city.hiroshima.jp +!city.kawasaki.jp +!city.kitakyushu.jp +!city.kobe.jp +!city.kyoto.jp +!city.nagoya.jp +!city.niigata.jp +!city.okayama.jp +!city.osaka.jp +!city.saitama.jp +!city.sapporo.jp +!city.sendai.jp +!city.shizuoka.jp +!city.yokohama.jp + +// ke : http://www.kenic.or.ke/index.php?option=com_content&task=view&id=117&Itemid=145 +*.ke + +// kg : http://www.domain.kg/dmn_n.html +kg +org.kg +net.kg +com.kg +edu.kg +gov.kg +mil.kg + +// kh : http://www.mptc.gov.kh/dns_registration.htm +*.kh + +// ki : http://www.ki/dns/index.html +ki +edu.ki +biz.ki +net.ki +org.ki +gov.ki +info.ki +com.ki + +// km : http://en.wikipedia.org/wiki/.km +// http://www.domaine.km/documents/charte.doc +km +org.km +nom.km +gov.km +prd.km +tm.km +edu.km +mil.km +ass.km +com.km +// These are only mentioned as proposed suggestions at domaine.km, but +// http://en.wikipedia.org/wiki/.km says they're available for registration: +coop.km +asso.km +presse.km +medecin.km +notaires.km +pharmaciens.km +veterinaire.km +gouv.km + +// kn : http://en.wikipedia.org/wiki/.kn +// http://www.dot.kn/domainRules.html +kn +net.kn +org.kn +edu.kn +gov.kn + +// kp : http://www.kcce.kp/en_index.php +com.kp +edu.kp +gov.kp +org.kp +rep.kp +tra.kp + +// kr : http://en.wikipedia.org/wiki/.kr +// see also: http://domain.nida.or.kr/eng/registration.jsp +kr +ac.kr +co.kr +es.kr +go.kr +hs.kr +kg.kr +mil.kr +ms.kr +ne.kr +or.kr +pe.kr +re.kr +sc.kr +// kr geographical names +busan.kr +chungbuk.kr +chungnam.kr +daegu.kr +daejeon.kr +gangwon.kr +gwangju.kr +gyeongbuk.kr +gyeonggi.kr +gyeongnam.kr +incheon.kr +jeju.kr +jeonbuk.kr +jeonnam.kr +seoul.kr +ulsan.kr + +// kw : http://en.wikipedia.org/wiki/.kw +*.kw + +// ky : http://www.icta.ky/da_ky_reg_dom.php +// Confirmed by registry 2008-06-17 +ky +edu.ky +gov.ky +com.ky +org.ky +net.ky + +// kz : http://en.wikipedia.org/wiki/.kz +// see also: http://www.nic.kz/rules/index.jsp +kz +org.kz +edu.kz +net.kz +gov.kz +mil.kz +com.kz + +// la : http://en.wikipedia.org/wiki/.la +// Submitted by registry 2008-06-10 +la +int.la +net.la +info.la +edu.la +gov.la +per.la +com.la +org.la + +// lb : http://en.wikipedia.org/wiki/.lb +// Submitted by registry 2008-06-17 +com.lb +edu.lb +gov.lb +net.lb +org.lb + +// lc : http://en.wikipedia.org/wiki/.lc +// see also: http://www.nic.lc/rules.htm +lc +com.lc +net.lc +co.lc +org.lc +edu.lc +gov.lc + +// li : http://en.wikipedia.org/wiki/.li +li + +// lk : http://www.nic.lk/seclevpr.html +lk +gov.lk +sch.lk +net.lk +int.lk +com.lk +org.lk +edu.lk +ngo.lk +soc.lk +web.lk +ltd.lk +assn.lk +grp.lk +hotel.lk + +// lr : http://psg.com/dns/lr/lr.txt +// Submitted by registry 2008-06-17 +com.lr +edu.lr +gov.lr +org.lr +net.lr + +// ls : http://en.wikipedia.org/wiki/.ls +ls +co.ls +org.ls + +// lt : http://en.wikipedia.org/wiki/.lt +lt +// gov.lt : http://www.gov.lt/index_en.php +gov.lt + +// lu : http://www.dns.lu/en/ +lu + +// lv : http://www.nic.lv/DNS/En/generic.php +lv +com.lv +edu.lv +gov.lv +org.lv +mil.lv +id.lv +net.lv +asn.lv +conf.lv + +// ly : http://www.nic.ly/regulations.php +ly +com.ly +net.ly +gov.ly +plc.ly +edu.ly +sch.ly +med.ly +org.ly +id.ly + +// ma : http://en.wikipedia.org/wiki/.ma +// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf +ma +co.ma +net.ma +gov.ma +org.ma +ac.ma +press.ma + +// mc : http://www.nic.mc/ +mc +tm.mc +asso.mc + +// md : http://en.wikipedia.org/wiki/.md +md + +// me : http://en.wikipedia.org/wiki/.me +me +co.me +net.me +org.me +edu.me +ac.me +gov.me +its.me +priv.me + +// mg : http://www.nic.mg/tarif.htm +mg +org.mg +nom.mg +gov.mg +prd.mg +tm.mg +edu.mg +mil.mg +com.mg + +// mh : http://en.wikipedia.org/wiki/.mh +mh + +// mil : http://en.wikipedia.org/wiki/.mil +mil + +// mk : http://en.wikipedia.org/wiki/.mk +// see also: http://dns.marnet.net.mk/postapka.php +mk +com.mk +org.mk +net.mk +edu.mk +gov.mk +inf.mk +name.mk + +// ml : http://www.gobin.info/domainname/ml-template.doc +// see also: http://en.wikipedia.org/wiki/.ml +ml +com.ml +edu.ml +gouv.ml +gov.ml +net.ml +org.ml +presse.ml + +// mm : http://en.wikipedia.org/wiki/.mm +*.mm + +// mn : http://en.wikipedia.org/wiki/.mn +mn +gov.mn +edu.mn +org.mn + +// mo : http://www.monic.net.mo/ +mo +com.mo +net.mo +org.mo +edu.mo +gov.mo + +// mobi : http://en.wikipedia.org/wiki/.mobi +mobi + +// mp : http://www.dot.mp/ +// Confirmed by registry 2008-06-17 +mp + +// mq : http://en.wikipedia.org/wiki/.mq +mq + +// mr : http://en.wikipedia.org/wiki/.mr +mr +gov.mr + +// ms : http://en.wikipedia.org/wiki/.ms +ms + +// mt : https://www.nic.org.mt/dotmt/ +*.mt + +// mu : http://en.wikipedia.org/wiki/.mu +mu +com.mu +net.mu +org.mu +gov.mu +ac.mu +co.mu +or.mu + +// museum : http://about.museum/naming/ +// http://index.museum/ +museum +academy.museum +agriculture.museum +air.museum +airguard.museum +alabama.museum +alaska.museum +amber.museum +ambulance.museum +american.museum +americana.museum +americanantiques.museum +americanart.museum +amsterdam.museum +and.museum +annefrank.museum +anthro.museum +anthropology.museum +antiques.museum +aquarium.museum +arboretum.museum +archaeological.museum +archaeology.museum +architecture.museum +art.museum +artanddesign.museum +artcenter.museum +artdeco.museum +arteducation.museum +artgallery.museum +arts.museum +artsandcrafts.museum +asmatart.museum +assassination.museum +assisi.museum +association.museum +astronomy.museum +atlanta.museum +austin.museum +australia.museum +automotive.museum +aviation.museum +axis.museum +badajoz.museum +baghdad.museum +bahn.museum +bale.museum +baltimore.museum +barcelona.museum +baseball.museum +basel.museum +baths.museum +bauern.museum +beauxarts.museum +beeldengeluid.museum +bellevue.museum +bergbau.museum +berkeley.museum +berlin.museum +bern.museum +bible.museum +bilbao.museum +bill.museum +birdart.museum +birthplace.museum +bonn.museum +boston.museum +botanical.museum +botanicalgarden.museum +botanicgarden.museum +botany.museum +brandywinevalley.museum +brasil.museum +bristol.museum +british.museum +britishcolumbia.museum +broadcast.museum +brunel.museum +brussel.museum +brussels.museum +bruxelles.museum +building.museum +burghof.museum +bus.museum +bushey.museum +cadaques.museum +california.museum +cambridge.museum +can.museum +canada.museum +capebreton.museum +carrier.museum +cartoonart.museum +casadelamoneda.museum +castle.museum +castres.museum +celtic.museum +center.museum +chattanooga.museum +cheltenham.museum +chesapeakebay.museum +chicago.museum +children.museum +childrens.museum +childrensgarden.museum +chiropractic.museum +chocolate.museum +christiansburg.museum +cincinnati.museum +cinema.museum +circus.museum +civilisation.museum +civilization.museum +civilwar.museum +clinton.museum +clock.museum +coal.museum +coastaldefence.museum +cody.museum +coldwar.museum +collection.museum +colonialwilliamsburg.museum +coloradoplateau.museum +columbia.museum +columbus.museum +communication.museum +communications.museum +community.museum +computer.museum +computerhistory.museum +comunicações.museum +contemporary.museum +contemporaryart.museum +convent.museum +copenhagen.museum +corporation.museum +correios-e-telecomunicações.museum +corvette.museum +costume.museum +countryestate.museum +county.museum +crafts.museum +cranbrook.museum +creation.museum +cultural.museum +culturalcenter.museum +culture.museum +cyber.museum +cymru.museum +dali.museum +dallas.museum +database.museum +ddr.museum +decorativearts.museum +delaware.museum +delmenhorst.museum +denmark.museum +depot.museum +design.museum +detroit.museum +dinosaur.museum +discovery.museum +dolls.museum +donostia.museum +durham.museum +eastafrica.museum +eastcoast.museum +education.museum +educational.museum +egyptian.museum +eisenbahn.museum +elburg.museum +elvendrell.museum +embroidery.museum +encyclopedic.museum +england.museum +entomology.museum +environment.museum +environmentalconservation.museum +epilepsy.museum +essex.museum +estate.museum +ethnology.museum +exeter.museum +exhibition.museum +family.museum +farm.museum +farmequipment.museum +farmers.museum +farmstead.museum +field.museum +figueres.museum +filatelia.museum +film.museum +fineart.museum +finearts.museum +finland.museum +flanders.museum +florida.museum +force.museum +fortmissoula.museum +fortworth.museum +foundation.museum +francaise.museum +frankfurt.museum +franziskaner.museum +freemasonry.museum +freiburg.museum +fribourg.museum +frog.museum +fundacio.museum +furniture.museum +gallery.museum +garden.museum +gateway.museum +geelvinck.museum +gemological.museum +geology.museum +georgia.museum +giessen.museum +glas.museum +glass.museum +gorge.museum +grandrapids.museum +graz.museum +guernsey.museum +halloffame.museum +hamburg.museum +handson.museum +harvestcelebration.museum +hawaii.museum +health.museum +heimatunduhren.museum +hellas.museum +helsinki.museum +hembygdsforbund.museum +heritage.museum +histoire.museum +historical.museum +historicalsociety.museum +historichouses.museum +historisch.museum +historisches.museum +history.museum +historyofscience.museum +horology.museum +house.museum +humanities.museum +illustration.museum +imageandsound.museum +indian.museum +indiana.museum +indianapolis.museum +indianmarket.museum +intelligence.museum +interactive.museum +iraq.museum +iron.museum +isleofman.museum +jamison.museum +jefferson.museum +jerusalem.museum +jewelry.museum +jewish.museum +jewishart.museum +jfk.museum +journalism.museum +judaica.museum +judygarland.museum +juedisches.museum +juif.museum +karate.museum +karikatur.museum +kids.museum +koebenhavn.museum +koeln.museum +kunst.museum +kunstsammlung.museum +kunstunddesign.museum +labor.museum +labour.museum +lajolla.museum +lancashire.museum +landes.museum +lans.museum +läns.museum +larsson.museum +lewismiller.museum +lincoln.museum +linz.museum +living.museum +livinghistory.museum +localhistory.museum +london.museum +losangeles.museum +louvre.museum +loyalist.museum +lucerne.museum +luxembourg.museum +luzern.museum +mad.museum +madrid.museum +mallorca.museum +manchester.museum +mansion.museum +mansions.museum +manx.museum +marburg.museum +maritime.museum +maritimo.museum +maryland.museum +marylhurst.museum +media.museum +medical.museum +medizinhistorisches.museum +meeres.museum +memorial.museum +mesaverde.museum +michigan.museum +midatlantic.museum +military.museum +mill.museum +miners.museum +mining.museum +minnesota.museum +missile.museum +missoula.museum +modern.museum +moma.museum +money.museum +monmouth.museum +monticello.museum +montreal.museum +moscow.museum +motorcycle.museum +muenchen.museum +muenster.museum +mulhouse.museum +muncie.museum +museet.museum +museumcenter.museum +museumvereniging.museum +music.museum +national.museum +nationalfirearms.museum +nationalheritage.museum +nativeamerican.museum +naturalhistory.museum +naturalhistorymuseum.museum +naturalsciences.museum +nature.museum +naturhistorisches.museum +natuurwetenschappen.museum +naumburg.museum +naval.museum +nebraska.museum +neues.museum +newhampshire.museum +newjersey.museum +newmexico.museum +newport.museum +newspaper.museum +newyork.museum +niepce.museum +norfolk.museum +north.museum +nrw.museum +nuernberg.museum +nuremberg.museum +nyc.museum +nyny.museum +oceanographic.museum +oceanographique.museum +omaha.museum +online.museum +ontario.museum +openair.museum +oregon.museum +oregontrail.museum +otago.museum +oxford.museum +pacific.museum +paderborn.museum +palace.museum +paleo.museum +palmsprings.museum +panama.museum +paris.museum +pasadena.museum +pharmacy.museum +philadelphia.museum +philadelphiaarea.museum +philately.museum +phoenix.museum +photography.museum +pilots.museum +pittsburgh.museum +planetarium.museum +plantation.museum +plants.museum +plaza.museum +portal.museum +portland.museum +portlligat.museum +posts-and-telecommunications.museum +preservation.museum +presidio.museum +press.museum +project.museum +public.museum +pubol.museum +quebec.museum +railroad.museum +railway.museum +research.museum +resistance.museum +riodejaneiro.museum +rochester.museum +rockart.museum +roma.museum +russia.museum +saintlouis.museum +salem.museum +salvadordali.museum +salzburg.museum +sandiego.museum +sanfrancisco.museum +santabarbara.museum +santacruz.museum +santafe.museum +saskatchewan.museum +satx.museum +savannahga.museum +schlesisches.museum +schoenbrunn.museum +schokoladen.museum +school.museum +schweiz.museum +science.museum +scienceandhistory.museum +scienceandindustry.museum +sciencecenter.museum +sciencecenters.museum +science-fiction.museum +sciencehistory.museum +sciences.museum +sciencesnaturelles.museum +scotland.museum +seaport.museum +settlement.museum +settlers.museum +shell.museum +sherbrooke.museum +sibenik.museum +silk.museum +ski.museum +skole.museum +society.museum +sologne.museum +soundandvision.museum +southcarolina.museum +southwest.museum +space.museum +spy.museum +square.museum +stadt.museum +stalbans.museum +starnberg.museum +state.museum +stateofdelaware.museum +station.museum +steam.museum +steiermark.museum +stjohn.museum +stockholm.museum +stpetersburg.museum +stuttgart.museum +suisse.museum +surgeonshall.museum +surrey.museum +svizzera.museum +sweden.museum +sydney.museum +tank.museum +tcm.museum +technology.museum +telekommunikation.museum +television.museum +texas.museum +textile.museum +theater.museum +time.museum +timekeeping.museum +topology.museum +torino.museum +touch.museum +town.museum +transport.museum +tree.museum +trolley.museum +trust.museum +trustee.museum +uhren.museum +ulm.museum +undersea.museum +university.museum +usa.museum +usantiques.museum +usarts.museum +uscountryestate.museum +usculture.museum +usdecorativearts.museum +usgarden.museum +ushistory.museum +ushuaia.museum +uslivinghistory.museum +utah.museum +uvic.museum +valley.museum +vantaa.museum +versailles.museum +viking.museum +village.museum +virginia.museum +virtual.museum +virtuel.museum +vlaanderen.museum +volkenkunde.museum +wales.museum +wallonie.museum +war.museum +washingtondc.museum +watchandclock.museum +watch-and-clock.museum +western.museum +westfalen.museum +whaling.museum +wildlife.museum +williamsburg.museum +windmill.museum +workshop.museum +york.museum +yorkshire.museum +yosemite.museum +youth.museum +zoological.museum +zoology.museum +ירושלים.museum +иком.museum + +// mv : http://en.wikipedia.org/wiki/.mv +// "mv" included because, contra Wikipedia, google.mv exists. +mv +aero.mv +biz.mv +com.mv +coop.mv +edu.mv +gov.mv +info.mv +int.mv +mil.mv +museum.mv +name.mv +net.mv +org.mv +pro.mv + +// mw : http://www.registrar.mw/ +mw +ac.mw +biz.mw +co.mw +com.mw +coop.mw +edu.mw +gov.mw +int.mw +museum.mw +net.mw +org.mw + +// mx : http://www.nic.mx/ +// Submitted by registry 2008-06-19 +mx +com.mx +org.mx +gob.mx +edu.mx +net.mx + +// my : http://www.mynic.net.my/ +my +com.my +net.my +org.my +gov.my +edu.my +mil.my +name.my + +// mz : http://www.gobin.info/domainname/mz-template.doc +*.mz + +// na : http://www.na-nic.com.na/ +// http://www.info.na/domain/ +na +info.na +pro.na +name.na +school.na +or.na +dr.na +us.na +mx.na +ca.na +in.na +cc.na +tv.na +ws.na +mobi.na +co.na +com.na +org.na + +// name : has 2nd-level tlds, but there's no list of them +name + +// nc : http://www.cctld.nc/ +nc +asso.nc + +// ne : http://en.wikipedia.org/wiki/.ne +ne + +// net : http://en.wikipedia.org/wiki/.net +net + +// nf : http://en.wikipedia.org/wiki/.nf +nf +com.nf +net.nf +per.nf +rec.nf +web.nf +arts.nf +firm.nf +info.nf +other.nf +store.nf + +// ng : http://psg.com/dns/ng/ +// Submitted by registry 2008-06-17 +ac.ng +com.ng +edu.ng +gov.ng +net.ng +org.ng + +// ni : http://www.nic.ni/dominios.htm +*.ni + +// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html +// Confirmed by registry (with technical +// reservations) 2008-06-08 +nl + +// BV.nl will be a registry for dutch BV's (besloten vennootschap) +bv.nl + +// no : http://www.norid.no/regelverk/index.en.html +// The Norwegian registry has declined to notify us of updates. The web pages +// referenced below are the official source of the data. There is also an +// announce mailing list: +// https://postlister.uninett.no/sympa/info/norid-diskusjon +no +// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html +fhs.no +vgs.no +fylkesbibl.no +folkebibl.no +museum.no +idrett.no +priv.no +// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html +mil.no +stat.no +dep.no +kommune.no +herad.no +// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html +// counties +aa.no +ah.no +bu.no +fm.no +hl.no +hm.no +jan-mayen.no +mr.no +nl.no +nt.no +of.no +ol.no +oslo.no +rl.no +sf.no +st.no +svalbard.no +tm.no +tr.no +va.no +vf.no +// primary and lower secondary schools per county +gs.aa.no +gs.ah.no +gs.bu.no +gs.fm.no +gs.hl.no +gs.hm.no +gs.jan-mayen.no +gs.mr.no +gs.nl.no +gs.nt.no +gs.of.no +gs.ol.no +gs.oslo.no +gs.rl.no +gs.sf.no +gs.st.no +gs.svalbard.no +gs.tm.no +gs.tr.no +gs.va.no +gs.vf.no +// cities +akrehamn.no +åkrehamn.no +algard.no +ålgård.no +arna.no +brumunddal.no +bryne.no +bronnoysund.no +brønnøysund.no +drobak.no +drøbak.no +egersund.no +fetsund.no +floro.no +florø.no +fredrikstad.no +hokksund.no +honefoss.no +hønefoss.no +jessheim.no +jorpeland.no +jørpeland.no +kirkenes.no +kopervik.no +krokstadelva.no +langevag.no +langevåg.no +leirvik.no +mjondalen.no +mjøndalen.no +mo-i-rana.no +mosjoen.no +mosjøen.no +nesoddtangen.no +orkanger.no +osoyro.no +osøyro.no +raholt.no +råholt.no +sandnessjoen.no +sandnessjøen.no +skedsmokorset.no +slattum.no +spjelkavik.no +stathelle.no +stavern.no +stjordalshalsen.no +stjørdalshalsen.no +tananger.no +tranby.no +vossevangen.no +// communities +afjord.no +åfjord.no +agdenes.no +al.no +ål.no +alesund.no +ålesund.no +alstahaug.no +alta.no +áltá.no +alaheadju.no +álaheadju.no +alvdal.no +amli.no +åmli.no +amot.no +åmot.no +andebu.no +andoy.no +andøy.no +andasuolo.no +ardal.no +årdal.no +aremark.no +arendal.no +ås.no +aseral.no +åseral.no +asker.no +askim.no +askvoll.no +askoy.no +askøy.no +asnes.no +åsnes.no +audnedaln.no +aukra.no +aure.no +aurland.no +aurskog-holand.no +aurskog-høland.no +austevoll.no +austrheim.no +averoy.no +averøy.no +balestrand.no +ballangen.no +balat.no +bálát.no +balsfjord.no +bahccavuotna.no +báhccavuotna.no +bamble.no +bardu.no +beardu.no +beiarn.no +bajddar.no +bájddar.no +baidar.no +báidár.no +berg.no +bergen.no +berlevag.no +berlevåg.no +bearalvahki.no +bearalváhki.no +bindal.no +birkenes.no +bjarkoy.no +bjarkøy.no +bjerkreim.no +bjugn.no +bodo.no +bodø.no +badaddja.no +bådåddjå.no +budejju.no +bokn.no +bremanger.no +bronnoy.no +brønnøy.no +bygland.no +bykle.no +barum.no +bærum.no +bo.telemark.no +bø.telemark.no +bo.nordland.no +bø.nordland.no +bievat.no +bievát.no +bomlo.no +bømlo.no +batsfjord.no +båtsfjord.no +bahcavuotna.no +báhcavuotna.no +dovre.no +drammen.no +drangedal.no +dyroy.no +dyrøy.no +donna.no +dønna.no +eid.no +eidfjord.no +eidsberg.no +eidskog.no +eidsvoll.no +eigersund.no +elverum.no +enebakk.no +engerdal.no +etne.no +etnedal.no +evenes.no +evenassi.no +evenášši.no +evje-og-hornnes.no +farsund.no +fauske.no +fuossko.no +fuoisku.no +fedje.no +fet.no +finnoy.no +finnøy.no +fitjar.no +fjaler.no +fjell.no +flakstad.no +flatanger.no +flekkefjord.no +flesberg.no +flora.no +fla.no +flå.no +folldal.no +forsand.no +fosnes.no +frei.no +frogn.no +froland.no +frosta.no +frana.no +fræna.no +froya.no +frøya.no +fusa.no +fyresdal.no +forde.no +førde.no +gamvik.no +gangaviika.no +gáŋgaviika.no +gaular.no +gausdal.no +gildeskal.no +gildeskål.no +giske.no +gjemnes.no +gjerdrum.no +gjerstad.no +gjesdal.no +gjovik.no +gjøvik.no +gloppen.no +gol.no +gran.no +grane.no +granvin.no +gratangen.no +grimstad.no +grong.no +kraanghke.no +kråanghke.no +grue.no +gulen.no +hadsel.no +halden.no +halsa.no +hamar.no +hamaroy.no +habmer.no +hábmer.no +hapmir.no +hápmir.no +hammerfest.no +hammarfeasta.no +hámmárfeasta.no +haram.no +hareid.no +harstad.no +hasvik.no +aknoluokta.no +ákŋoluokta.no +hattfjelldal.no +aarborte.no +haugesund.no +hemne.no +hemnes.no +hemsedal.no +heroy.more-og-romsdal.no +herøy.møre-og-romsdal.no +heroy.nordland.no +herøy.nordland.no +hitra.no +hjartdal.no +hjelmeland.no +hobol.no +hobøl.no +hof.no +hol.no +hole.no +holmestrand.no +holtalen.no +holtålen.no +hornindal.no +horten.no +hurdal.no +hurum.no +hvaler.no +hyllestad.no +hagebostad.no +hægebostad.no +hoyanger.no +høyanger.no +hoylandet.no +høylandet.no +ha.no +hå.no +ibestad.no +inderoy.no +inderøy.no +iveland.no +jevnaker.no +jondal.no +jolster.no +jølster.no +karasjok.no +karasjohka.no +kárášjohka.no +karlsoy.no +galsa.no +gálsá.no +karmoy.no +karmøy.no +kautokeino.no +guovdageaidnu.no +klepp.no +klabu.no +klæbu.no +kongsberg.no +kongsvinger.no +kragero.no +kragerø.no +kristiansand.no +kristiansund.no +krodsherad.no +krødsherad.no +kvalsund.no +rahkkeravju.no +ráhkkerávju.no +kvam.no +kvinesdal.no +kvinnherad.no +kviteseid.no +kvitsoy.no +kvitsøy.no +kvafjord.no +kvæfjord.no +giehtavuoatna.no +kvanangen.no +kvænangen.no +navuotna.no +návuotna.no +kafjord.no +kåfjord.no +gaivuotna.no +gáivuotna.no +larvik.no +lavangen.no +lavagis.no +loabat.no +loabát.no +lebesby.no +davvesiida.no +leikanger.no +leirfjord.no +leka.no +leksvik.no +lenvik.no +leangaviika.no +leaŋgaviika.no +lesja.no +levanger.no +lier.no +lierne.no +lillehammer.no +lillesand.no +lindesnes.no +lindas.no +lindås.no +lom.no +loppa.no +lahppi.no +láhppi.no +lund.no +lunner.no +luroy.no +lurøy.no +luster.no +lyngdal.no +lyngen.no +ivgu.no +lardal.no +lerdal.no +lærdal.no +lodingen.no +lødingen.no +lorenskog.no +lørenskog.no +loten.no +løten.no +malvik.no +masoy.no +måsøy.no +muosat.no +muosát.no +mandal.no +marker.no +marnardal.no +masfjorden.no +meland.no +meldal.no +melhus.no +meloy.no +meløy.no +meraker.no +meråker.no +moareke.no +moåreke.no +midsund.no +midtre-gauldal.no +modalen.no +modum.no +molde.no +moskenes.no +moss.no +mosvik.no +malselv.no +målselv.no +malatvuopmi.no +málatvuopmi.no +namdalseid.no +aejrie.no +namsos.no +namsskogan.no +naamesjevuemie.no +nååmesjevuemie.no +laakesvuemie.no +nannestad.no +narvik.no +narviika.no +naustdal.no +nedre-eiker.no +nes.akershus.no +nes.buskerud.no +nesna.no +nesodden.no +nesseby.no +unjarga.no +unjárga.no +nesset.no +nissedal.no +nittedal.no +nord-aurdal.no +nord-fron.no +nord-odal.no +norddal.no +nordkapp.no +davvenjarga.no +davvenjárga.no +nordre-land.no +nordreisa.no +raisa.no +ráisa.no +nore-og-uvdal.no +notodden.no +naroy.no +nærøy.no +notteroy.no +nøtterøy.no +odda.no +oksnes.no +øksnes.no +oppdal.no +oppegard.no +oppegård.no +orkdal.no +orland.no +ørland.no +orskog.no +ørskog.no +orsta.no +ørsta.no +os.hedmark.no +os.hordaland.no +osen.no +osteroy.no +osterøy.no +ostre-toten.no +østre-toten.no +overhalla.no +ovre-eiker.no +øvre-eiker.no +oyer.no +øyer.no +oygarden.no +øygarden.no +oystre-slidre.no +øystre-slidre.no +porsanger.no +porsangu.no +porsáŋgu.no +porsgrunn.no +radoy.no +radøy.no +rakkestad.no +rana.no +ruovat.no +randaberg.no +rauma.no +rendalen.no +rennebu.no +rennesoy.no +rennesøy.no +rindal.no +ringebu.no +ringerike.no +ringsaker.no +rissa.no +risor.no +risør.no +roan.no +rollag.no +rygge.no +ralingen.no +rælingen.no +rodoy.no +rødøy.no +romskog.no +rømskog.no +roros.no +røros.no +rost.no +røst.no +royken.no +røyken.no +royrvik.no +røyrvik.no +rade.no +råde.no +salangen.no +siellak.no +saltdal.no +salat.no +sálát.no +sálat.no +samnanger.no +sande.more-og-romsdal.no +sande.møre-og-romsdal.no +sande.vestfold.no +sandefjord.no +sandnes.no +sandoy.no +sandøy.no +sarpsborg.no +sauda.no +sauherad.no +sel.no +selbu.no +selje.no +seljord.no +sigdal.no +siljan.no +sirdal.no +skaun.no +skedsmo.no +ski.no +skien.no +skiptvet.no +skjervoy.no +skjervøy.no +skierva.no +skiervá.no +skjak.no +skjåk.no +skodje.no +skanland.no +skånland.no +skanit.no +skánit.no +smola.no +smøla.no +snillfjord.no +snasa.no +snåsa.no +snoasa.no +snaase.no +snåase.no +sogndal.no +sokndal.no +sola.no +solund.no +songdalen.no +sortland.no +spydeberg.no +stange.no +stavanger.no +steigen.no +steinkjer.no +stjordal.no +stjørdal.no +stokke.no +stor-elvdal.no +stord.no +stordal.no +storfjord.no +omasvuotna.no +strand.no +stranda.no +stryn.no +sula.no +suldal.no +sund.no +sunndal.no +surnadal.no +sveio.no +svelvik.no +sykkylven.no +sogne.no +søgne.no +somna.no +sømna.no +sondre-land.no +søndre-land.no +sor-aurdal.no +sør-aurdal.no +sor-fron.no +sør-fron.no +sor-odal.no +sør-odal.no +sor-varanger.no +sør-varanger.no +matta-varjjat.no +mátta-várjjat.no +sorfold.no +sørfold.no +sorreisa.no +sørreisa.no +sorum.no +sørum.no +tana.no +deatnu.no +time.no +tingvoll.no +tinn.no +tjeldsund.no +dielddanuorri.no +tjome.no +tjøme.no +tokke.no +tolga.no +torsken.no +tranoy.no +tranøy.no +tromso.no +tromsø.no +tromsa.no +romsa.no +trondheim.no +troandin.no +trysil.no +trana.no +træna.no +trogstad.no +trøgstad.no +tvedestrand.no +tydal.no +tynset.no +tysfjord.no +divtasvuodna.no +divttasvuotna.no +tysnes.no +tysvar.no +tysvær.no +tonsberg.no +tønsberg.no +ullensaker.no +ullensvang.no +ulvik.no +utsira.no +vadso.no +vadsø.no +cahcesuolo.no +čáhcesuolo.no +vaksdal.no +valle.no +vang.no +vanylven.no +vardo.no +vardø.no +varggat.no +várggát.no +vefsn.no +vaapste.no +vega.no +vegarshei.no +vegårshei.no +vennesla.no +verdal.no +verran.no +vestby.no +vestnes.no +vestre-slidre.no +vestre-toten.no +vestvagoy.no +vestvågøy.no +vevelstad.no +vik.no +vikna.no +vindafjord.no +volda.no +voss.no +varoy.no +værøy.no +vagan.no +vågan.no +voagat.no +vagsoy.no +vågsøy.no +vaga.no +vågå.no +valer.ostfold.no +våler.østfold.no +valer.hedmark.no +våler.hedmark.no + +// np : http://www.mos.com.np/register.html +*.np + +// nr : http://cenpac.net.nr/dns/index.html +// Confirmed by registry 2008-06-17 +nr +biz.nr +info.nr +gov.nr +edu.nr +org.nr +net.nr +com.nr + +// nu : http://en.wikipedia.org/wiki/.nu +nu + +// nz : http://en.wikipedia.org/wiki/.nz +*.nz + +// om : http://en.wikipedia.org/wiki/.om +*.om +!mediaphone.om +!nawrastelecom.om +!nawras.om +!omanmobile.om +!omanpost.om +!omantel.om +!rakpetroleum.om +!siemens.om +!songfest.om +!statecouncil.om + +// org : http://en.wikipedia.org/wiki/.org +org + +// pa : http://www.nic.pa/ +// Some additional second level "domains" resolve directly as hostnames, such as +// pannet.pa, so we add a rule for "pa". +pa +ac.pa +gob.pa +com.pa +org.pa +sld.pa +edu.pa +net.pa +ing.pa +abo.pa +med.pa +nom.pa + +// pe : https://www.nic.pe/InformeFinalComision.pdf +pe +edu.pe +gob.pe +nom.pe +mil.pe +org.pe +com.pe +net.pe + +// pf : http://www.gobin.info/domainname/formulaire-pf.pdf +pf +com.pf +org.pf +edu.pf + +// pg : http://en.wikipedia.org/wiki/.pg +*.pg + +// ph : http://www.domains.ph/FAQ2.asp +// Submitted by registry 2008-06-13 +ph +com.ph +net.ph +org.ph +gov.ph +edu.ph +ngo.ph +mil.ph +i.ph + +// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK +pk +com.pk +net.pk +edu.pk +org.pk +fam.pk +biz.pk +web.pk +gov.pk +gob.pk +gok.pk +gon.pk +gop.pk +gos.pk +info.pk + +// pl : http://www.dns.pl/english/ +pl +// NASK functional domains (nask.pl / dns.pl) : http://www.dns.pl/english/dns-funk.html +aid.pl +agro.pl +atm.pl +auto.pl +biz.pl +com.pl +edu.pl +gmina.pl +gsm.pl +info.pl +mail.pl +miasta.pl +media.pl +mil.pl +net.pl +nieruchomosci.pl +nom.pl +org.pl +pc.pl +powiat.pl +priv.pl +realestate.pl +rel.pl +sex.pl +shop.pl +sklep.pl +sos.pl +szkola.pl +targi.pl +tm.pl +tourism.pl +travel.pl +turystyka.pl +// ICM functional domains (icm.edu.pl) +6bone.pl +art.pl +mbone.pl +// Government domains (administred by ippt.gov.pl) +gov.pl +uw.gov.pl +um.gov.pl +ug.gov.pl +upow.gov.pl +starostwo.gov.pl +so.gov.pl +sr.gov.pl +po.gov.pl +pa.gov.pl +// other functional domains +ngo.pl +irc.pl +usenet.pl +// NASK geographical domains : http://www.dns.pl/english/dns-regiony.html +augustow.pl +babia-gora.pl +bedzin.pl +beskidy.pl +bialowieza.pl +bialystok.pl +bielawa.pl +bieszczady.pl +boleslawiec.pl +bydgoszcz.pl +bytom.pl +cieszyn.pl +czeladz.pl +czest.pl +dlugoleka.pl +elblag.pl +elk.pl +glogow.pl +gniezno.pl +gorlice.pl +grajewo.pl +ilawa.pl +jaworzno.pl +jelenia-gora.pl +jgora.pl +kalisz.pl +kazimierz-dolny.pl +karpacz.pl +kartuzy.pl +kaszuby.pl +katowice.pl +kepno.pl +ketrzyn.pl +klodzko.pl +kobierzyce.pl +kolobrzeg.pl +konin.pl +konskowola.pl +kutno.pl +lapy.pl +lebork.pl +legnica.pl +lezajsk.pl +limanowa.pl +lomza.pl +lowicz.pl +lubin.pl +lukow.pl +malbork.pl +malopolska.pl +mazowsze.pl +mazury.pl +mielec.pl +mielno.pl +mragowo.pl +naklo.pl +nowaruda.pl +nysa.pl +olawa.pl +olecko.pl +olkusz.pl +olsztyn.pl +opoczno.pl +opole.pl +ostroda.pl +ostroleka.pl +ostrowiec.pl +ostrowwlkp.pl +pila.pl +pisz.pl +podhale.pl +podlasie.pl +polkowice.pl +pomorze.pl +pomorskie.pl +prochowice.pl +pruszkow.pl +przeworsk.pl +pulawy.pl +radom.pl +rawa-maz.pl +rybnik.pl +rzeszow.pl +sanok.pl +sejny.pl +siedlce.pl +slask.pl +slupsk.pl +sosnowiec.pl +stalowa-wola.pl +skoczow.pl +starachowice.pl +stargard.pl +suwalki.pl +swidnica.pl +swiebodzin.pl +swinoujscie.pl +szczecin.pl +szczytno.pl +tarnobrzeg.pl +tgory.pl +turek.pl +tychy.pl +ustka.pl +walbrzych.pl +warmia.pl +warszawa.pl +waw.pl +wegrow.pl +wielun.pl +wlocl.pl +wloclawek.pl +wodzislaw.pl +wolomin.pl +wroclaw.pl +zachpomor.pl +zagan.pl +zarow.pl +zgora.pl +zgorzelec.pl +// TASK geographical domains (www.task.gda.pl/uslugi/dns) +gda.pl +gdansk.pl +gdynia.pl +med.pl +sopot.pl +// other geographical domains +gliwice.pl +krakow.pl +poznan.pl +wroc.pl +zakopane.pl + +// pm : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +pm + +// pn : http://www.government.pn/PnRegistry/policies.htm +pn +gov.pn +co.pn +org.pn +edu.pn +net.pn + +// pr : http://www.nic.pr/index.asp?f=1 +pr +com.pr +net.pr +org.pr +gov.pr +edu.pr +isla.pr +pro.pr +biz.pr +info.pr +name.pr +// these aren't mentioned on nic.pr, but on http://en.wikipedia.org/wiki/.pr +est.pr +prof.pr +ac.pr + +// pro : http://www.nic.pro/support_faq.htm +pro +aca.pro +bar.pro +cpa.pro +jur.pro +law.pro +med.pro +eng.pro + +// ps : http://en.wikipedia.org/wiki/.ps +// http://www.nic.ps/registration/policy.html#reg +ps +edu.ps +gov.ps +sec.ps +plo.ps +com.ps +org.ps +net.ps + +// pt : http://online.dns.pt/dns/start_dns +pt +net.pt +gov.pt +org.pt +edu.pt +int.pt +publ.pt +com.pt +nome.pt + +// pw : http://en.wikipedia.org/wiki/.pw +pw +co.pw +ne.pw +or.pw +ed.pw +go.pw +belau.pw + +// py : http://www.nic.py/faq_a.html#faq_b +*.py + +// qa : http://domains.qa/en/ +qa +com.qa +edu.qa +gov.qa +mil.qa +name.qa +net.qa +org.qa +sch.qa + +// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs +re +com.re +asso.re +nom.re + +// ro : http://www.rotld.ro/ +ro +com.ro +org.ro +tm.ro +nt.ro +nom.ro +info.ro +rec.ro +arts.ro +firm.ro +store.ro +www.ro + +// rs : http://en.wikipedia.org/wiki/.rs +rs +co.rs +org.rs +edu.rs +ac.rs +gov.rs +in.rs + +// ru : http://www.cctld.ru/ru/docs/aktiv_8.php +// Industry domains +ru +ac.ru +com.ru +edu.ru +int.ru +net.ru +org.ru +pp.ru +// Geographical domains +adygeya.ru +altai.ru +amur.ru +arkhangelsk.ru +astrakhan.ru +bashkiria.ru +belgorod.ru +bir.ru +bryansk.ru +buryatia.ru +cbg.ru +chel.ru +chelyabinsk.ru +chita.ru +chukotka.ru +chuvashia.ru +dagestan.ru +dudinka.ru +e-burg.ru +grozny.ru +irkutsk.ru +ivanovo.ru +izhevsk.ru +jar.ru +joshkar-ola.ru +kalmykia.ru +kaluga.ru +kamchatka.ru +karelia.ru +kazan.ru +kchr.ru +kemerovo.ru +khabarovsk.ru +khakassia.ru +khv.ru +kirov.ru +koenig.ru +komi.ru +kostroma.ru +krasnoyarsk.ru +kuban.ru +kurgan.ru +kursk.ru +lipetsk.ru +magadan.ru +mari.ru +mari-el.ru +marine.ru +mordovia.ru +mosreg.ru +msk.ru +murmansk.ru +nalchik.ru +nnov.ru +nov.ru +novosibirsk.ru +nsk.ru +omsk.ru +orenburg.ru +oryol.ru +palana.ru +penza.ru +perm.ru +pskov.ru +ptz.ru +rnd.ru +ryazan.ru +sakhalin.ru +samara.ru +saratov.ru +simbirsk.ru +smolensk.ru +spb.ru +stavropol.ru +stv.ru +surgut.ru +tambov.ru +tatarstan.ru +tom.ru +tomsk.ru +tsaritsyn.ru +tsk.ru +tula.ru +tuva.ru +tver.ru +tyumen.ru +udm.ru +udmurtia.ru +ulan-ude.ru +vladikavkaz.ru +vladimir.ru +vladivostok.ru +volgograd.ru +vologda.ru +voronezh.ru +vrn.ru +vyatka.ru +yakutia.ru +yamal.ru +yaroslavl.ru +yekaterinburg.ru +yuzhno-sakhalinsk.ru +// More geographical domains +amursk.ru +baikal.ru +cmw.ru +fareast.ru +jamal.ru +kms.ru +k-uralsk.ru +kustanai.ru +kuzbass.ru +magnitka.ru +mytis.ru +nakhodka.ru +nkz.ru +norilsk.ru +oskol.ru +pyatigorsk.ru +rubtsovsk.ru +snz.ru +syzran.ru +vdonsk.ru +zgrad.ru +// State domains +gov.ru +mil.ru +// Technical domains +test.ru + +// rw : http://www.nic.rw/cgi-bin/policy.pl +rw +gov.rw +net.rw +edu.rw +ac.rw +com.rw +co.rw +int.rw +mil.rw +gouv.rw + +// sa : http://www.nic.net.sa/ +sa +com.sa +net.sa +org.sa +gov.sa +med.sa +pub.sa +edu.sa +sch.sa + +// sb : http://www.sbnic.net.sb/ +// Submitted by registry 2008-06-08 +sb +com.sb +edu.sb +gov.sb +net.sb +org.sb + +// sc : http://www.nic.sc/ +sc +com.sc +gov.sc +net.sc +org.sc +edu.sc + +// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm +// Submitted by registry 2008-06-17 +sd +com.sd +net.sd +org.sd +edu.sd +med.sd +gov.sd +info.sd + +// se : http://en.wikipedia.org/wiki/.se +// Submitted by registry 2008-06-24 +se +a.se +ac.se +b.se +bd.se +brand.se +c.se +d.se +e.se +f.se +fh.se +fhsk.se +fhv.se +g.se +h.se +i.se +k.se +komforb.se +kommunalforbund.se +komvux.se +l.se +lanbib.se +m.se +n.se +naturbruksgymn.se +o.se +org.se +p.se +parti.se +pp.se +press.se +r.se +s.se +sshn.se +t.se +tm.se +u.se +w.se +x.se +y.se +z.se + +// sg : http://www.nic.net.sg/sub_policies_agreement/2ld.html +sg +com.sg +net.sg +org.sg +gov.sg +edu.sg +per.sg + +// sh : http://www.nic.sh/rules.html +// list of 2nd level domains ? +sh + +// si : http://en.wikipedia.org/wiki/.si +si + +// sj : No registrations at this time. +// Submitted by registry 2008-06-16 + +// sk : http://en.wikipedia.org/wiki/.sk +// list of 2nd level domains ? +sk + +// sl : http://www.nic.sl +// Submitted by registry 2008-06-12 +sl +com.sl +net.sl +edu.sl +gov.sl +org.sl + +// sm : http://en.wikipedia.org/wiki/.sm +sm + +// sn : http://en.wikipedia.org/wiki/.sn +sn +art.sn +com.sn +edu.sn +gouv.sn +org.sn +perso.sn +univ.sn + +// so : http://www.soregistry.com/ +so +com.so +net.so +org.so + +// sr : http://en.wikipedia.org/wiki/.sr +sr + +// st : http://www.nic.st/html/policyrules/ +st +co.st +com.st +consulado.st +edu.st +embaixada.st +gov.st +mil.st +net.st +org.st +principe.st +saotome.st +store.st + +// su : http://en.wikipedia.org/wiki/.su +su + +// sv : http://www.svnet.org.sv/svpolicy.html +*.sv + +// sy : http://en.wikipedia.org/wiki/.sy +// see also: http://www.gobin.info/domainname/sy.doc +sy +edu.sy +gov.sy +net.sy +mil.sy +com.sy +org.sy + +// sz : http://en.wikipedia.org/wiki/.sz +// http://www.sispa.org.sz/ +sz +co.sz +ac.sz +org.sz + +// tc : http://en.wikipedia.org/wiki/.tc +tc + +// td : http://en.wikipedia.org/wiki/.td +td + +// tel: http://en.wikipedia.org/wiki/.tel +// http://www.telnic.org/ +tel + +// tf : http://en.wikipedia.org/wiki/.tf +tf + +// tg : http://en.wikipedia.org/wiki/.tg +// http://www.nic.tg/nictg/index.php implies no reserved 2nd-level domains, +// although this contradicts wikipedia. +tg + +// th : http://en.wikipedia.org/wiki/.th +// Submitted by registry 2008-06-17 +th +ac.th +co.th +go.th +in.th +mi.th +net.th +or.th + +// tj : http://www.nic.tj/policy.htm +tj +ac.tj +biz.tj +co.tj +com.tj +edu.tj +go.tj +gov.tj +int.tj +mil.tj +name.tj +net.tj +nic.tj +org.tj +test.tj +web.tj + +// tk : http://en.wikipedia.org/wiki/.tk +tk + +// tl : http://en.wikipedia.org/wiki/.tl +tl +gov.tl + +// tm : http://www.nic.tm/rules.html +// list of 2nd level tlds ? +tm + +// tn : http://en.wikipedia.org/wiki/.tn +// http://whois.ati.tn/ +tn +com.tn +ens.tn +fin.tn +gov.tn +ind.tn +intl.tn +nat.tn +net.tn +org.tn +info.tn +perso.tn +tourism.tn +edunet.tn +rnrt.tn +rns.tn +rnu.tn +mincom.tn +agrinet.tn +defense.tn +turen.tn + +// to : http://en.wikipedia.org/wiki/.to +// Submitted by registry 2008-06-17 +to +com.to +gov.to +net.to +org.to +edu.to +mil.to + +// tr : http://en.wikipedia.org/wiki/.tr +*.tr +!nic.tr +// Used by government in the TRNC +// http://en.wikipedia.org/wiki/.nc.tr +gov.nc.tr + +// travel : http://en.wikipedia.org/wiki/.travel +travel + +// tt : http://www.nic.tt/ +tt +co.tt +com.tt +org.tt +net.tt +biz.tt +info.tt +pro.tt +int.tt +coop.tt +jobs.tt +mobi.tt +travel.tt +museum.tt +aero.tt +name.tt +gov.tt +edu.tt + +// tv : http://en.wikipedia.org/wiki/.tv +// Not listing any 2LDs as reserved since none seem to exist in practice, +// Wikipedia notwithstanding. +tv + +// tw : http://en.wikipedia.org/wiki/.tw +tw +edu.tw +gov.tw +mil.tw +com.tw +net.tw +org.tw +idv.tw +game.tw +ebiz.tw +club.tw +網路.tw +組織.tw +商業.tw + +// tz : http://en.wikipedia.org/wiki/.tz +// Submitted by registry 2008-06-17 +// Updated from http://www.tznic.or.tz/index.php/domains.html 2010-10-25 +ac.tz +co.tz +go.tz +mil.tz +ne.tz +or.tz +sc.tz + +// ua : http://www.nic.net.ua/ +ua +com.ua +edu.ua +gov.ua +in.ua +net.ua +org.ua +// ua geo-names +cherkassy.ua +chernigov.ua +chernovtsy.ua +ck.ua +cn.ua +crimea.ua +cv.ua +dn.ua +dnepropetrovsk.ua +donetsk.ua +dp.ua +if.ua +ivano-frankivsk.ua +kh.ua +kharkov.ua +kherson.ua +khmelnitskiy.ua +kiev.ua +kirovograd.ua +km.ua +kr.ua +ks.ua +kv.ua +lg.ua +lugansk.ua +lutsk.ua +lviv.ua +mk.ua +nikolaev.ua +od.ua +odessa.ua +pl.ua +poltava.ua +rovno.ua +rv.ua +sebastopol.ua +sumy.ua +te.ua +ternopil.ua +uzhgorod.ua +vinnica.ua +vn.ua +zaporizhzhe.ua +zp.ua +zhitomir.ua +zt.ua + +// Private registries in .ua +co.ua +pp.ua + +// ug : http://www.registry.co.ug/ +ug +co.ug +ac.ug +sc.ug +go.ug +ne.ug +or.ug + +// uk : http://en.wikipedia.org/wiki/.uk +*.uk +*.sch.uk +!bl.uk +!british-library.uk +!icnet.uk +!jet.uk +!mod.uk +!nel.uk +!nhs.uk +!nic.uk +!nls.uk +!national-library-scotland.uk +!parliament.uk +!police.uk + +// us : http://en.wikipedia.org/wiki/.us +us +dni.us +fed.us +isa.us +kids.us +nsn.us +// us geographic names +ak.us +al.us +ar.us +as.us +az.us +ca.us +co.us +ct.us +dc.us +de.us +fl.us +ga.us +gu.us +hi.us +ia.us +id.us +il.us +in.us +ks.us +ky.us +la.us +ma.us +md.us +me.us +mi.us +mn.us +mo.us +ms.us +mt.us +nc.us +nd.us +ne.us +nh.us +nj.us +nm.us +nv.us +ny.us +oh.us +ok.us +or.us +pa.us +pr.us +ri.us +sc.us +sd.us +tn.us +tx.us +ut.us +vi.us +vt.us +va.us +wa.us +wi.us +wv.us +wy.us +// The registrar notes several more specific domains available in each state, +// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat +// haphazard; in some states these domains resolve as addresses, while in others +// only subdomains are available, or even nothing at all. We include the +// most common ones where it's clear that different sites are different +// entities. +k12.ak.us +k12.al.us +k12.ar.us +k12.as.us +k12.az.us +k12.ca.us +k12.co.us +k12.ct.us +k12.dc.us +k12.de.us +k12.fl.us +k12.ga.us +k12.gu.us +// k12.hi.us Hawaii has a state-wide DOE login: bug 614565 +k12.ia.us +k12.id.us +k12.il.us +k12.in.us +k12.ks.us +k12.ky.us +k12.la.us +k12.ma.us +k12.md.us +k12.me.us +k12.mi.us +k12.mn.us +k12.mo.us +k12.ms.us +k12.mt.us +k12.nc.us +k12.nd.us +k12.ne.us +k12.nh.us +k12.nj.us +k12.nm.us +k12.nv.us +k12.ny.us +k12.oh.us +k12.ok.us +k12.or.us +k12.pa.us +k12.pr.us +k12.ri.us +k12.sc.us +k12.sd.us +k12.tn.us +k12.tx.us +k12.ut.us +k12.vi.us +k12.vt.us +k12.va.us +k12.wa.us +k12.wi.us +k12.wv.us +k12.wy.us + +cc.ak.us +cc.al.us +cc.ar.us +cc.as.us +cc.az.us +cc.ca.us +cc.co.us +cc.ct.us +cc.dc.us +cc.de.us +cc.fl.us +cc.ga.us +cc.gu.us +cc.hi.us +cc.ia.us +cc.id.us +cc.il.us +cc.in.us +cc.ks.us +cc.ky.us +cc.la.us +cc.ma.us +cc.md.us +cc.me.us +cc.mi.us +cc.mn.us +cc.mo.us +cc.ms.us +cc.mt.us +cc.nc.us +cc.nd.us +cc.ne.us +cc.nh.us +cc.nj.us +cc.nm.us +cc.nv.us +cc.ny.us +cc.oh.us +cc.ok.us +cc.or.us +cc.pa.us +cc.pr.us +cc.ri.us +cc.sc.us +cc.sd.us +cc.tn.us +cc.tx.us +cc.ut.us +cc.vi.us +cc.vt.us +cc.va.us +cc.wa.us +cc.wi.us +cc.wv.us +cc.wy.us + +lib.ak.us +lib.al.us +lib.ar.us +lib.as.us +lib.az.us +lib.ca.us +lib.co.us +lib.ct.us +lib.dc.us +lib.de.us +lib.fl.us +lib.ga.us +lib.gu.us +lib.hi.us +lib.ia.us +lib.id.us +lib.il.us +lib.in.us +lib.ks.us +lib.ky.us +lib.la.us +lib.ma.us +lib.md.us +lib.me.us +lib.mi.us +lib.mn.us +lib.mo.us +lib.ms.us +lib.mt.us +lib.nc.us +lib.nd.us +lib.ne.us +lib.nh.us +lib.nj.us +lib.nm.us +lib.nv.us +lib.ny.us +lib.oh.us +lib.ok.us +lib.or.us +lib.pa.us +lib.pr.us +lib.ri.us +lib.sc.us +lib.sd.us +lib.tn.us +lib.tx.us +lib.ut.us +lib.vi.us +lib.vt.us +lib.va.us +lib.wa.us +lib.wi.us +lib.wv.us +lib.wy.us + +// k12.ma.us contains school districts in Massachusetts. The 4LDs are +// managed indepedently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated dorectly to the +// 5LD operators. +pvt.k12.ma.us +chtr.k12.ma.us +paroch.k12.ma.us + +// uy : http://www.antel.com.uy/ +*.uy + +// uz : http://www.reg.uz/registerr.html +// are there other 2nd level tlds ? +uz +com.uz +co.uz + +// va : http://en.wikipedia.org/wiki/.va +va + +// vc : http://en.wikipedia.org/wiki/.vc +// Submitted by registry 2008-06-13 +vc +com.vc +net.vc +org.vc +gov.vc +mil.vc +edu.vc + +// ve : http://registro.nic.ve/nicve/registro/index.html +*.ve + +// vg : http://en.wikipedia.org/wiki/.vg +vg + +// vi : http://www.nic.vi/newdomainform.htm +// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other +// TLDs are "reserved", such as edu.vi and gov.vi, but doesn't actually say they +// are available for registration (which they do not seem to be). +vi +co.vi +com.vi +k12.vi +net.vi +org.vi + +// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp +vn +com.vn +net.vn +org.vn +edu.vn +gov.vn +int.vn +ac.vn +biz.vn +info.vn +name.vn +pro.vn +health.vn + +// vu : http://en.wikipedia.org/wiki/.vu +// list of 2nd level tlds ? +vu + +// wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +wf + +// ws : http://en.wikipedia.org/wiki/.ws +// http://samoanic.ws/index.dhtml +ws +com.ws +net.ws +org.ws +gov.ws +edu.ws + +// yt : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +yt + +// IDN ccTLDs +// Please sort by ISO 3166 ccTLD, then punicode string +// when submitting patches and follow this format: +// ("" ) : +// [optional sponsoring org] +// + +// xn--mgbaam7a8h ("Emerat" Arabic) : AE +//http://nic.ae/english/arabicdomain/rules.jsp +امارات + +// xn--54b7fta0cc ("Bangla" Bangla) : BD +বাংলা + +// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhonggou>) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中国 + +// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhonggou>) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中國 + +// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ +الجزائر + +// xn--wgbh1c ("Egypt" Arabic .masr) : EG +// http://www.dotmasr.eg/ +مصر + +// xn--node ("ge" Georgian (Mkhedruli)) : GE +გე + +// xn--j6w193g ("Hong Kong" Chinese-Han) : HK +// https://www2.hkirc.hk/register/rules.jsp +香港 + +// xn--h2brj9c ("Bharat" Devanagari) : IN +// India +भारत + +// xn--mgbbh1a71e ("Bharat" Arabic) : IN +// India +بھارت + +// xn--fpcrj9c3d ("Bharat" Telugu) : IN +// India +భారత్ + +// xn--gecrj9c ("Bharat" Gujarati) : IN +// India +ભારત + +// xn--s9brj9c ("Bharat" Gurmukhi) : IN +// India +ਭਾਰਤ + +// xn--45brj9c ("Bharat" Bengali) : IN +// India +ভারত + +// xn--xkc2dl3a5ee0h ("India" Tamil) : IN +// India +இந்தியா + +// xn--mgba3a4f16a ("Iran" Persian) : IR +ایران + +// xn--mgba3a4fra ("Iran" Arabic) : IR +ايران + +//xn--mgbayh7gpa ("al-Ordon" Arabic) JO +//National Information Technology Center (NITC) +//Royal Scientific Society, Al-Jubeiha +الاردن + +// xn--3e0b707e ("Republic of Korea" Hangul) : KR +한국 + +// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK +// http://nic.lk +ලංකා + +// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK +// http://nic.lk +இலங்கை + +// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA +المغرب + +// xn--mgb9awbf ("Oman" Arabic) : OM +عمان + +// xn--ygbi2ammx ("Falasteen" Arabic) : PS +// The Palestinian National Internet Naming Authority (PNINA) +// http://www.pnina.ps +فلسطين + +// xn--90a3ac ("srb" Cyrillic) : RS +срб + +// xn--p1ai ("rf" Russian-Cyrillic) : RU +// http://www.cctld.ru/en/docs/rulesrf.php +рф + +// xn--wgbl6a ("Qatar" Arabic) : QA +// http://www.ict.gov.qa/ +قطر + +// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA +// http://www.nic.net.sa/ +السعودية + +// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA +السعودیة + +// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA +السعودیۃ + +// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA +السعوديه + +// xn--ogbpf8fl ("Syria" Arabic) : SY +سورية + +// xn--mgbtf8fl ("Syria" Arabic) variant : SY +سوريا + +// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG +新加坡 + +// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG +சிங்கப்பூர் + +// xn--o3cw4h ("Thai" Thai) : TH +// http://www.thnic.co.th +ไทย + +// xn--pgbs0dh ("Tunis") : TN +// http://nic.tn +تونس + +// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台灣 + +// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台湾 + +// xn--nnx388a ("Taiwan") variant : TW +臺灣 + +// xn--j1amh ("ukr" Cyrillic) : UA +укр + +// xn--mgb2ddes ("AlYemen" Arabic) : YE +اليمن + +// xxx : http://icmregistry.com +xxx + +// ye : http://www.y.net.ye/services/domain_name.htm +*.ye + +// za : http://www.zadna.org.za/slds.html +*.za + +// zm : http://en.wikipedia.org/wiki/.zm +*.zm + +// zw : http://en.wikipedia.org/wiki/.zw +*.zw + +// ===END ICANN DOMAINS=== +// ===BEGIN PRIVATE DOMAINS=== + +// info.at : http://www.info.at/ +biz.at +info.at + +// priv.at : http://www.nic.priv.at/ +// Submitted by registry 2008-06-09 +priv.at + +// co.ca : http://registry.co.ca +co.ca + +// CentralNic : http://www.centralnic.com/names/domains +// Confirmed by registry 2008-06-09 +ar.com +br.com +cn.com +de.com +eu.com +gb.com +gr.com +hu.com +jpn.com +kr.com +no.com +qc.com +ru.com +sa.com +se.com +uk.com +us.com +uy.com +za.com +gb.net +jp.net +se.net +uk.net +ae.org +us.org +com.de + +// Opera Software, A.S.A. +// Requested by Yngve Pettersen 2009-11-26 +operaunite.com + +// Google, Inc. +// Requested by Eduardo Vela 2010-09-06 +appspot.com + +// iki.fi : Submitted by Hannu Aronsson 2009-11-05 +iki.fi + +// c.la : http://www.c.la/ +c.la + +// ZaNiC : http://www.za.net/ +// Confirmed by registry 2009-10-03 +za.net +za.org + +// CoDNS B.V. +// Added 2010-05-23. +co.nl +co.no + +// Mainseek Sp. z o.o. : http://www.co.pl/ +co.pl + +// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ +dyndns-at-home.com +dyndns-at-work.com +dyndns-blog.com +dyndns-free.com +dyndns-home.com +dyndns-ip.com +dyndns-mail.com +dyndns-office.com +dyndns-pics.com +dyndns-remote.com +dyndns-server.com +dyndns-web.com +dyndns-wiki.com +dyndns-work.com +dyndns.biz +dyndns.info +dyndns.org +dyndns.tv +at-band-camp.net +ath.cx +barrel-of-knowledge.info +barrell-of-knowledge.info +better-than.tv +blogdns.com +blogdns.net +blogdns.org +blogsite.org +boldlygoingnowhere.org +broke-it.net +buyshouses.net +cechire.com +dnsalias.com +dnsalias.net +dnsalias.org +dnsdojo.com +dnsdojo.net +dnsdojo.org +does-it.net +doesntexist.com +doesntexist.org +dontexist.com +dontexist.net +dontexist.org +doomdns.com +doomdns.org +dvrdns.org +dyn-o-saur.com +dynalias.com +dynalias.net +dynalias.org +dynathome.net +dyndns.ws +endofinternet.net +endofinternet.org +endoftheinternet.org +est-a-la-maison.com +est-a-la-masion.com +est-le-patron.com +est-mon-blogueur.com +for-better.biz +for-more.biz +for-our.info +for-some.biz +for-the.biz +forgot.her.name +forgot.his.name +from-ak.com +from-al.com +from-ar.com +from-az.net +from-ca.com +from-co.net +from-ct.com +from-dc.com +from-de.com +from-fl.com +from-ga.com +from-hi.com +from-ia.com +from-id.com +from-il.com +from-in.com +from-ks.com +from-ky.com +from-la.net +from-ma.com +from-md.com +from-me.org +from-mi.com +from-mn.com +from-mo.com +from-ms.com +from-mt.com +from-nc.com +from-nd.com +from-ne.com +from-nh.com +from-nj.com +from-nm.com +from-nv.com +from-ny.net +from-oh.com +from-ok.com +from-or.com +from-pa.com +from-pr.com +from-ri.com +from-sc.com +from-sd.com +from-tn.com +from-tx.com +from-ut.com +from-va.com +from-vt.com +from-wa.com +from-wi.com +from-wv.com +from-wy.com +ftpaccess.cc +fuettertdasnetz.de +game-host.org +game-server.cc +getmyip.com +gets-it.net +go.dyndns.org +gotdns.com +gotdns.org +groks-the.info +groks-this.info +ham-radio-op.net +here-for-more.info +hobby-site.com +hobby-site.org +home.dyndns.org +homedns.org +homeftp.net +homeftp.org +homeip.net +homelinux.com +homelinux.net +homelinux.org +homeunix.com +homeunix.net +homeunix.org +iamallama.com +in-the-band.net +is-a-anarchist.com +is-a-blogger.com +is-a-bookkeeper.com +is-a-bruinsfan.org +is-a-bulls-fan.com +is-a-candidate.org +is-a-caterer.com +is-a-celticsfan.org +is-a-chef.com +is-a-chef.net +is-a-chef.org +is-a-conservative.com +is-a-cpa.com +is-a-cubicle-slave.com +is-a-democrat.com +is-a-designer.com +is-a-doctor.com +is-a-financialadvisor.com +is-a-geek.com +is-a-geek.net +is-a-geek.org +is-a-green.com +is-a-guru.com +is-a-hard-worker.com +is-a-hunter.com +is-a-knight.org +is-a-landscaper.com +is-a-lawyer.com +is-a-liberal.com +is-a-libertarian.com +is-a-linux-user.org +is-a-llama.com +is-a-musician.com +is-a-nascarfan.com +is-a-nurse.com +is-a-painter.com +is-a-patsfan.org +is-a-personaltrainer.com +is-a-photographer.com +is-a-player.com +is-a-republican.com +is-a-rockstar.com +is-a-socialist.com +is-a-soxfan.org +is-a-student.com +is-a-teacher.com +is-a-techie.com +is-a-therapist.com +is-an-accountant.com +is-an-actor.com +is-an-actress.com +is-an-anarchist.com +is-an-artist.com +is-an-engineer.com +is-an-entertainer.com +is-by.us +is-certified.com +is-found.org +is-gone.com +is-into-anime.com +is-into-cars.com +is-into-cartoons.com +is-into-games.com +is-leet.com +is-lost.org +is-not-certified.com +is-saved.org +is-slick.com +is-uberleet.com +is-very-bad.org +is-very-evil.org +is-very-good.org +is-very-nice.org +is-very-sweet.org +is-with-theband.com +isa-geek.com +isa-geek.net +isa-geek.org +isa-hockeynut.com +issmarterthanyou.com +isteingeek.de +istmein.de +kicks-ass.net +kicks-ass.org +knowsitall.info +land-4-sale.us +lebtimnetz.de +leitungsen.de +likes-pie.com +likescandy.com +merseine.nu +mine.nu +misconfused.org +mypets.ws +myphotos.cc +neat-url.com +office-on-the.net +on-the-web.tv +podzone.net +podzone.org +readmyblog.org +saves-the-whales.com +scrapper-site.net +scrapping.cc +selfip.biz +selfip.com +selfip.info +selfip.net +selfip.org +sells-for-less.com +sells-for-u.com +sells-it.net +sellsyourhome.org +servebbs.com +servebbs.net +servebbs.org +serveftp.net +serveftp.org +servegame.org +shacknet.nu +simple-url.com +space-to-rent.com +stuff-4-sale.org +stuff-4-sale.us +teaches-yoga.com +thruhere.net +traeumtgerade.de +webhop.biz +webhop.info +webhop.net +webhop.org +worse-than.tv +writesthisblog.com + +// ===END PRIVATE DOMAINS=== diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js new file mode 100644 index 00000000..3cce815e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tough-cookie/test.js @@ -0,0 +1,1340 @@ +/* + * Copyright GoInstant, Inc. and other contributors. 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. + */ + +var vows = require('vows'); +var assert = require('assert'); +var async = require('async'); + +// NOTE use require("tough-cookie") in your own code: +var tough = require('./lib/cookie'); +var Cookie = tough.Cookie; +var CookieJar = tough.CookieJar; + + +function dateVows(table) { + var theVows = { }; + var keys = Object.keys(table).forEach(function(date) { + var expect = table[date]; + theVows[date] = function() { + var got = tough.parseDate(date) ? 'valid' : 'invalid'; + assert.equal(got, expect ? 'valid' : 'invalid'); + }; + }); + return { "date parsing": theVows }; +} + +function matchVows(func,table) { + var theVows = {}; + table.forEach(function(item) { + var str = item[0]; + var dom = item[1]; + var expect = item[2]; + var label = str+(expect?" matches ":" doesn't match ")+dom; + theVows[label] = function() { + assert.equal(func(str,dom),expect); + }; + }); + return theVows; +} + +function defaultPathVows(table) { + var theVows = {}; + table.forEach(function(item) { + var str = item[0]; + var expect = item[1]; + var label = str+" gives "+expect; + theVows[label] = function() { + assert.equal(tough.defaultPath(str),expect); + }; + }); + return theVows; +} + +var atNow = Date.now(); +function at(offset) { return {now: new Date(atNow+offset)} } + +vows.describe('Cookie Jar') +.addBatch({ + "all defined": function() { + assert.ok(Cookie); + assert.ok(CookieJar); + }, +}) +.addBatch( + dateVows({ + "Wed, 09 Jun 2021 10:18:14 GMT": true, + "Wed, 09 Jun 2021 22:18:14 GMT": true, + "Tue, 18 Oct 2011 07:42:42.123 GMT": true, + "18 Oct 2011 07:42:42 GMT": true, + "8 Oct 2011 7:42:42 GMT": true, + "8 Oct 2011 7:2:42 GMT": false, + "Oct 18 2011 07:42:42 GMT": true, + "Tue Oct 18 2011 07:05:03 GMT+0000 (GMT)": true, + "09 Jun 2021 10:18:14 GMT": true, + "99 Jix 3038 48:86:72 ZMT": false, + '01 Jan 1970 00:00:00 GMT': true, + '01 Jan 1600 00:00:00 GMT': false, // before 1601 + '01 Jan 1601 00:00:00 GMT': true, + '10 Feb 81 13:00:00 GMT': true, // implicit year + 'Thu, 01 Jan 1970 00:00:010 GMT': true, // strange time, non-strict OK + 'Thu, 17-Apr-2014 02:12:29 GMT': true, // dashes + 'Thu, 17-Apr-2014 02:12:29 UTC': true, // dashes and UTC + }) +) +.addBatch({ + "strict date parse of Thu, 01 Jan 1970 00:00:010 GMT": { + topic: function() { + return tough.parseDate('Thu, 01 Jan 1970 00:00:010 GMT', true) ? true : false; + }, + "invalid": function(date) { + assert.equal(date,false); + }, + } +}) +.addBatch({ + "formatting": { + "a simple cookie": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b'); + }, + }, + "a cookie with spaces in the value": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'beta gamma'; + return c; + }, + "doesn't validate": function(c) { + assert.ok(!c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a="beta gamma"'); + }, + }, + "with an empty value and HttpOnly": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.httpOnly = true; + return c; + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=; HttpOnly'); + } + }, + "with an expiry": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT'); + }, + "to short string": function(c) { + assert.equal(c.cookieString(), 'a=b'); + }, + }, + "with a max-age": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + c.maxAge = 12345; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); // mabe this one *shouldn't*? + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Max-Age=12345'); + }, + }, + "with a bunch of things": function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.setExpires("Oct 18 2011 07:05:03 GMT"); + c.maxAge = 12345; + c.domain = 'example.com'; + c.path = '/foo'; + c.secure = true; + c.httpOnly = true; + c.extensions = ['MyExtension']; + assert.equal(c.toString(), 'a=b; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Max-Age=12345; Domain=example.com; Path=/foo; Secure; HttpOnly; MyExtension'); + }, + "a host-only cookie": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.hostOnly = true; + c.domain = 'shouldnt-stringify.example.com'; + c.path = '/should-stringify'; + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + assert.equal(c.toString(), 'a=b; Path=/should-stringify'); + }, + }, + "minutes are '10'": { + topic: function() { + var c = new Cookie(); + c.key = 'a'; + c.value = 'b'; + c.expires = new Date(1284113410000); + return c; + }, + "validates": function(c) { + assert.ok(c.validate()); + }, + "to string": function(c) { + var str = c.toString(); + assert.notEqual(str, 'a=b; Expires=Fri, 010 Sep 2010 010:010:010 GMT'); + assert.equal(str, 'a=b; Expires=Fri, 10 Sep 2010 10:10:10 GMT'); + }, + } + } +}) +.addBatch({ + "TTL with max-age": function() { + var c = new Cookie(); + c.maxAge = 123; + assert.equal(c.TTL(), 123000); + assert.equal(c.expiryTime(new Date(9000000)), 9123000); + }, + "TTL with zero max-age": function() { + var c = new Cookie(); + c.key = 'a'; c.value = 'b'; + c.maxAge = 0; // should be treated as "earliest representable" + assert.equal(c.TTL(), 0); + assert.equal(c.expiryTime(new Date(9000000)), -Infinity); + assert.ok(!c.validate()); // not valid, really: non-zero-digit *DIGIT + }, + "TTL with negative max-age": function() { + var c = new Cookie(); + c.key = 'a'; c.value = 'b'; + c.maxAge = -1; // should be treated as "earliest representable" + assert.equal(c.TTL(), 0); + assert.equal(c.expiryTime(new Date(9000000)), -Infinity); + assert.ok(!c.validate()); // not valid, really: non-zero-digit *DIGIT + }, + "TTL with max-age and expires": function() { + var c = new Cookie(); + c.maxAge = 123; + c.expires = new Date(Date.now()+9000); + assert.equal(c.TTL(), 123000); + assert.ok(c.isPersistent()); + }, + "TTL with expires": function() { + var c = new Cookie(); + var now = Date.now(); + c.expires = new Date(now+9000); + assert.equal(c.TTL(now), 9000); + assert.equal(c.expiryTime(), c.expires.getTime()); + }, + "TTL with old expires": function() { + var c = new Cookie(); + c.setExpires('17 Oct 2010 00:00:00 GMT'); + assert.ok(c.TTL() < 0); + assert.ok(c.isPersistent()); + }, + "default TTL": { + topic: function() { return new Cookie() }, + "is Infinite-future": function(c) { assert.equal(c.TTL(), Infinity) }, + "is a 'session' cookie": function(c) { assert.ok(!c.isPersistent()) }, + }, +}).addBatch({ + "Parsing": { + "simple": { + topic: function() { + return Cookie.parse('a=bcd',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'a') }, + "value": function(c) { assert.equal(c.value, 'bcd') }, + "no path": function(c) { assert.equal(c.path, null) }, + "no domain": function(c) { assert.equal(c.domain, null) }, + "no extensions": function(c) { assert.ok(!c.extensions) }, + }, + "with expiry": { + topic: function() { + return Cookie.parse('a=bcd; Expires=Tue, 18 Oct 2011 07:05:03 GMT',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'a') }, + "value": function(c) { assert.equal(c.value, 'bcd') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + }, + "with expiry and path": { + topic: function() { + return Cookie.parse('abc="xyzzy!"; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Path=/aBc',true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'abc') }, + "value": function(c) { assert.equal(c.value, 'xyzzy!') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + "has path": function(c) { assert.equal(c.path, '/aBc'); }, + "no httponly or secure": function(c) { + assert.ok(!c.httpOnly); + assert.ok(!c.secure); + }, + }, + "with everything": { + topic: function() { + return Cookie.parse('abc="xyzzy!"; Expires=Tue, 18 Oct 2011 07:05:03 GMT; Path=/aBc; Domain=example.com; Secure; HTTPOnly; Max-Age=1234; Foo=Bar; Baz', true) || null; + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'abc') }, + "value": function(c) { assert.equal(c.value, 'xyzzy!') }, + "has expires": function(c) { + assert.ok(c.expires !== Infinity, 'expiry is infinite when it shouldn\'t be'); + assert.equal(c.expires.getTime(), 1318921503000); + }, + "has path": function(c) { assert.equal(c.path, '/aBc'); }, + "has domain": function(c) { assert.equal(c.domain, 'example.com'); }, + "has httponly": function(c) { assert.equal(c.httpOnly, true); }, + "has secure": function(c) { assert.equal(c.secure, true); }, + "has max-age": function(c) { assert.equal(c.maxAge, 1234); }, + "has extensions": function(c) { + assert.ok(c.extensions); + assert.equal(c.extensions[0], 'Foo=Bar'); + assert.equal(c.extensions[1], 'Baz'); + }, + }, + "invalid expires": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Expires=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Expires=xyzzy"); + assert.ok(c); + assert.equal(c.expires, Infinity); + }, + }, + "zero max-age": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Max-Age=0", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Max-Age=0"); + assert.ok(c); + assert.equal(c.maxAge, 0); + }, + }, + "negative max-age": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Max-Age=-1", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Max-Age=-1"); + assert.ok(c); + assert.equal(c.maxAge, -1); + }, + }, + "empty domain": { + "strict": function() { assert.ok(!Cookie.parse("a=b; domain=", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; domain="); + assert.ok(c); + assert.equal(c.domain, null); + }, + }, + "dot domain": { + "strict": function() { assert.ok(!Cookie.parse("a=b; domain=.", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; domain=."); + assert.ok(c); + assert.equal(c.domain, null); + }, + }, + "uppercase domain": { + "strict lowercases": function() { + var c = Cookie.parse("a=b; domain=EXAMPLE.COM"); + assert.ok(c); + assert.equal(c.domain, 'example.com'); + }, + "non-strict lowercases": function() { + var c = Cookie.parse("a=b; domain=EXAMPLE.COM"); + assert.ok(c); + assert.equal(c.domain, 'example.com'); + }, + }, + "trailing dot in domain": { + topic: function() { + return Cookie.parse("a=b; Domain=example.com.", true) || null; + }, + "has the domain": function(c) { assert.equal(c.domain,"example.com.") }, + "but doesn't validate": function(c) { assert.equal(c.validate(),false) }, + }, + "empty path": { + "strict": function() { assert.ok(!Cookie.parse("a=b; path=", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; path="); + assert.ok(c); + assert.equal(c.path, null); + }, + }, + "no-slash path": { + "strict": function() { assert.ok(!Cookie.parse("a=b; path=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; path=xyzzy"); + assert.ok(c); + assert.equal(c.path, null); + }, + }, + "trailing semi-colons after path": { + topic: function () { + return [ + "a=b; path=/;", + "c=d;;;;" + ]; + }, + "strict": function (t) { + assert.ok(!Cookie.parse(t[0], true)); + assert.ok(!Cookie.parse(t[1], true)); + }, + "non-strict": function (t) { + var c1 = Cookie.parse(t[0]); + var c2 = Cookie.parse(t[1]); + assert.ok(c1); + assert.ok(c2); + assert.equal(c1.path, '/'); + } + }, + "secure-with-value": { + "strict": function() { assert.ok(!Cookie.parse("a=b; Secure=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; Secure=xyzzy"); + assert.ok(c); + assert.equal(c.secure, true); + }, + }, + "httponly-with-value": { + "strict": function() { assert.ok(!Cookie.parse("a=b; HttpOnly=xyzzy", true)) }, + "non-strict": function() { + var c = Cookie.parse("a=b; HttpOnly=xyzzy"); + assert.ok(c); + assert.equal(c.httpOnly, true); + }, + }, + "garbage": { + topic: function() { + return Cookie.parse("\x08", true) || null; + }, + "doesn't parse": function(c) { assert.equal(c,null) }, + }, + "public suffix domain": { + topic: function() { + return Cookie.parse("a=b; domain=kyoto.jp", true) || null; + }, + "parses fine": function(c) { + assert.ok(c); + assert.equal(c.domain, 'kyoto.jp'); + }, + "but fails validation": function(c) { + assert.ok(c); + assert.ok(!c.validate()); + }, + }, + "Ironically, Google 'GAPS' cookie has very little whitespace": { + topic: function() { + return Cookie.parse("GAPS=1:A1aaaaAaAAa1aaAaAaaAAAaaa1a11a:aaaAaAaAa-aaaA1-;Path=/;Expires=Thu, 17-Apr-2014 02:12:29 GMT;Secure;HttpOnly"); + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'GAPS') }, + "value": function(c) { assert.equal(c.value, '1:A1aaaaAaAAa1aaAaAaaAAAaaa1a11a:aaaAaAaAa-aaaA1-') }, + "path": function(c) { + assert.notEqual(c.path, '/;Expires'); // BUG + assert.equal(c.path, '/'); + }, + "expires": function(c) { + assert.notEqual(c.expires, Infinity); + assert.equal(c.expires.getTime(), 1397700749000); + }, + "secure": function(c) { assert.ok(c.secure) }, + "httponly": function(c) { assert.ok(c.httpOnly) }, + }, + "lots of equal signs": { + topic: function() { + return Cookie.parse("queryPref=b=c&d=e; Path=/f=g; Expires=Thu, 17 Apr 2014 02:12:29 GMT; HttpOnly"); + }, + "parsed": function(c) { assert.ok(c) }, + "key": function(c) { assert.equal(c.key, 'queryPref') }, + "value": function(c) { assert.equal(c.value, 'b=c&d=e') }, + "path": function(c) { + assert.equal(c.path, '/f=g'); + }, + "expires": function(c) { + assert.notEqual(c.expires, Infinity); + assert.equal(c.expires.getTime(), 1397700749000); + }, + "httponly": function(c) { assert.ok(c.httpOnly) }, + } + } +}) +.addBatch({ + "domain normalization": { + "simple": function() { + var c = new Cookie(); + c.domain = "EXAMPLE.com"; + assert.equal(c.canonicalizedDomain(), "example.com"); + }, + "extra dots": function() { + var c = new Cookie(); + c.domain = ".EXAMPLE.com"; + assert.equal(c.cdomain(), "example.com"); + }, + "weird trailing dot": function() { + var c = new Cookie(); + c.domain = "EXAMPLE.ca."; + assert.equal(c.canonicalizedDomain(), "example.ca."); + }, + "weird internal dots": function() { + var c = new Cookie(); + c.domain = "EXAMPLE...ca."; + assert.equal(c.canonicalizedDomain(), "example...ca."); + }, + "IDN": function() { + var c = new Cookie(); + c.domain = "δοκιμή.δοκιμή"; // "test.test" in greek + assert.equal(c.canonicalizedDomain(), "xn--jxalpdlp.xn--jxalpdlp"); + } + } +}) +.addBatch({ + "Domain Match":matchVows(tough.domainMatch, [ + // str, dom, expect + ["example.com", "example.com", true], + ["eXaMpLe.cOm", "ExAmPlE.CoM", true], + ["no.ca", "yes.ca", false], + ["wwwexample.com", "example.com", false], + ["www.example.com", "example.com", true], + ["example.com", "www.example.com", false], + ["www.subdom.example.com", "example.com", true], + ["www.subdom.example.com", "subdom.example.com", true], + ["example.com", "example.com.", false], // RFC6265 S4.1.2.3 + ["192.168.0.1", "168.0.1", false], // S5.1.3 "The string is a host name" + [null, "example.com", null], + ["example.com", null, null], + [null, null, null], + [undefined, undefined, null], + ]) +}) +.addBatch({ + "default-path": defaultPathVows([ + [null,"/"], + ["/","/"], + ["/file","/"], + ["/dir/file","/dir"], + ["noslash","/"], + ]) +}) +.addBatch({ + "Path-Match": matchVows(tough.pathMatch, [ + // request, cookie, match + ["/","/",true], + ["/dir","/",true], + ["/","/dir",false], + ["/dir/","/dir/", true], + ["/dir/file","/dir/",true], + ["/dir/file","/dir",true], + ["/directory","/dir",false], + ]) +}) +.addBatch({ + "Cookie Sorting": { + topic: function() { + var cookies = []; + var now = Date.now(); + cookies.push(Cookie.parse("a=0; Domain=example.com")); + cookies.push(Cookie.parse("b=1; Domain=www.example.com")); + cookies.push(Cookie.parse("c=2; Domain=example.com; Path=/pathA")); + cookies.push(Cookie.parse("d=3; Domain=www.example.com; Path=/pathA")); + cookies.push(Cookie.parse("e=4; Domain=example.com; Path=/pathA/pathB")); + cookies.push(Cookie.parse("f=5; Domain=www.example.com; Path=/pathA/pathB")); + + // force a stable creation time consistent with the order above since + // some may have been created at now + 1ms. + var i = cookies.length; + cookies.forEach(function(cookie) { + cookie.creation = new Date(now - 100*(i--)); + }); + + // weak shuffle: + cookies = cookies.sort(function(){return Math.random()-0.5}); + + cookies = cookies.sort(tough.cookieCompare); + return cookies; + }, + "got": function(cookies) { + assert.lengthOf(cookies, 6); + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['e','f','c','d','a','b']); + }, + } +}) +.addBatch({ + "CookieJar": { + "Setting a basic cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "works": function(c) { assert.instanceOf(c,Cookie) }, // C is for Cookie, good enough for me + "gets timestamped": function(c) { + assert.ok(c.creation); + assert.ok(Date.now() - c.creation.getTime() < 5000); // recently stamped + assert.ok(c.lastAccessed); + assert.equal(c.creation, c.lastAccessed); + assert.equal(c.TTL(), Infinity); + assert.ok(!c.isPersistent()); + }, + }, + "Setting a no-path cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "domain": function(c) { assert.equal(c.domain, 'example.com') }, + "path is /": function(c) { assert.equal(c.path, '/') }, + "path was derived": function(c) { assert.strictEqual(c.pathIsDefault, true) }, + }, + "Setting a cookie already marked as host-only": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com"); + assert.strictEqual(c.hostOnly, null); + assert.instanceOf(c.creation, Date); + assert.strictEqual(c.lastAccessed, null); + c.creation = new Date(Date.now()-10000); + c.hostOnly = true; + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "domain": function(c) { assert.equal(c.domain, 'example.com') }, + "still hostOnly": function(c) { assert.strictEqual(c.hostOnly, true) }, + }, + "Setting a session cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b"); + assert.strictEqual(c.path, null); + cj.setCookie(c, 'http://www.example.com/dir/index.html', this.callback); + }, + "works": function(c) { assert.instanceOf(c,Cookie) }, + "gets the domain": function(c) { assert.equal(c.domain, 'www.example.com') }, + "gets the default path": function(c) { assert.equal(c.path, '/dir') }, + "is 'hostOnly'": function(c) { assert.ok(c.hostOnly) }, + }, + "Setting wrong domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=fooxample.com; Path=/"); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "fails": function(err,c) { + assert.ok(err.message.match(/domain/i)); + assert.ok(!c); + }, + }, + "Setting sub-domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=www.example.com; Path=/"); + cj.setCookie(c, 'http://example.com/index.html', this.callback); + }, + "fails": function(err,c) { + assert.ok(err.message.match(/domain/i)); + assert.ok(!c); + }, + }, + "Setting super-domain cookie": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/"); + cj.setCookie(c, 'http://www.app.example.com/index.html', this.callback); + }, + "success": function(err,c) { + assert.ok(!err); + assert.equal(c.domain, 'example.com'); + }, + }, + "Setting HttpOnly cookie over non-HTTP API": { + topic: function() { + var cj = new CookieJar(); + var c = Cookie.parse("a=b; Domain=example.com; Path=/; HttpOnly"); + cj.setCookie(c, 'http://example.com/index.html', {http:false}, this.callback); + }, + "fails": function(err,c) { + assert.match(err.message, /HttpOnly/i); + assert.ok(!c); + }, + }, + }, + "Cookie Jar store eight cookies": { + topic: function() { + var cj = new CookieJar(); + var ex = 'http://example.com/index.html'; + var tasks = []; + tasks.push(function(next) { + cj.setCookie('a=1; Domain=example.com; Path=/',ex,at(0),next); + }); + tasks.push(function(next) { + cj.setCookie('b=2; Domain=example.com; Path=/; HttpOnly',ex,at(1000),next); + }); + tasks.push(function(next) { + cj.setCookie('c=3; Domain=example.com; Path=/; Secure',ex,at(2000),next); + }); + tasks.push(function(next) { // path + cj.setCookie('d=4; Domain=example.com; Path=/foo',ex,at(3000),next); + }); + tasks.push(function(next) { // host only + cj.setCookie('e=5',ex,at(4000),next); + }); + tasks.push(function(next) { // other domain + cj.setCookie('f=6; Domain=nodejs.org; Path=/','http://nodejs.org',at(5000),next); + }); + tasks.push(function(next) { // expired + cj.setCookie('g=7; Domain=example.com; Path=/; Expires=Tue, 18 Oct 2011 00:00:00 GMT',ex,at(6000),next); + }); + tasks.push(function(next) { // expired via Max-Age + cj.setCookie('h=8; Domain=example.com; Path=/; Max-Age=1',ex,next); + }); + var cb = this.callback; + async.parallel(tasks, function(err,results){ + setTimeout(function() { + cb(err,cj,results); + }, 2000); // so that 'h=8' expires + }); + }, + "setup ok": function(err,cj,results) { + assert.ok(1); + }, + "then retrieving for http://nodejs.org": { + topic: function(cj,results) { + cj.getCookies('http://nodejs.org',this.callback); + }, + "get a nodejs cookie": function(cookies) { + assert.lengthOf(cookies, 1); + var cookie = cookies[0]; + assert.equal(cookie.domain, 'nodejs.org'); + }, + }, + "then retrieving for https://example.com": { + topic: function(cj,results) { + cj.getCookies('https://example.com',{secure:true},this.callback); + }, + "get a secure example cookie with others": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','c','e']); + }, + }, + "then retrieving for https://example.com (missing options)": { + topic: function(cj,results) { + cj.getCookies('https://example.com',this.callback); + }, + "get a secure example cookie with others": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','c','e']); + }, + }, + "then retrieving for http://example.com": { + topic: function(cj,results) { + cj.getCookies('http://example.com',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','e']); + }, + }, + "then retrieving for http://EXAMPlE.com": { + topic: function(cj,results) { + cj.getCookies('http://EXAMPlE.com',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','b','e']); + }, + }, + "then retrieving for http://example.com, non-HTTP": { + topic: function(cj,results) { + cj.getCookies('http://example.com',{http:false},this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['a','e']); + }, + }, + "then retrieving for http://example.com/foo/bar": { + topic: function(cj,results) { + cj.getCookies('http://example.com/foo/bar',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['d','a','b','e']); + }, + }, + "then retrieving for http://example.com as a string": { + topic: function(cj,results) { + cj.getCookieString('http://example.com',this.callback); + }, + "get a single string": function(cookieHeader) { + assert.equal(cookieHeader, "a=1; b=2; e=5"); + }, + }, + "then retrieving for http://example.com as a set-cookie header": { + topic: function(cj,results) { + cj.getSetCookieStrings('http://example.com',this.callback); + }, + "get a single string": function(cookieHeaders) { + assert.lengthOf(cookieHeaders, 3); + assert.equal(cookieHeaders[0], "a=1; Domain=example.com; Path=/"); + assert.equal(cookieHeaders[1], "b=2; Domain=example.com; Path=/; HttpOnly"); + assert.equal(cookieHeaders[2], "e=5; Path=/"); + }, + }, + "then retrieving for http://www.example.com/": { + topic: function(cj,results) { + cj.getCookies('http://www.example.com/foo/bar',this.callback); + }, + "get a bunch of cookies": function(cookies) { + var names = cookies.map(function(c) {return c.key}); + assert.deepEqual(names, ['d','a','b']); // note lack of 'e' + }, + }, + }, + "Repeated names": { + topic: function() { + var cb = this.callback; + var cj = new CookieJar(); + var ex = 'http://www.example.com/'; + var sc = cj.setCookie; + var tasks = []; + var now = Date.now(); + tasks.push(sc.bind(cj,'aaaa=xxxx',ex,at(0))); + tasks.push(sc.bind(cj,'aaaa=1111; Domain=www.example.com',ex,at(1000))); + tasks.push(sc.bind(cj,'aaaa=2222; Domain=example.com',ex,at(2000))); + tasks.push(sc.bind(cj,'aaaa=3333; Domain=www.example.com; Path=/pathA',ex,at(3000))); + async.series(tasks,function(err,results) { + results = results.filter(function(e) {return e !== undefined}); + cb(err,{cj:cj, cookies:results, now:now}); + }); + }, + "all got set": function(err,t) { + assert.lengthOf(t.cookies,4); + }, + "then getting 'em back": { + topic: function(t) { + var cj = t.cj; + cj.getCookies('http://www.example.com/pathA',this.callback); + }, + "there's just three": function (err,cookies) { + var vals = cookies.map(function(c) {return c.value}); + // may break with sorting; sorting should put 3333 first due to longest path: + assert.deepEqual(vals, ['3333','1111','2222']); + } + }, + }, + "CookieJar setCookie errors": { + "public-suffix domain": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('i=9; Domain=kyoto.jp; Path=/','kyoto.jp',this.callback); + }, + "errors": function(err,cookie) { + assert.ok(err); + assert.ok(!cookie); + assert.match(err.message, /public suffix/i); + }, + }, + "wrong domain": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('j=10; Domain=google.com; Path=/','google.ca',this.callback); + }, + "errors": function(err,cookie) { + assert.ok(err); + assert.ok(!cookie); + assert.match(err.message, /not in this host's domain/i); + }, + }, + "old cookie is HttpOnly": { + topic: function() { + var cb = this.callback; + var next = function (err,c) { + return cb(err,cj); + }; + var cj = new CookieJar(); + cj.setCookie('k=11; Domain=example.ca; Path=/; HttpOnly','http://example.ca',{http:true},next); + }, + "initial cookie is set": function(err,cj) { + assert.ok(!err); + }, + "but when trying to overwrite": { + topic: function(cj) { + var cb = this.callback; + cj.setCookie('k=12; Domain=example.ca; Path=/','http://example.ca',{http:false},function(err,c) {cb(null,err)}); + }, + "it's an error": function(err) { + assert.ok(err); + }, + "then, checking the original": { + topic: function(ignored,cj) { + assert.ok(cj instanceof CookieJar); + cj.getCookies('http://example.ca',{http:true},this.callback); + }, + "cookie has original value": function(err,cookies) { + assert.equal(err,null); + assert.lengthOf(cookies, 1); + assert.equal(cookies[0].value,11); + }, + }, + }, + }, + }, +}) +.addBatch({ + "JSON": { + "serialization": { + topic: function() { + var c = Cookie.parse('alpha=beta; Domain=example.com; Path=/foo; Expires=Tue, 19 Jan 2038 03:14:07 GMT; HttpOnly'); + return JSON.stringify(c); + }, + "gives a string": function(str) { + assert.equal(typeof str, "string"); + }, + "date is in ISO format": function(str) { + assert.match(str, /"expires":"2038-01-19T03:14:07\.000Z"/, 'expires is in ISO format'); + }, + }, + "deserialization": { + topic: function() { + var json = '{"key":"alpha","value":"beta","domain":"example.com","path":"/foo","expires":"2038-01-19T03:14:07.000Z","httpOnly":true,"lastAccessed":2000000000123}'; + return Cookie.fromJSON(json); + }, + "works": function(c) { + assert.ok(c); + }, + "key": function(c) { assert.equal(c.key, "alpha") }, + "value": function(c) { assert.equal(c.value, "beta") }, + "domain": function(c) { assert.equal(c.domain, "example.com") }, + "path": function(c) { assert.equal(c.path, "/foo") }, + "httpOnly": function(c) { assert.strictEqual(c.httpOnly, true) }, + "secure": function(c) { assert.strictEqual(c.secure, false) }, + "hostOnly": function(c) { assert.strictEqual(c.hostOnly, null) }, + "expires is a date object": function(c) { + assert.equal(c.expires.getTime(), 2147483647000); + }, + "lastAccessed is a date object": function(c) { + assert.equal(c.lastAccessed.getTime(), 2000000000123); + }, + "creation defaulted": function(c) { + assert.ok(c.creation.getTime()); + } + }, + "null deserialization": { + topic: function() { + return Cookie.fromJSON(null); + }, + "is null": function(cookie) { + assert.equal(cookie,null); + }, + }, + }, + "expiry deserialization": { + "Infinity": { + topic: Cookie.fromJSON.bind(null, '{"expires":"Infinity"}'), + "is infinite": function(c) { + assert.strictEqual(c.expires, "Infinity"); + assert.equal(c.expires, Infinity); + }, + }, + }, + "maxAge serialization": { + topic: function() { + return function(toSet) { + var c = new Cookie(); + c.key = 'foo'; c.value = 'bar'; + c.setMaxAge(toSet); + return JSON.stringify(c); + }; + }, + "zero": { + topic: function(f) { return f(0) }, + "looks good": function(str) { + assert.match(str, /"maxAge":0/); + }, + }, + "Infinity": { + topic: function(f) { return f(Infinity) }, + "looks good": function(str) { + assert.match(str, /"maxAge":"Infinity"/); + }, + }, + "-Infinity": { + topic: function(f) { return f(-Infinity) }, + "looks good": function(str) { + assert.match(str, /"maxAge":"-Infinity"/); + }, + }, + "null": { + topic: function(f) { return f(null) }, + "looks good": function(str) { + assert.match(str, /"maxAge":null/); + }, + }, + }, + "maxAge deserialization": { + "number": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":123}'), + "is the number": function(c) { + assert.strictEqual(c.maxAge, 123); + }, + }, + "null": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":null}'), + "is null": function(c) { + assert.strictEqual(c.maxAge, null); + }, + }, + "less than zero": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":-123}'), + "is -123": function(c) { + assert.strictEqual(c.maxAge, -123); + }, + }, + "Infinity": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":"Infinity"}'), + "is inf-as-string": function(c) { + assert.strictEqual(c.maxAge, "Infinity"); + }, + }, + "-Infinity": { + topic: Cookie.fromJSON.bind(null,'{"key":"foo","value":"bar","maxAge":"-Infinity"}'), + "is inf-as-string": function(c) { + assert.strictEqual(c.maxAge, "-Infinity"); + }, + }, + } +}) +.addBatch({ + "permuteDomain": { + "base case": { + topic: tough.permuteDomain.bind(null,'example.com'), + "got the domain": function(list) { + assert.deepEqual(list, ['example.com']); + }, + }, + "two levels": { + topic: tough.permuteDomain.bind(null,'foo.bar.example.com'), + "got three things": function(list) { + assert.deepEqual(list, ['example.com','bar.example.com','foo.bar.example.com']); + }, + }, + "invalid domain": { + topic: tough.permuteDomain.bind(null,'foo.bar.example.localduhmain'), + "got three things": function(list) { + assert.equal(list, null); + }, + }, + }, + "permutePath": { + "base case": { + topic: tough.permutePath.bind(null,'/'), + "just slash": function(list) { + assert.deepEqual(list,['/']); + }, + }, + "single case": { + topic: tough.permutePath.bind(null,'/foo'), + "two things": function(list) { + assert.deepEqual(list,['/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo',e)); + }); + }, + }, + "double case": { + topic: tough.permutePath.bind(null,'/foo/bar'), + "four things": function(list) { + assert.deepEqual(list,['/foo/bar','/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo/bar',e)); + }); + }, + }, + "trailing slash": { + topic: tough.permutePath.bind(null,'/foo/bar/'), + "three things": function(list) { + assert.deepEqual(list,['/foo/bar','/foo','/']); + }, + "path matching": function(list) { + list.forEach(function(e) { + assert.ok(tough.pathMatch('/foo/bar/',e)); + }); + }, + }, + } +}) +.addBatch({ + "Issue 1": { + topic: function() { + var cj = new CookieJar(); + cj.setCookie('hello=world; path=/some/path/', 'http://domain/some/path/file', function(err,cookie) { + this.callback(err,{cj:cj, cookie:cookie}); + }.bind(this)); + }, + "stored a cookie": function(t) { + assert.ok(t.cookie); + }, + "cookie's path was modified to remove unnecessary slash": function(t) { + assert.equal(t.cookie.path, '/some/path'); + }, + "getting it back": { + topic: function(t) { + t.cj.getCookies('http://domain/some/path/file', function(err,cookies) { + this.callback(err, {cj:t.cj, cookies:cookies||[]}); + }.bind(this)); + }, + "got one cookie": function(t) { + assert.lengthOf(t.cookies, 1); + }, + "it's the right one": function(t) { + var c = t.cookies[0]; + assert.equal(c.key, 'hello'); + assert.equal(c.value, 'world'); + }, + } + } +}) +.addBatch({ + "expiry option": { + topic: function() { + var cb = this.callback; + var cj = new CookieJar(); + cj.setCookie('near=expiry; Domain=example.com; Path=/; Max-Age=1','http://www.example.com',at(-1), function(err,cookie) { + + cb(err, {cj:cj, cookie:cookie}); + }); + }, + "set the cookie": function(t) { + assert.ok(t.cookie, "didn't set?!"); + assert.equal(t.cookie.key, 'near'); + }, + "then, retrieving": { + topic: function(t) { + var cb = this.callback; + setTimeout(function() { + t.cj.getCookies('http://www.example.com', {http:true, expire:false}, function(err,cookies) { + t.cookies = cookies; + cb(err,t); + }); + },2000); + }, + "got the cookie": function(t) { + assert.lengthOf(t.cookies, 1); + assert.equal(t.cookies[0].key, 'near'); + }, + } + } +}) +.addBatch({ + "trailing semi-colon set into cj": { + topic: function () { + var cb = this.callback; + var cj = new CookieJar(); + var ex = 'http://www.example.com'; + var tasks = []; + tasks.push(function(next) { + cj.setCookie('broken_path=testme; path=/;',ex,at(-1),next); + }); + tasks.push(function(next) { + cj.setCookie('b=2; Path=/;;;;',ex,at(-1),next); + }); + async.parallel(tasks, function (err, cookies) { + cb(null, { + cj: cj, + cookies: cookies + }); + }); + }, + "check number of cookies": function (t) { + assert.lengthOf(t.cookies, 2, "didn't set"); + }, + "check *broken_path* was set properly": function (t) { + assert.equal(t.cookies[0].key, "broken_path"); + assert.equal(t.cookies[0].value, "testme"); + assert.equal(t.cookies[0].path, "/"); + }, + "check *b* was set properly": function (t) { + assert.equal(t.cookies[1].key, "b"); + assert.equal(t.cookies[1].value, "2"); + assert.equal(t.cookies[1].path, "/"); + }, + "retrieve the cookie": { + topic: function (t) { + var cb = this.callback; + t.cj.getCookies('http://www.example.com', {}, function (err, cookies) { + t.cookies = cookies; + cb(err, t); + }); + }, + "get the cookie": function(t) { + assert.lengthOf(t.cookies, 2); + assert.equal(t.cookies[0].key, 'broken_path'); + assert.equal(t.cookies[0].value, 'testme'); + assert.equal(t.cookies[1].key, "b"); + assert.equal(t.cookies[1].value, "2"); + assert.equal(t.cookies[1].path, "/"); + }, + }, + } +}) +.addBatch({ + "Constructor":{ + topic: function () { + return new Cookie({ + key: 'test', + value: 'b', + maxAge: 60 + }); + }, + 'check for key property': function (c) { + assert.ok(c); + assert.equal(c.key, 'test'); + }, + 'check for value property': function (c) { + assert.equal(c.value, 'b'); + }, + 'check for maxAge': function (c) { + assert.equal(c.maxAge, 60); + }, + 'check for default values for unspecified properties': function (c) { + assert.equal(c.expires, "Infinity"); + assert.equal(c.secure, false); + assert.equal(c.httpOnly, false); + } + } +}) +.addBatch({ + "allPaths option": { + topic: function() { + var cj = new CookieJar(); + var tasks = []; + tasks.push(cj.setCookie.bind(cj, 'nopath_dom=qq; Path=/; Domain=example.com', 'http://example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'path_dom=qq; Path=/foo; Domain=example.com', 'http://example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'nopath_host=qq; Path=/', 'http://www.example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'path_host=qq; Path=/foo', 'http://www.example.com', {})); + tasks.push(cj.setCookie.bind(cj, 'other=qq; Path=/', 'http://other.example.com/', {})); + tasks.push(cj.setCookie.bind(cj, 'other2=qq; Path=/foo', 'http://other.example.com/foo', {})); + var cb = this.callback; + async.parallel(tasks, function(err,results) { + cb(err, {cj:cj, cookies: results}); + }); + }, + "all set": function(t) { + assert.equal(t.cookies.length, 6); + assert.ok(t.cookies.every(function(c) { return !!c })); + }, + "getting without allPaths": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/', {}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found just two cookies": function(t) { + assert.equal(t.cookies.length, 2); + }, + "all are path=/": function(t) { + assert.ok(t.cookies.every(function(c) { return c.path === '/' })); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + "getting without allPaths for /foo": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/foo', {}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found four cookies": function(t) { + assert.equal(t.cookies.length, 4); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + "getting with allPaths:true": { + topic: function(t) { + var cb = this.callback; + var cj = t.cj; + cj.getCookies('http://www.example.com/', {allPaths:true}, function(err,cookies) { + cb(err, {cj:cj, cookies:cookies}); + }); + }, + "found four cookies": function(t) { + assert.equal(t.cookies.length, 4); + }, + "no 'other' cookies": function(t) { + assert.ok(!t.cookies.some(function(c) { return (/^other/).test(c.name) })); + }, + }, + } +}) +.export(module); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/LICENSE @@ -0,0 +1,55 @@ +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +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 + +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 \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md new file mode 100644 index 00000000..bb533d56 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/README.md @@ -0,0 +1,4 @@ +tunnel-agent +============ + +HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js new file mode 100644 index 00000000..3f7bbb90 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/index.js @@ -0,0 +1,227 @@ +'use strict' + +var net = require('net') + , tls = require('tls') + , http = require('http') + , https = require('https') + , events = require('events') + , assert = require('assert') + , util = require('util') + ; + +exports.httpOverHttp = httpOverHttp +exports.httpsOverHttp = httpsOverHttp +exports.httpOverHttps = httpOverHttps +exports.httpsOverHttps = httpsOverHttps + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + return agent +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options) + agent.request = http.request + agent.createSocket = createSecureSocket + return agent +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + return agent +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options) + agent.request = https.request + agent.createSocket = createSecureSocket + return agent +} + + +function TunnelingAgent(options) { + var self = this + self.options = options || {} + self.proxyOptions = self.options.proxy || {} + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets + self.requests = [] + self.sockets = [] + + self.on('free', function onFree(socket, host, port) { + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i] + if (pending.host === host && pending.port === port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1) + pending.request.onSocket(socket) + return + } + } + socket.destroy() + self.removeSocket(socket) + }) +} +util.inherits(TunnelingAgent, events.EventEmitter) + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port) { + var self = this + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push({host: host, port: port, request: req}) + return + } + + // If we are under maxSockets create a new one. + self.createSocket({host: host, port: port, request: req}, function(socket) { + socket.on('free', onFree) + socket.on('close', onCloseOrRemove) + socket.on('agentRemove', onCloseOrRemove) + req.onSocket(socket) + + function onFree() { + self.emit('free', socket, host, port) + } + + function onCloseOrRemove(err) { + self.removeSocket() + socket.removeListener('free', onFree) + socket.removeListener('close', onCloseOrRemove) + socket.removeListener('agentRemove', onCloseOrRemove) + } + }) +} + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this + var placeholder = {} + self.sockets.push(placeholder) + + var connectOptions = mergeOptions({}, self.proxyOptions, + { method: 'CONNECT' + , path: options.host + ':' + options.port + , agent: false + } + ) + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {} + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64') + } + + debug('making CONNECT request') + var connectReq = self.request(connectOptions) + connectReq.useChunkedEncodingByDefault = false // for v0.6 + connectReq.once('response', onResponse) // for v0.6 + connectReq.once('upgrade', onUpgrade) // for v0.6 + connectReq.once('connect', onConnect) // for v0.7 or later + connectReq.once('error', onError) + connectReq.end() + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head) + }) + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners() + socket.removeAllListeners() + + if (res.statusCode === 200) { + assert.equal(head.length, 0) + debug('tunneling connection has established') + self.sockets[self.sockets.indexOf(placeholder)] = socket + cb(socket) + } else { + debug('tunneling socket could not be established, statusCode=%d', res.statusCode) + var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } + } + + function onError(cause) { + connectReq.removeAllListeners() + + debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack) + var error = new Error('tunneling socket could not be established, ' + 'cause=' + cause.message) + error.code = 'ECONNRESET' + options.request.emit('error', error) + self.removeSocket(placeholder) + } +} + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) return + + this.sockets.splice(pos, 1) + + var pending = this.requests.shift() + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket) + }) + } +} + +function createSecureSocket(options, cb) { + var self = this + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, mergeOptions({}, self.options, + { servername: options.host + , socket: socket + } + )) + cb(secureSocket) + }) +} + + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i] + if (typeof overrides === 'object') { + var keys = Object.keys(overrides) + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j] + if (overrides[k] !== undefined) { + target[k] = overrides[k] + } + } + } + } + return target +} + + +var debug +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments) + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0] + } else { + args.unshift('TUNNEL:') + } + console.error.apply(console, args) + } +} else { + debug = function() {} +} +exports.debug = debug // for test diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json new file mode 100644 index 00000000..acfa6e1c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/tunnel-agent/package.json @@ -0,0 +1,32 @@ +{ + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "name": "tunnel-agent", + "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", + "version": "0.3.0", + "repository": { + "url": "https://github.com/mikeal/tunnel-agent" + }, + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "readme": "tunnel-agent\n============\n\nHTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/mikeal/tunnel-agent/issues" + }, + "homepage": "https://github.com/mikeal/tunnel-agent", + "_id": "tunnel-agent@0.3.0", + "dist": { + "shasum": "ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + }, + "_from": "tunnel-agent@~0.3.0", + "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json new file mode 100755 index 00000000..57c99c02 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/package.json @@ -0,0 +1,61 @@ +{ + "name": "request", + "description": "Simplified HTTP request client.", + "tags": [ + "http", + "simple", + "util", + "utility" + ], + "version": "2.31.0", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com" + }, + "repository": { + "type": "git", + "url": "http://github.com/mikeal/request.git" + }, + "bugs": { + "url": "http://github.com/mikeal/request/issues" + }, + "engines": [ + "node >= 0.8.0" + ], + "main": "index.js", + "dependencies": { + "qs": "~0.6.0", + "json-stringify-safe": "~5.0.0", + "forever-agent": "~0.5.0", + "node-uuid": "~1.4.0", + "mime": "~1.2.9", + "tough-cookie": "~0.9.15", + "form-data": "~0.1.0", + "tunnel-agent": "~0.3.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "hawk": "~1.0.0", + "aws-sign2": "~0.5.0" + }, + "optionalDependencies": { + "tough-cookie": "~0.9.15", + "form-data": "~0.1.0", + "tunnel-agent": "~0.3.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "hawk": "~1.0.0", + "aws-sign2": "~0.5.0" + }, + "scripts": { + "test": "node tests/run.js" + }, + "readme": "# Request -- Simplified HTTP client\n\n[![NPM](https://nodei.co/npm/request.png)](https://nodei.co/npm/request/)\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require('request');\nrequest('http://www.google.com', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Print the google web page.\n }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one).\n\n```javascript\nfs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json'))\n```\n\nRequest can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers.\n\n```javascript\nrequest.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))\n```\n\nNow let’s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n if (req.method === 'PUT') {\n req.pipe(request.put('http://mysite.com/doodle.png'))\n } else if (req.method === 'GET' || req.method === 'HEAD') {\n request.get('http://mysite.com/doodle.png').pipe(resp)\n }\n }\n})\n```\n\nYou can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don't really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n var x = request('http://mysite.com/doodle.png')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :)\n\n```javascript\nreq.pipe(request('http://mysite.com/doodle.png')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({'proxy':'http://localproxy.com'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n r.get('http://google.com/doodle.png').pipe(resp)\n }\n})\n```\n\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nURL-encoded forms are simple.\n\n```javascript\nrequest.post('http://service.com/upload', {form:{key:'value'}})\n// or\nrequest.post('http://service.com/upload').form({key:'value'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don’t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post('http://service.com/upload')\nvar form = r.form()\nform.append('my_field', 'my_value')\nform.append('my_buffer', new Buffer([1, 2, 3]))\nform.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png'))\nform.append('remote_file', request('http://google.com/doodle.png'))\n```\n\n## HTTP Authentication\n\n```javascript\nrequest.get('http://some.server.com/').auth('username', 'password', false);\n// or\nrequest.get('http://some.server.com/', {\n 'auth': {\n 'user': 'username',\n 'pass': 'password',\n 'sendImmediately': false\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`.\n\n`sendImmediately` defaults to `true`, which causes a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a `401` response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method).\n\nDigest authentication is supported, but it only works with `sendImmediately` set to `false`; otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail.\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require('querystring')\n , oauth =\n { callback: 'http://mysite.com/callback/'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = 'https://api.twitter.com/oauth/request_token'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has\n // verified with twitter that they are authorizing your app.\n var access_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: access_token.oauth_token\n , verifier: access_token.oauth_verifier\n }\n , url = 'https://api.twitter.com/oauth/access_token'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n var perm_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_token.oauth_token\n , token_secret: perm_token.oauth_token_secret\n }\n , url = 'https://api.twitter.com/1.1/users/show.json?'\n , params =\n { screen_name: perm_token.screen_name\n , user_id: perm_token.user_id\n }\n ;\n url += qs.stringify(params)\n request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\n### Custom HTTP Headers\n\nHTTP Headers, such as `User-Agent`, can be set in the `options` object.\nIn the example below, we call the github API to find out the number\nof stars and forks for the request repository. This requires a\ncustom `User-Agent` header as well as https.\n\n```javascript\nvar request = require('request');\n\nvar options = {\n\turl: 'https://api.github.com/repos/mikeal/request',\n\theaders: {\n\t\t'User-Agent': 'request'\n\t}\n};\n\nfunction callback(error, response, body) {\n\tif (!error && response.statusCode == 200) {\n\t\tvar info = JSON.parse(body);\n\t\tconsole.log(info.stargazers_count + \" Stars\");\n\t\tconsole.log(info.forks_count + \" Forks\");\n\t}\n}\n\nrequest(options, callback);\n```\n\n### request(options, callback)\n\nThe first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n* `qs` - object containing querystring values to be appended to the `uri`\n* `method` - http method (default: `\"GET\"`)\n* `headers` - http headers (default: `{}`)\n* `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer` or `String`.\n* `form` - when passed an object, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no options, a `FormData` instance is returned (and is piped to request).\n* `auth` - A hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). See documentation above.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`)\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`)\n* `maxRedirects` - the maximum number of redirects to follow (default: `10`)\n* `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`.\n* `pool` - A hash object containing the agents for these requests. If omitted, the request will use the global pool (which is set to node's default `maxSockets`)\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\n* `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`)\n* `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above.\n* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n* `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option.\n* `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section)\n* `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services)\n* `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent's library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n* `localAddress` - Local interface to bind for network connections.\n\n\nThe callback argument gets 3 arguments: \n\n1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object)\n2. An [`http.IncomingMessage`](http://nodejs.org/api/http.html#http_http_incomingmessage) object\n3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied)\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options)\n\nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as `request()`, but defaults to `method: \"PUT\"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.patch\n\nSame as `request()`, but defaults to `method: \"PATCH\"`.\n\n```javascript\nrequest.patch(url)\n```\n\n### request.post\n\nSame as `request()`, but defaults to `method: \"POST\"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: \"HEAD\"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as `request()`, but defaults to `method: \"DELETE\"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nSame as `request()` (for uniformity).\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie('cookie_string_here')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n var request = require('request')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: 'PUT'\n , uri: 'http://mikeal.iriscouch.com/testjs/' + rand\n , multipart:\n [ { 'content-type': 'application/json'\n , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})\n }\n , { body: 'I am an attachment' }\n ]\n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand)\n } else {\n console.log('error: '+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\n\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`).\n\n```javascript\nvar request = request.defaults({jar: true})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\n\nTo use a custom cookie jar (instead `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`)\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\nOR\n\nNote that `setCookie` requires at least three parameters, and the last is required to be a callback.\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie('your_cookie_here')\nj.setCookie(cookie, uri, function (err, cookie){})\nrequest({url: 'http://www.google.com', jar: j}, function () {\n request('http://images.google.com')\n})\n```\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/mikeal/request", + "_id": "request@2.31.0", + "dist": { + "shasum": "4c8ac967c9a4b9410cb4ba1a61fdb644267eeeff" + }, + "_from": "request@~2.31.0", + "_resolved": "https://registry.npmjs.org/request/-/request-2.31.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js new file mode 100644 index 00000000..3c03c47d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/request.js @@ -0,0 +1,1260 @@ +var optional = require('./lib/optional') + , http = require('http') + , https = optional('https') + , tls = optional('tls') + , url = require('url') + , util = require('util') + , stream = require('stream') + , qs = require('qs') + , querystring = require('querystring') + , crypto = require('crypto') + + , oauth = optional('oauth-sign') + , hawk = optional('hawk') + , aws = optional('aws-sign') + , httpSignature = optional('http-signature') + , uuid = require('node-uuid') + , mime = require('mime') + , tunnel = optional('tunnel-agent') + , _safeStringify = require('json-stringify-safe') + + , ForeverAgent = require('forever-agent') + , FormData = optional('form-data') + + , Cookie = optional('tough-cookie') + , CookieJar = Cookie && Cookie.CookieJar + , cookieJar = CookieJar && new CookieJar + + , copy = require('./lib/copy') + , debug = require('./lib/debug') + , getSafe = require('./lib/getSafe') + ; + +function safeStringify (obj) { + var ret + try { ret = JSON.stringify(obj) } + catch (e) { ret = _safeStringify(obj) } + return ret +} + +var globalPool = {} +var isUrl = /^https?:/i + + +// Hacky fix for pre-0.4.4 https +if (https && !https.Agent) { + https.Agent = function (options) { + http.Agent.call(this, options) + } + util.inherits(https.Agent, http.Agent) + https.Agent.prototype._getConnection = function (host, port, cb) { + var s = tls.connect(port, host, this.options, function () { + // do other checks here? + if (cb) cb() + }) + return s + } +} + +function isReadStream (rs) { + if (rs.readable && rs.path && rs.mode) { + return true + } +} + +function toBase64 (str) { + return (new Buffer(str || "", "ascii")).toString("base64") +} + +function md5 (str) { + return crypto.createHash('md5').update(str).digest('hex') +} + +function Request (options) { + stream.Stream.call(this) + this.readable = true + this.writable = true + + if (typeof options === 'string') { + options = {uri:options} + } + + var reserved = Object.keys(Request.prototype) + for (var i in options) { + if (reserved.indexOf(i) === -1) { + this[i] = options[i] + } else { + if (typeof options[i] === 'function') { + delete options[i] + } + } + } + + if (options.method) { + this.explicitMethod = true + } + + this.canTunnel = options.tunnel !== false && tunnel; + + this.init(options) +} +util.inherits(Request, stream.Stream) +Request.prototype.init = function (options) { + // init() contains all the code to setup the request object. + // the actual outgoing request is not started until start() is called + // this function is called from both the constructor and on redirect. + var self = this + if (!options) options = {} + + if (!self.method) self.method = options.method || 'GET' + self.localAddress = options.localAddress + + debug(options) + if (!self.pool && self.pool !== false) self.pool = globalPool + self.dests = self.dests || [] + self.__isRequestRequest = true + + // Protect against double callback + if (!self._callback && self.callback) { + self._callback = self.callback + self.callback = function () { + if (self._callbackCalled) return // Print a warning maybe? + self._callbackCalled = true + self._callback.apply(self, arguments) + } + self.on('error', self.callback.bind()) + self.on('complete', self.callback.bind(self, null)) + } + + if (self.url && !self.uri) { + // People use this property instead all the time so why not just support it. + self.uri = self.url + delete self.url + } + + if (!self.uri) { + // this will throw if unhandled but is handleable when in a redirect + return self.emit('error', new Error("options.uri is a required argument")) + } else { + if (typeof self.uri == "string") self.uri = url.parse(self.uri) + } + + if (self.strictSSL === false) { + self.rejectUnauthorized = false + } + + if (self.proxy) { + if (typeof self.proxy == 'string') self.proxy = url.parse(self.proxy) + + // do the HTTP CONNECT dance using koichik/node-tunnel + if (http.globalAgent && self.uri.protocol === "https:" && self.canTunnel) { + var tunnelFn = self.proxy.protocol === "http:" + ? tunnel.httpsOverHttp : tunnel.httpsOverHttps + + var tunnelOptions = { proxy: { host: self.proxy.hostname + , port: +self.proxy.port + , proxyAuth: self.proxy.auth + , headers: { Host: self.uri.hostname + ':' + + (self.uri.port || self.uri.protocol === 'https:' ? 443 : 80) }} + , rejectUnauthorized: self.rejectUnauthorized + , ca: this.ca } + + self.agent = tunnelFn(tunnelOptions) + self.tunnel = true + } + } + + if (!self.uri.pathname) {self.uri.pathname = '/'} + + if (!self.uri.host) { + // Invalid URI: it may generate lot of bad errors, like "TypeError: Cannot call method 'indexOf' of undefined" in CookieJar + // Detect and reject it as soon as possible + var faultyUri = url.format(self.uri) + var message = 'Invalid URI "' + faultyUri + '"' + if (Object.keys(options).length === 0) { + // No option ? This can be the sign of a redirect + // As this is a case where the user cannot do anything (they didn't call request directly with this URL) + // they should be warned that it can be caused by a redirection (can save some hair) + message += '. This can be caused by a crappy redirection.' + } + self.emit('error', new Error(message)) + return // This error was fatal + } + + self._redirectsFollowed = self._redirectsFollowed || 0 + self.maxRedirects = (self.maxRedirects !== undefined) ? self.maxRedirects : 10 + self.followRedirect = (self.followRedirect !== undefined) ? self.followRedirect : true + self.followAllRedirects = (self.followAllRedirects !== undefined) ? self.followAllRedirects : false + if (self.followRedirect || self.followAllRedirects) + self.redirects = self.redirects || [] + + self.headers = self.headers ? copy(self.headers) : {} + + self.setHost = false + if (!self.hasHeader('host')) { + self.setHeader('host', self.uri.hostname) + if (self.uri.port) { + if ( !(self.uri.port === 80 && self.uri.protocol === 'http:') && + !(self.uri.port === 443 && self.uri.protocol === 'https:') ) + self.setHeader('host', self.getHeader('host') + (':'+self.uri.port) ) + } + self.setHost = true + } + + self.jar(self._jar || options.jar) + + if (!self.uri.port) { + if (self.uri.protocol == 'http:') {self.uri.port = 80} + else if (self.uri.protocol == 'https:') {self.uri.port = 443} + } + + if (self.proxy && !self.tunnel) { + self.port = self.proxy.port + self.host = self.proxy.hostname + } else { + self.port = self.uri.port + self.host = self.uri.hostname + } + + self.clientErrorHandler = function (error) { + if (self._aborted) return + if (self.req && self.req._reusedSocket && error.code === 'ECONNRESET' + && self.agent.addRequestNoreuse) { + self.agent = { addRequest: self.agent.addRequestNoreuse.bind(self.agent) } + self.start() + self.req.end() + return + } + if (self.timeout && self.timeoutTimer) { + clearTimeout(self.timeoutTimer) + self.timeoutTimer = null + } + self.emit('error', error) + } + + self._parserErrorHandler = function (error) { + if (this.res) { + if (this.res.request) { + this.res.request.emit('error', error) + } else { + this.res.emit('error', error) + } + } else { + this._httpMessage.emit('error', error) + } + } + + if (options.form) { + self.form(options.form) + } + + if (options.qs) self.qs(options.qs) + + if (self.uri.path) { + self.path = self.uri.path + } else { + self.path = self.uri.pathname + (self.uri.search || "") + } + + if (self.path.length === 0) self.path = '/' + + + // Auth must happen last in case signing is dependent on other headers + if (options.oauth) { + self.oauth(options.oauth) + } + + if (options.aws) { + self.aws(options.aws) + } + + if (options.hawk) { + self.hawk(options.hawk) + } + + if (options.httpSignature) { + self.httpSignature(options.httpSignature) + } + + if (options.auth) { + if (Object.prototype.hasOwnProperty.call(options.auth, 'username')) options.auth.user = options.auth.username + if (Object.prototype.hasOwnProperty.call(options.auth, 'password')) options.auth.pass = options.auth.password + + self.auth( + options.auth.user, + options.auth.pass, + options.auth.sendImmediately + ) + } + + if (self.uri.auth && !self.hasHeader('authorization')) { + var authPieces = self.uri.auth.split(':').map(function(item){ return querystring.unescape(item) }) + self.auth(authPieces[0], authPieces.slice(1).join(':'), true) + } + if (self.proxy && self.proxy.auth && !self.hasHeader('proxy-authorization') && !self.tunnel) { + self.setHeader('proxy-authorization', "Basic " + toBase64(self.proxy.auth.split(':').map(function(item){ return querystring.unescape(item)}).join(':'))) + } + + + if (self.proxy && !self.tunnel) self.path = (self.uri.protocol + '//' + self.uri.host + self.path) + + if (options.json) { + self.json(options.json) + } else if (options.multipart) { + self.boundary = uuid() + self.multipart(options.multipart) + } + + if (self.body) { + var length = 0 + if (!Buffer.isBuffer(self.body)) { + if (Array.isArray(self.body)) { + for (var i = 0; i < self.body.length; i++) { + length += self.body[i].length + } + } else { + self.body = new Buffer(self.body) + length = self.body.length + } + } else { + length = self.body.length + } + if (length) { + if (!self.hasHeader('content-length')) self.setHeader('content-length', length) + } else { + throw new Error('Argument error, options.body.') + } + } + + var protocol = self.proxy && !self.tunnel ? self.proxy.protocol : self.uri.protocol + , defaultModules = {'http:':http, 'https:':https} + , httpModules = self.httpModules || {} + ; + self.httpModule = httpModules[protocol] || defaultModules[protocol] + + if (!self.httpModule) return this.emit('error', new Error("Invalid protocol")) + + if (options.ca) self.ca = options.ca + + if (!self.agent) { + if (options.agentOptions) self.agentOptions = options.agentOptions + + if (options.agentClass) { + self.agentClass = options.agentClass + } else if (options.forever) { + self.agentClass = protocol === 'http:' ? ForeverAgent : ForeverAgent.SSL + } else { + self.agentClass = self.httpModule.Agent + } + } + + if (self.pool === false) { + self.agent = false + } else { + self.agent = self.agent || self.getAgent() + if (self.maxSockets) { + // Don't use our pooling if node has the refactored client + self.agent.maxSockets = self.maxSockets + } + if (self.pool.maxSockets) { + // Don't use our pooling if node has the refactored client + self.agent.maxSockets = self.pool.maxSockets + } + } + + self.on('pipe', function (src) { + if (self.ntick && self._started) throw new Error("You cannot pipe to this stream after the outbound request has started.") + self.src = src + if (isReadStream(src)) { + if (!self.hasHeader('content-type')) self.setHeader('content-type', mime.lookup(src.path)) + } else { + if (src.headers) { + for (var i in src.headers) { + if (!self.hasHeader(i)) { + self.setHeader(i, src.headers[i]) + } + } + } + if (self._json && !self.hasHeader('content-type')) + self.setHeader('content-type', 'application/json') + if (src.method && !self.explicitMethod) { + self.method = src.method + } + } + + // self.on('pipe', function () { + // console.error("You have already piped to this stream. Pipeing twice is likely to break the request.") + // }) + }) + + process.nextTick(function () { + if (self._aborted) return + + if (self._form) { + self.setHeaders(self._form.getHeaders()) + self._form.pipe(self) + } + if (self.body) { + if (Array.isArray(self.body)) { + self.body.forEach(function (part) { + self.write(part) + }) + } else { + self.write(self.body) + } + self.end() + } else if (self.requestBodyStream) { + console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe.") + self.requestBodyStream.pipe(self) + } else if (!self.src) { + if (self.method !== 'GET' && typeof self.method !== 'undefined') { + self.setHeader('content-length', 0) + } + self.end() + } + self.ntick = true + }) +} + +// Must call this when following a redirect from https to http or vice versa +// Attempts to keep everything as identical as possible, but update the +// httpModule, Tunneling agent, and/or Forever Agent in use. +Request.prototype._updateProtocol = function () { + var self = this + var protocol = self.uri.protocol + + if (protocol === 'https:') { + // previously was doing http, now doing https + // if it's https, then we might need to tunnel now. + if (self.proxy && self.canTunnel) { + self.tunnel = true + var tunnelFn = self.proxy.protocol === 'http:' + ? tunnel.httpsOverHttp : tunnel.httpsOverHttps + var tunnelOptions = { proxy: { host: self.proxy.hostname + , port: +self.proxy.port + , proxyAuth: self.proxy.auth } + , rejectUnauthorized: self.rejectUnauthorized + , ca: self.ca } + self.agent = tunnelFn(tunnelOptions) + return + } + + self.httpModule = https + switch (self.agentClass) { + case ForeverAgent: + self.agentClass = ForeverAgent.SSL + break + case http.Agent: + self.agentClass = https.Agent + break + default: + // nothing we can do. Just hope for the best. + return + } + + // if there's an agent, we need to get a new one. + if (self.agent) self.agent = self.getAgent() + + } else { + // previously was doing https, now doing http + // stop any tunneling. + if (self.tunnel) self.tunnel = false + self.httpModule = http + switch (self.agentClass) { + case ForeverAgent.SSL: + self.agentClass = ForeverAgent + break + case https.Agent: + self.agentClass = http.Agent + break + default: + // nothing we can do. just hope for the best + return + } + + // if there's an agent, then get a new one. + if (self.agent) { + self.agent = null + self.agent = self.getAgent() + } + } +} + +Request.prototype.getAgent = function () { + var Agent = this.agentClass + var options = {} + if (this.agentOptions) { + for (var i in this.agentOptions) { + options[i] = this.agentOptions[i] + } + } + if (this.ca) options.ca = this.ca + if (this.ciphers) options.ciphers = this.ciphers + if (this.secureProtocol) options.secureProtocol = this.secureProtocol + if (typeof this.rejectUnauthorized !== 'undefined') options.rejectUnauthorized = this.rejectUnauthorized + + if (this.cert && this.key) { + options.key = this.key + options.cert = this.cert + } + + var poolKey = '' + + // different types of agents are in different pools + if (Agent !== this.httpModule.Agent) { + poolKey += Agent.name + } + + if (!this.httpModule.globalAgent) { + // node 0.4.x + options.host = this.host + options.port = this.port + if (poolKey) poolKey += ':' + poolKey += this.host + ':' + this.port + } + + // ca option is only relevant if proxy or destination are https + var proxy = this.proxy + if (typeof proxy === 'string') proxy = url.parse(proxy) + var isHttps = (proxy && proxy.protocol === 'https:') || this.uri.protocol === 'https:' + if (isHttps) { + if (options.ca) { + if (poolKey) poolKey += ':' + poolKey += options.ca + } + + if (typeof options.rejectUnauthorized !== 'undefined') { + if (poolKey) poolKey += ':' + poolKey += options.rejectUnauthorized + } + + if (options.cert) + poolKey += options.cert.toString('ascii') + options.key.toString('ascii') + + if (options.ciphers) { + if (poolKey) poolKey += ':' + poolKey += options.ciphers + } + + if (options.secureProtocol) { + if (poolKey) poolKey += ':' + poolKey += options.secureProtocol + } + } + + if (this.pool === globalPool && !poolKey && Object.keys(options).length === 0 && this.httpModule.globalAgent) { + // not doing anything special. Use the globalAgent + return this.httpModule.globalAgent + } + + // we're using a stored agent. Make sure it's protocol-specific + poolKey = this.uri.protocol + poolKey + + // already generated an agent for this setting + if (this.pool[poolKey]) return this.pool[poolKey] + + return this.pool[poolKey] = new Agent(options) +} + +Request.prototype.start = function () { + // start() is called once we are ready to send the outgoing HTTP request. + // this is usually called on the first write(), end() or on nextTick() + var self = this + + if (self._aborted) return + + self._started = true + self.method = self.method || 'GET' + self.href = self.uri.href + + if (self.src && self.src.stat && self.src.stat.size && !self.hasHeader('content-length')) { + self.setHeader('content-length', self.src.stat.size) + } + if (self._aws) { + self.aws(self._aws, true) + } + + // We have a method named auth, which is completely different from the http.request + // auth option. If we don't remove it, we're gonna have a bad time. + var reqOptions = copy(self) + delete reqOptions.auth + + debug('make request', self.uri.href) + self.req = self.httpModule.request(reqOptions, self.onResponse.bind(self)) + + if (self.timeout && !self.timeoutTimer) { + self.timeoutTimer = setTimeout(function () { + self.req.abort() + var e = new Error("ETIMEDOUT") + e.code = "ETIMEDOUT" + self.emit("error", e) + }, self.timeout) + + // Set additional timeout on socket - in case if remote + // server freeze after sending headers + if (self.req.setTimeout) { // only works on node 0.6+ + self.req.setTimeout(self.timeout, function () { + if (self.req) { + self.req.abort() + var e = new Error("ESOCKETTIMEDOUT") + e.code = "ESOCKETTIMEDOUT" + self.emit("error", e) + } + }) + } + } + + self.req.on('error', self.clientErrorHandler) + self.req.on('drain', function() { + self.emit('drain') + }) + self.on('end', function() { + if ( self.req.connection ) self.req.connection.removeListener('error', self._parserErrorHandler) + }) + self.emit('request', self.req) +} +Request.prototype.onResponse = function (response) { + var self = this + debug('onResponse', self.uri.href, response.statusCode, response.headers) + response.on('end', function() { + debug('response end', self.uri.href, response.statusCode, response.headers) + }); + + if (response.connection.listeners('error').indexOf(self._parserErrorHandler) === -1) { + response.connection.once('error', self._parserErrorHandler) + } + if (self._aborted) { + debug('aborted', self.uri.href) + response.resume() + return + } + if (self._paused) response.pause() + else response.resume() + + self.response = response + response.request = self + response.toJSON = toJSON + + // XXX This is different on 0.10, because SSL is strict by default + if (self.httpModule === https && + self.strictSSL && + !response.client.authorized) { + debug('strict ssl error', self.uri.href) + var sslErr = response.client.authorizationError + self.emit('error', new Error('SSL Error: '+ sslErr)) + return + } + + if (self.setHost && self.hasHeader('host')) delete self.headers[self.hasHeader('host')] + if (self.timeout && self.timeoutTimer) { + clearTimeout(self.timeoutTimer) + self.timeoutTimer = null + } + + var addCookie = function (cookie) { + if (self._jar){ + var targetCookieJar = self._jar.setCookie?self._jar:cookieJar; + + //set the cookie if it's domain in the href's domain. + targetCookieJar.setCookie(cookie, self.uri.href, function(err){ + if (err){ + console.warn('set cookie failed,'+ err) + } + }) + } + + } + + if (hasHeader('set-cookie', response.headers) && (!self._disableCookies)) { + var headerName = hasHeader('set-cookie', response.headers) + if (Array.isArray(response.headers[headerName])) response.headers[headerName].forEach(addCookie) + else addCookie(response.headers[headerName]) + } + + var redirectTo = null + if (response.statusCode >= 300 && response.statusCode < 400 && hasHeader('location', response.headers)) { + var location = response.headers[hasHeader('location', response.headers)] + debug('redirect', location) + + if (self.followAllRedirects) { + redirectTo = location + } else if (self.followRedirect) { + switch (self.method) { + case 'PATCH': + case 'PUT': + case 'POST': + case 'DELETE': + // Do not follow redirects + break + default: + redirectTo = location + break + } + } + } else if (response.statusCode == 401 && self._hasAuth && !self._sentAuth) { + var authHeader = response.headers[hasHeader('www-authenticate', response.headers)] + var authVerb = authHeader && authHeader.split(' ')[0] + debug('reauth', authVerb) + + switch (authVerb) { + case 'Basic': + self.auth(self._user, self._pass, true) + redirectTo = self.uri + break + + case 'Digest': + // TODO: More complete implementation of RFC 2617. + // - check challenge.algorithm + // - support algorithm="MD5-sess" + // - handle challenge.domain + // - support qop="auth-int" only + // - handle Authentication-Info (not necessarily?) + // - check challenge.stale (not necessarily?) + // - increase nc (not necessarily?) + // For reference: + // http://tools.ietf.org/html/rfc2617#section-3 + // https://github.com/bagder/curl/blob/master/lib/http_digest.c + + var challenge = {} + var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi + for (;;) { + var match = re.exec(authHeader) + if (!match) break + challenge[match[1]] = match[2] || match[3]; + } + + var ha1 = md5(self._user + ':' + challenge.realm + ':' + self._pass) + var ha2 = md5(self.method + ':' + self.uri.path) + var qop = /(^|,)\s*auth\s*($|,)/.test(challenge.qop) && 'auth' + var nc = qop && '00000001' + var cnonce = qop && uuid().replace(/-/g, '') + var digestResponse = qop ? md5(ha1 + ':' + challenge.nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2) : md5(ha1 + ':' + challenge.nonce + ':' + ha2) + var authValues = { + username: self._user, + realm: challenge.realm, + nonce: challenge.nonce, + uri: self.uri.path, + qop: qop, + response: digestResponse, + nc: nc, + cnonce: cnonce, + algorithm: challenge.algorithm, + opaque: challenge.opaque + } + + authHeader = [] + for (var k in authValues) { + if (!authValues[k]) { + //ignore + } else if (k === 'qop' || k === 'nc' || k === 'algorithm') { + authHeader.push(k + '=' + authValues[k]) + } else { + authHeader.push(k + '="' + authValues[k] + '"') + } + } + authHeader = 'Digest ' + authHeader.join(', ') + self.setHeader('authorization', authHeader) + self._sentAuth = true + + redirectTo = self.uri + break + } + } + + if (redirectTo) { + debug('redirect to', redirectTo) + + // ignore any potential response body. it cannot possibly be useful + // to us at this point. + if (self._paused) response.resume() + + if (self._redirectsFollowed >= self.maxRedirects) { + self.emit('error', new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+self.uri.href)) + return + } + self._redirectsFollowed += 1 + + if (!isUrl.test(redirectTo)) { + redirectTo = url.resolve(self.uri.href, redirectTo) + } + + var uriPrev = self.uri + self.uri = url.parse(redirectTo) + + // handle the case where we change protocol from https to http or vice versa + if (self.uri.protocol !== uriPrev.protocol) { + self._updateProtocol() + } + + self.redirects.push( + { statusCode : response.statusCode + , redirectUri: redirectTo + } + ) + if (self.followAllRedirects && response.statusCode != 401) self.method = 'GET' + // self.method = 'GET' // Force all redirects to use GET || commented out fixes #215 + delete self.src + delete self.req + delete self.agent + delete self._started + if (response.statusCode != 401) { + // Remove parameters from the previous response, unless this is the second request + // for a server that requires digest authentication. + delete self.body + delete self._form + if (self.headers) { + if (self.hasHeader('host')) delete self.headers[self.hasHeader('host')] + if (self.hasHeader('content-type')) delete self.headers[self.hasHeader('content-type')] + if (self.hasHeader('content-length')) delete self.headers[self.hasHeader('content-length')] + } + } + + self.emit('redirect'); + + self.init() + return // Ignore the rest of the response + } else { + self._redirectsFollowed = self._redirectsFollowed || 0 + // Be a good stream and emit end when the response is finished. + // Hack to emit end on close because of a core bug that never fires end + response.on('close', function () { + if (!self._ended) self.response.emit('end') + }) + + if (self.encoding) { + if (self.dests.length !== 0) { + console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.") + } else { + response.setEncoding(self.encoding) + } + } + + self.emit('response', response) + + self.dests.forEach(function (dest) { + self.pipeDest(dest) + }) + + response.on("data", function (chunk) { + self._destdata = true + self.emit("data", chunk) + }) + response.on("end", function (chunk) { + self._ended = true + self.emit("end", chunk) + }) + response.on("close", function () {self.emit("close")}) + + if (self.callback) { + var buffer = [] + var bodyLen = 0 + self.on("data", function (chunk) { + buffer.push(chunk) + bodyLen += chunk.length + }) + self.on("end", function () { + debug('end event', self.uri.href) + if (self._aborted) { + debug('aborted', self.uri.href) + return + } + + if (buffer.length && Buffer.isBuffer(buffer[0])) { + debug('has body', self.uri.href, bodyLen) + var body = new Buffer(bodyLen) + var i = 0 + buffer.forEach(function (chunk) { + chunk.copy(body, i, 0, chunk.length) + i += chunk.length + }) + if (self.encoding === null) { + response.body = body + } else { + response.body = body.toString(self.encoding) + } + } else if (buffer.length) { + // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation. + // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse(). + if (self.encoding === 'utf8' && buffer[0].length > 0 && buffer[0][0] === "\uFEFF") { + buffer[0] = buffer[0].substring(1) + } + response.body = buffer.join('') + } + + if (self._json) { + try { + response.body = JSON.parse(response.body) + } catch (e) {} + } + debug('emitting complete', self.uri.href) + if(response.body == undefined && !self._json) { + response.body = ""; + } + self.emit('complete', response, response.body) + }) + } + //if no callback + else{ + self.on("end", function () { + if (self._aborted) { + debug('aborted', self.uri.href) + return + } + self.emit('complete', response); + }); + } + } + debug('finish init function', self.uri.href) +} + +Request.prototype.abort = function () { + this._aborted = true + + if (this.req) { + this.req.abort() + } + else if (this.response) { + this.response.abort() + } + + this.emit("abort") +} + +Request.prototype.pipeDest = function (dest) { + var response = this.response + // Called after the response is received + if (dest.headers && !dest.headersSent) { + if (hasHeader('content-type', response.headers)) { + var ctname = hasHeader('content-type', response.headers) + if (dest.setHeader) dest.setHeader(ctname, response.headers[ctname]) + else dest.headers[ctname] = response.headers[ctname] + } + + if (hasHeader('content-length', response.headers)) { + var clname = hasHeader('content-length', response.headers) + if (dest.setHeader) dest.setHeader(clname, response.headers[clname]) + else dest.headers[clname] = response.headers[clname] + } + } + if (dest.setHeader && !dest.headersSent) { + for (var i in response.headers) { + dest.setHeader(i, response.headers[i]) + } + dest.statusCode = response.statusCode + } + if (this.pipefilter) this.pipefilter(response, dest) +} + +// Composable API +Request.prototype.setHeader = function (name, value, clobber) { + if (clobber === undefined) clobber = true + if (clobber || !this.hasHeader(name)) this.headers[name] = value + else this.headers[this.hasHeader(name)] += ',' + value + return this +} +Request.prototype.setHeaders = function (headers) { + for (var i in headers) {this.setHeader(i, headers[i])} + return this +} +Request.prototype.hasHeader = function (header, headers) { + var headers = Object.keys(headers || this.headers) + , lheaders = headers.map(function (h) {return h.toLowerCase()}) + ; + header = header.toLowerCase() + for (var i=0;i + +[![NPM](https://nodei.co/npm/through2.png?compact=true)](https://nodei.co/npm/through2/) + + + +**A tiny wrapper around Node streams.Transform (Streams2) to avoid explicit subclassing noise** + +Inspired by [Dominic Tarr](https://github.com/dominictarr)'s [through](https://github.com/dominictarr/through) in that it's so much easier to make a stream out of a function than it is to set up the prototype chain properly: `through(function (chunk) { ... })`. + +```js +fs.createReadStream('ex.txt') + .pipe(through2(function (chunk, enc, callback) { + + for (var i = 0; i < chunk.length; i++) + if (chunk[i] == 97) + chunk[i] = 122 // swap 'a' for 'z' + + this.push(chunk) + + callback() + + })) + .pipe(fs.createWriteStream('out.txt')) +``` + +Or object streams: + +```js +var all = [] + +fs.createReadStream('data.csv') + .pipe(csv2()) + .pipe(through2.obj(function (chunk, enc, callback) { + + var data = { + name : chunk[0] + , address : chunk[3] + , phone : chunk[10] + } + + this.push(data) + + callback() + + })) + .on('data', function (data) { + all.push(data) + }) + .on('end', function () { + doSomethingSpecial(all) + }) +``` + +Note that `through2.obj(fn)` is a convenience wrapper around `through2({ objectMode: true }, fn)`. + +## API + +through2([ options, ] [ transformFunction ] [, flushFunction ]) + +Consult the **[stream.Transform](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform)** documentation for the exact rules of the `transformFunction` (i.e. `this._transform`) and the optional `flushFunction` (i.e. `this._flush`). + +### options + +The options argument is optional and is passed straight through to `stream.Transform`. So you can use `objectMode:true` if you are processing non-binary streams (or just use `through2.obj()`). + +The `options` argument is first, unlike standard convention, because if I'm passing in an anonymous function then I'd prefer for the options argument to not get lost at the end of the call: + +```js +fs.createReadStream('/tmp/important.dat') + .pipe(through2({ objectMode: true, allowHalfOpen: false }, function (chunk, enc, cb) { + + this.push(new Buffer('wut?')) + cb() + + }) + .pipe(fs.createWriteStream('/tmp/wut.txt')) +``` + +### transformFunction + +The `transformFunction` must have the following signature: `function (chunk, encoding, callback) {}`. A minimal implementation should call the `callback` function to indicate that the transformation is done, even if that transformation means discarding the chunk. + +To queue a new chunk, call `this.push(chunk)`—this can be called as many times as required before the `callback()` if you have multiple pieces to send on. + +If you **do not provide a `transformFunction`** then you will get a simple simple pass-through stream. + +### flushFunction + +The optional `flushFunction` is provided as the last argument (2nd or 3rd, depending on whether you've supplied options) is called just prior to the stream ending. Can be used to finish up any processing that may be in progress. + +through2.ctor([ options, ] transformFunction[, flushFunction ]) + +Instead of returning a `stream.Transform` instance, `through2.ctor()` returns a **constructor** for a custom Transform. This is useful when you want to use the same transform logic in multiple instances. + +```js +var FToC = through2.ctor({objectMode: true}, function (record, encoding, callback) { + if (record.temp != null && record.unit = "F") { + record.temp = ( ( record.temp - 32 ) * 5 ) / 9 + record.unit = "C" + } + this.push(record) + callback() +}) + +// Create instances of FToC like so: +var converter = new FToC() +// Or: +var converter = FToC() +// Or specify/override options when you instantiate, if you prefer: +var converter = FToC({objectMode: true}) +``` + +## License + +**through2** is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore new file mode 100644 index 00000000..38344f87 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/.npmignore @@ -0,0 +1,5 @@ +build/ +test/ +examples/ +fs.js +zlib.js \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE new file mode 100644 index 00000000..0c44ae71 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/LICENSE @@ -0,0 +1,27 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md new file mode 100644 index 00000000..be976683 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/README.md @@ -0,0 +1,768 @@ +# readable-stream + +A new class of streams for Node.js + +This module provides the new Stream base classes introduced in Node +v0.10, for use in Node v0.8. You can use it to have programs that +have to work with node v0.8, while being forward-compatible for v0.10 +and beyond. When you drop support for v0.8, you can remove this +module, and only use the native streams. + +This is almost exactly the same codebase as appears in Node v0.10. +However: + +1. The exported object is actually the Readable class. Decorating the + native `stream` module would be global pollution. +2. In v0.10, you can safely use `base64` as an argument to + `setEncoding` in Readable streams. However, in v0.8, the + StringDecoder class has no `end()` method, which is problematic for + Base64. So, don't use that, because it'll break and be weird. + +Other than that, the API is the same as `require('stream')` in v0.10, +so the API docs are reproduced below. + +---------- + + Stability: 2 - Unstable + +A stream is an abstract interface implemented by various objects in +Node. For example a request to an HTTP server is a stream, as is +stdout. Streams are readable, writable, or both. All streams are +instances of [EventEmitter][] + +You can load the Stream base classes by doing `require('stream')`. +There are base classes provided for Readable streams, Writable +streams, Duplex streams, and Transform streams. + +## Compatibility + +In earlier versions of Node, the Readable stream interface was +simpler, but also less powerful and less useful. + +* Rather than waiting for you to call the `read()` method, `'data'` + events would start emitting immediately. If you needed to do some + I/O to decide how to handle data, then you had to store the chunks + in some kind of buffer so that they would not be lost. +* The `pause()` method was advisory, rather than guaranteed. This + meant that you still had to be prepared to receive `'data'` events + even when the stream was in a paused state. + +In Node v0.10, the Readable class described below was added. For +backwards compatibility with older Node programs, Readable streams +switch into "old mode" when a `'data'` event handler is added, or when +the `pause()` or `resume()` methods are called. The effect is that, +even if you are not using the new `read()` method and `'readable'` +event, you no longer have to worry about losing `'data'` chunks. + +Most programs will continue to function normally. However, this +introduces an edge case in the following conditions: + +* No `'data'` event handler is added. +* The `pause()` and `resume()` methods are never called. + +For example, consider the following code: + +```javascript +// WARNING! BROKEN! +net.createServer(function(socket) { + + // we add an 'end' method, but never consume the data + socket.on('end', function() { + // It will never get here. + socket.end('I got your message (but didnt read it)\n'); + }); + +}).listen(1337); +``` + +In versions of node prior to v0.10, the incoming message data would be +simply discarded. However, in Node v0.10 and beyond, the socket will +remain paused forever. + +The workaround in this situation is to call the `resume()` method to +trigger "old mode" behavior: + +```javascript +// Workaround +net.createServer(function(socket) { + + socket.on('end', function() { + socket.end('I got your message (but didnt read it)\n'); + }); + + // start the flow of data, discarding it. + socket.resume(); + +}).listen(1337); +``` + +In addition to new Readable streams switching into old-mode, pre-v0.10 +style streams can be wrapped in a Readable class using the `wrap()` +method. + +## Class: stream.Readable + + + +A `Readable Stream` has the following methods, members, and events. + +Note that `stream.Readable` is an abstract class designed to be +extended with an underlying implementation of the `_read(size)` +method. (See below.) + +### new stream.Readable([options]) + +* `options` {Object} + * `highWaterMark` {Number} The maximum number of bytes to store in + the internal buffer before ceasing to read from the underlying + resource. Default=16kb + * `encoding` {String} If specified, then buffers will be decoded to + strings using the specified encoding. Default=null + * `objectMode` {Boolean} Whether this stream should behave + as a stream of objects. Meaning that stream.read(n) returns + a single value instead of a Buffer of size n + +In classes that extend the Readable class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### readable.\_read(size) + +* `size` {Number} Number of bytes to read asynchronously + +Note: **This function should NOT be called directly.** It should be +implemented by child classes, and called by the internal Readable +class methods only. + +All Readable stream implementations must provide a `_read` method +to fetch data from the underlying resource. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +When data is available, put it into the read queue by calling +`readable.push(chunk)`. If `push` returns false, then you should stop +reading. When `_read` is called again, you should start pushing more +data. + +The `size` argument is advisory. Implementations where a "read" is a +single call that returns data can use this to know how much data to +fetch. Implementations where that is not relevant, such as TCP or +TLS, may ignore this argument, and simply provide data whenever it +becomes available. There is no need, for example to "wait" until +`size` bytes are available before calling `stream.push(chunk)`. + +### readable.push(chunk) + +* `chunk` {Buffer | null | String} Chunk of data to push into the read queue +* return {Boolean} Whether or not more pushes should be performed + +Note: **This function should be called by Readable implementors, NOT +by consumers of Readable subclasses.** The `_read()` function will not +be called again until at least one `push(chunk)` call is made. If no +data is available, then you MAY call `push('')` (an empty string) to +allow a future `_read` call, without adding any data to the queue. + +The `Readable` class works by putting data into a read queue to be +pulled out later by calling the `read()` method when the `'readable'` +event fires. + +The `push()` method will explicitly insert some data into the read +queue. If it is called with `null` then it will signal the end of the +data. + +In some cases, you may be wrapping a lower-level source which has some +sort of pause/resume mechanism, and a data callback. In those cases, +you could wrap the low-level source object by doing something like +this: + +```javascript +// source is an object with readStop() and readStart() methods, +// and an `ondata` member that gets called when it has data, and +// an `onend` member that gets called when the data is over. + +var stream = new Readable(); + +source.ondata = function(chunk) { + // if push() returns false, then we need to stop reading from source + if (!stream.push(chunk)) + source.readStop(); +}; + +source.onend = function() { + stream.push(null); +}; + +// _read will be called when the stream wants to pull more data in +// the advisory size argument is ignored in this case. +stream._read = function(n) { + source.readStart(); +}; +``` + +### readable.unshift(chunk) + +* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue +* return {Boolean} Whether or not more pushes should be performed + +This is the corollary of `readable.push(chunk)`. Rather than putting +the data at the *end* of the read queue, it puts it at the *front* of +the read queue. + +This is useful in certain use-cases where a stream is being consumed +by a parser, which needs to "un-consume" some data that it has +optimistically pulled out of the source. + +```javascript +// A parser for a simple data protocol. +// The "header" is a JSON object, followed by 2 \n characters, and +// then a message body. +// +// Note: This can be done more simply as a Transform stream. See below. + +function SimpleProtocol(source, options) { + if (!(this instanceof SimpleProtocol)) + return new SimpleProtocol(options); + + Readable.call(this, options); + this._inBody = false; + this._sawFirstCr = false; + + // source is a readable stream, such as a socket or file + this._source = source; + + var self = this; + source.on('end', function() { + self.push(null); + }); + + // give it a kick whenever the source is readable + // read(0) will not consume any bytes + source.on('readable', function() { + self.read(0); + }); + + this._rawHeader = []; + this.header = null; +} + +SimpleProtocol.prototype = Object.create( + Readable.prototype, { constructor: { value: SimpleProtocol }}); + +SimpleProtocol.prototype._read = function(n) { + if (!this._inBody) { + var chunk = this._source.read(); + + // if the source doesn't have data, we don't have data yet. + if (chunk === null) + return this.push(''); + + // check if the chunk has a \n\n + var split = -1; + for (var i = 0; i < chunk.length; i++) { + if (chunk[i] === 10) { // '\n' + if (this._sawFirstCr) { + split = i; + break; + } else { + this._sawFirstCr = true; + } + } else { + this._sawFirstCr = false; + } + } + + if (split === -1) { + // still waiting for the \n\n + // stash the chunk, and try again. + this._rawHeader.push(chunk); + this.push(''); + } else { + this._inBody = true; + var h = chunk.slice(0, split); + this._rawHeader.push(h); + var header = Buffer.concat(this._rawHeader).toString(); + try { + this.header = JSON.parse(header); + } catch (er) { + this.emit('error', new Error('invalid simple protocol data')); + return; + } + // now, because we got some extra data, unshift the rest + // back into the read queue so that our consumer will see it. + var b = chunk.slice(split); + this.unshift(b); + + // and let them know that we are done parsing the header. + this.emit('header', this.header); + } + } else { + // from there on, just provide the data to our consumer. + // careful not to push(null), since that would indicate EOF. + var chunk = this._source.read(); + if (chunk) this.push(chunk); + } +}; + +// Usage: +var parser = new SimpleProtocol(source); +// Now parser is a readable stream that will emit 'header' +// with the parsed header data. +``` + +### readable.wrap(stream) + +* `stream` {Stream} An "old style" readable stream + +If you are using an older Node library that emits `'data'` events and +has a `pause()` method that is advisory only, then you can use the +`wrap()` method to create a Readable stream that uses the old stream +as its data source. + +For example: + +```javascript +var OldReader = require('./old-api-module.js').OldReader; +var oreader = new OldReader; +var Readable = require('stream').Readable; +var myReader = new Readable().wrap(oreader); + +myReader.on('readable', function() { + myReader.read(); // etc. +}); +``` + +### Event: 'readable' + +When there is data ready to be consumed, this event will fire. + +When this event emits, call the `read()` method to consume the data. + +### Event: 'end' + +Emitted when the stream has received an EOF (FIN in TCP terminology). +Indicates that no more `'data'` events will happen. If the stream is +also writable, it may be possible to continue writing. + +### Event: 'data' + +The `'data'` event emits either a `Buffer` (by default) or a string if +`setEncoding()` was used. + +Note that adding a `'data'` event listener will switch the Readable +stream into "old mode", where data is emitted as soon as it is +available, rather than waiting for you to call `read()` to consume it. + +### Event: 'error' + +Emitted if there was an error receiving data. + +### Event: 'close' + +Emitted when the underlying resource (for example, the backing file +descriptor) has been closed. Not all streams will emit this. + +### readable.setEncoding(encoding) + +Makes the `'data'` event emit a string instead of a `Buffer`. `encoding` +can be `'utf8'`, `'utf16le'` (`'ucs2'`), `'ascii'`, or `'hex'`. + +The encoding can also be set by specifying an `encoding` field to the +constructor. + +### readable.read([size]) + +* `size` {Number | null} Optional number of bytes to read. +* Return: {Buffer | String | null} + +Note: **This function SHOULD be called by Readable stream users.** + +Call this method to consume data once the `'readable'` event is +emitted. + +The `size` argument will set a minimum number of bytes that you are +interested in. If not set, then the entire content of the internal +buffer is returned. + +If there is no data to consume, or if there are fewer bytes in the +internal buffer than the `size` argument, then `null` is returned, and +a future `'readable'` event will be emitted when more is available. + +Calling `stream.read(0)` will always return `null`, and will trigger a +refresh of the internal buffer, but otherwise be a no-op. + +### readable.pipe(destination, [options]) + +* `destination` {Writable Stream} +* `options` {Object} Optional + * `end` {Boolean} Default=true + +Connects this readable stream to `destination` WriteStream. Incoming +data on this stream gets written to `destination`. Properly manages +back-pressure so that a slow destination will not be overwhelmed by a +fast readable stream. + +This function returns the `destination` stream. + +For example, emulating the Unix `cat` command: + + process.stdin.pipe(process.stdout); + +By default `end()` is called on the destination when the source stream +emits `end`, so that `destination` is no longer writable. Pass `{ end: +false }` as `options` to keep the destination stream open. + +This keeps `writer` open so that "Goodbye" can be written at the +end. + + reader.pipe(writer, { end: false }); + reader.on("end", function() { + writer.end("Goodbye\n"); + }); + +Note that `process.stderr` and `process.stdout` are never closed until +the process exits, regardless of the specified options. + +### readable.unpipe([destination]) + +* `destination` {Writable Stream} Optional + +Undo a previously established `pipe()`. If no destination is +provided, then all previously established pipes are removed. + +### readable.pause() + +Switches the readable stream into "old mode", where data is emitted +using a `'data'` event rather than being buffered for consumption via +the `read()` method. + +Ceases the flow of data. No `'data'` events are emitted while the +stream is in a paused state. + +### readable.resume() + +Switches the readable stream into "old mode", where data is emitted +using a `'data'` event rather than being buffered for consumption via +the `read()` method. + +Resumes the incoming `'data'` events after a `pause()`. + + +## Class: stream.Writable + + + +A `Writable` Stream has the following methods, members, and events. + +Note that `stream.Writable` is an abstract class designed to be +extended with an underlying implementation of the +`_write(chunk, encoding, cb)` method. (See below.) + +### new stream.Writable([options]) + +* `options` {Object} + * `highWaterMark` {Number} Buffer level when `write()` starts + returning false. Default=16kb + * `decodeStrings` {Boolean} Whether or not to decode strings into + Buffers before passing them to `_write()`. Default=true + +In classes that extend the Writable class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### writable.\_write(chunk, encoding, callback) + +* `chunk` {Buffer | String} The chunk to be written. Will always + be a buffer unless the `decodeStrings` option was set to `false`. +* `encoding` {String} If the chunk is a string, then this is the + encoding type. Ignore chunk is a buffer. Note that chunk will + **always** be a buffer unless the `decodeStrings` option is + explicitly set to `false`. +* `callback` {Function} Call this function (optionally with an error + argument) when you are done processing the supplied chunk. + +All Writable stream implementations must provide a `_write` method to +send data to the underlying resource. + +Note: **This function MUST NOT be called directly.** It should be +implemented by child classes, and called by the internal Writable +class methods only. + +Call the callback using the standard `callback(error)` pattern to +signal that the write completed successfully or with an error. + +If the `decodeStrings` flag is set in the constructor options, then +`chunk` may be a string rather than a Buffer, and `encoding` will +indicate the sort of string that it is. This is to support +implementations that have an optimized handling for certain string +data encodings. If you do not explicitly set the `decodeStrings` +option to `false`, then you can safely ignore the `encoding` argument, +and assume that `chunk` will always be a Buffer. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + + +### writable.write(chunk, [encoding], [callback]) + +* `chunk` {Buffer | String} Data to be written +* `encoding` {String} Optional. If `chunk` is a string, then encoding + defaults to `'utf8'` +* `callback` {Function} Optional. Called when this chunk is + successfully written. +* Returns {Boolean} + +Writes `chunk` to the stream. Returns `true` if the data has been +flushed to the underlying resource. Returns `false` to indicate that +the buffer is full, and the data will be sent out in the future. The +`'drain'` event will indicate when the buffer is empty again. + +The specifics of when `write()` will return false, is determined by +the `highWaterMark` option provided to the constructor. + +### writable.end([chunk], [encoding], [callback]) + +* `chunk` {Buffer | String} Optional final data to be written +* `encoding` {String} Optional. If `chunk` is a string, then encoding + defaults to `'utf8'` +* `callback` {Function} Optional. Called when the final chunk is + successfully written. + +Call this method to signal the end of the data being written to the +stream. + +### Event: 'drain' + +Emitted when the stream's write queue empties and it's safe to write +without buffering again. Listen for it when `stream.write()` returns +`false`. + +### Event: 'close' + +Emitted when the underlying resource (for example, the backing file +descriptor) has been closed. Not all streams will emit this. + +### Event: 'finish' + +When `end()` is called and there are no more chunks to write, this +event is emitted. + +### Event: 'pipe' + +* `source` {Readable Stream} + +Emitted when the stream is passed to a readable stream's pipe method. + +### Event 'unpipe' + +* `source` {Readable Stream} + +Emitted when a previously established `pipe()` is removed using the +source Readable stream's `unpipe()` method. + +## Class: stream.Duplex + + + +A "duplex" stream is one that is both Readable and Writable, such as a +TCP socket connection. + +Note that `stream.Duplex` is an abstract class designed to be +extended with an underlying implementation of the `_read(size)` +and `_write(chunk, encoding, callback)` methods as you would with a Readable or +Writable stream class. + +Since JavaScript doesn't have multiple prototypal inheritance, this +class prototypally inherits from Readable, and then parasitically from +Writable. It is thus up to the user to implement both the lowlevel +`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method +on extension duplex classes. + +### new stream.Duplex(options) + +* `options` {Object} Passed to both Writable and Readable + constructors. Also has the following fields: + * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then + the stream will automatically end the readable side when the + writable side ends and vice versa. + +In classes that extend the Duplex class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +## Class: stream.Transform + +A "transform" stream is a duplex stream where the output is causally +connected in some way to the input, such as a zlib stream or a crypto +stream. + +There is no requirement that the output be the same size as the input, +the same number of chunks, or arrive at the same time. For example, a +Hash stream will only ever have a single chunk of output which is +provided when the input is ended. A zlib stream will either produce +much smaller or much larger than its input. + +Rather than implement the `_read()` and `_write()` methods, Transform +classes must implement the `_transform()` method, and may optionally +also implement the `_flush()` method. (See below.) + +### new stream.Transform([options]) + +* `options` {Object} Passed to both Writable and Readable + constructors. + +In classes that extend the Transform class, make sure to call the +constructor so that the buffering settings can be properly +initialized. + +### transform.\_transform(chunk, encoding, callback) + +* `chunk` {Buffer | String} The chunk to be transformed. Will always + be a buffer unless the `decodeStrings` option was set to `false`. +* `encoding` {String} If the chunk is a string, then this is the + encoding type. (Ignore if `decodeStrings` chunk is a buffer.) +* `callback` {Function} Call this function (optionally with an error + argument) when you are done processing the supplied chunk. + +Note: **This function MUST NOT be called directly.** It should be +implemented by child classes, and called by the internal Transform +class methods only. + +All Transform stream implementations must provide a `_transform` +method to accept input and produce output. + +`_transform` should do whatever has to be done in this specific +Transform class, to handle the bytes being written, and pass them off +to the readable portion of the interface. Do asynchronous I/O, +process things, and so on. + +Call `transform.push(outputChunk)` 0 or more times to generate output +from this input chunk, depending on how much data you want to output +as a result of this chunk. + +Call the callback function only when the current chunk is completely +consumed. Note that there may or may not be output as a result of any +particular input chunk. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +### transform.\_flush(callback) + +* `callback` {Function} Call this function (optionally with an error + argument) when you are done flushing any remaining data. + +Note: **This function MUST NOT be called directly.** It MAY be implemented +by child classes, and if so, will be called by the internal Transform +class methods only. + +In some cases, your transform operation may need to emit a bit more +data at the end of the stream. For example, a `Zlib` compression +stream will store up some internal state so that it can optimally +compress the output. At the end, however, it needs to do the best it +can with what is left, so that the data will be complete. + +In those cases, you can implement a `_flush` method, which will be +called at the very end, after all the written data is consumed, but +before emitting `end` to signal the end of the readable side. Just +like with `_transform`, call `transform.push(chunk)` zero or more +times, as appropriate, and call `callback` when the flush operation is +complete. + +This method is prefixed with an underscore because it is internal to +the class that defines it, and should not be called directly by user +programs. However, you **are** expected to override this method in +your own extension classes. + +### Example: `SimpleProtocol` parser + +The example above of a simple protocol parser can be implemented much +more simply by using the higher level `Transform` stream class. + +In this example, rather than providing the input as an argument, it +would be piped into the parser, which is a more idiomatic Node stream +approach. + +```javascript +function SimpleProtocol(options) { + if (!(this instanceof SimpleProtocol)) + return new SimpleProtocol(options); + + Transform.call(this, options); + this._inBody = false; + this._sawFirstCr = false; + this._rawHeader = []; + this.header = null; +} + +SimpleProtocol.prototype = Object.create( + Transform.prototype, { constructor: { value: SimpleProtocol }}); + +SimpleProtocol.prototype._transform = function(chunk, encoding, done) { + if (!this._inBody) { + // check if the chunk has a \n\n + var split = -1; + for (var i = 0; i < chunk.length; i++) { + if (chunk[i] === 10) { // '\n' + if (this._sawFirstCr) { + split = i; + break; + } else { + this._sawFirstCr = true; + } + } else { + this._sawFirstCr = false; + } + } + + if (split === -1) { + // still waiting for the \n\n + // stash the chunk, and try again. + this._rawHeader.push(chunk); + } else { + this._inBody = true; + var h = chunk.slice(0, split); + this._rawHeader.push(h); + var header = Buffer.concat(this._rawHeader).toString(); + try { + this.header = JSON.parse(header); + } catch (er) { + this.emit('error', new Error('invalid simple protocol data')); + return; + } + // and let them know that we are done parsing the header. + this.emit('header', this.header); + + // now, because we got some extra data, emit this first. + this.push(b); + } + } else { + // from there on, just provide the data to our consumer as-is. + this.push(b); + } + done(); +}; + +var parser = new SimpleProtocol(); +source.pipe(parser) + +// Now parser is a readable stream that will emit 'header' +// with the parsed header data. +``` + + +## Class: stream.PassThrough + +This is a trivial implementation of a `Transform` stream that simply +passes the input bytes across to the output. Its purpose is mainly +for examples and testing, but there are occasionally use cases where +it can come in handy. + + +[EventEmitter]: events.html#events_class_events_eventemitter diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js new file mode 100644 index 00000000..ca807af8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/duplex.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_duplex.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch new file mode 100644 index 00000000..0ad71a1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/float.patch @@ -0,0 +1,68 @@ +diff --git a/lib/_stream_duplex.js b/lib/_stream_duplex.js +index c5a741c..a2e0d8e 100644 +--- a/lib/_stream_duplex.js ++++ b/lib/_stream_duplex.js +@@ -26,8 +26,8 @@ + + module.exports = Duplex; + var util = require('util'); +-var Readable = require('_stream_readable'); +-var Writable = require('_stream_writable'); ++var Readable = require('./_stream_readable'); ++var Writable = require('./_stream_writable'); + + util.inherits(Duplex, Readable); + +diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js +index a5e9864..330c247 100644 +--- a/lib/_stream_passthrough.js ++++ b/lib/_stream_passthrough.js +@@ -25,7 +25,7 @@ + + module.exports = PassThrough; + +-var Transform = require('_stream_transform'); ++var Transform = require('./_stream_transform'); + var util = require('util'); + util.inherits(PassThrough, Transform); + +diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js +index 2259d2e..e6681ee 100644 +--- a/lib/_stream_readable.js ++++ b/lib/_stream_readable.js +@@ -23,6 +23,9 @@ module.exports = Readable; + Readable.ReadableState = ReadableState; + + var EE = require('events').EventEmitter; ++if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { ++ return emitter.listeners(type).length; ++}; + var Stream = require('stream'); + var util = require('util'); + var StringDecoder; +diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js +index e925b4b..f08b05e 100644 +--- a/lib/_stream_transform.js ++++ b/lib/_stream_transform.js +@@ -64,7 +64,7 @@ + + module.exports = Transform; + +-var Duplex = require('_stream_duplex'); ++var Duplex = require('./_stream_duplex'); + var util = require('util'); + util.inherits(Transform, Duplex); + +diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js +index a26f711..56ca47d 100644 +--- a/lib/_stream_writable.js ++++ b/lib/_stream_writable.js +@@ -109,7 +109,7 @@ function WritableState(options, stream) { + function Writable(options) { + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. +- if (!(this instanceof Writable) && !(this instanceof Stream.Duplex)) ++ if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) + return new Writable(options); + + this._writableState = new WritableState(options, this); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js new file mode 100644 index 00000000..a2e0d8e0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_duplex.js @@ -0,0 +1,69 @@ +// 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. + +// 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. + +module.exports = Duplex; +var util = require('util'); +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +Object.keys(Writable.prototype).forEach(function(method) { + 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. + process.nextTick(this.end.bind(this)); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js new file mode 100644 index 00000000..330c247d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_passthrough.js @@ -0,0 +1,41 @@ +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); +var util = require('util'); +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); +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js new file mode 100644 index 00000000..323f3305 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js @@ -0,0 +1,927 @@ +// 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 = Readable; +Readable.ReadableState = ReadableState; + +var EE = require('events').EventEmitter; +if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { + return emitter.listeners(type).length; +}; +var Stream = require('stream'); +var util = require('util'); +var StringDecoder; + +util.inherits(Readable, Stream); + +function ReadableState(options, stream) { + options = options || {}; + + // 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; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + this.buffer = []; + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = false; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // In streams that never have any data, and do push(null) right away, + // the consumer can miss the 'end' event if they do some I/O before + // consuming the stream. So, we don't emit('end') until some reading + // happens. + this.calledRead = 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, becuase 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; + + + // 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; + + // 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; + } +} + +function Readable(options) { + if (!(this instanceof Readable)) + return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + 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 (typeof chunk === 'string' && !state.objectMode) { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = new Buffer(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); +}; + +function readableAddChunk(stream, state, chunk, encoding, addToFront) { + var er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (chunk === null || chunk === undefined) { + state.reading = false; + if (!state.ended) + 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 { + if (state.decoder && !addToFront && !encoding) + chunk = state.decoder.write(chunk); + + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) { + state.buffer.unshift(chunk); + } else { + state.reading = false; + 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; +}; + +// Don't raise the hwm > 128MB +var MAX_HWM = 0x800000; +function roundUpToNextPowerOf2(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 + n--; + for (var p = 1; p < 32; p <<= 1) n |= n >> p; + n++; + } + return n; +} + +function howMuchToRead(n, state) { + if (state.length === 0 && state.ended) + return 0; + + if (state.objectMode) + return n === 0 ? 0 : 1; + + if (isNaN(n) || n === null) { + // 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 = roundUpToNextPowerOf2(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) { + var state = this._readableState; + state.calledRead = true; + 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)) { + 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; + + // if we currently have less than the highWaterMark, then also read some + if (state.length - n <= state.highWaterMark) + doRead = true; + + // 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; + + if (doRead) { + 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 called its callback 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 happened to read() exactly the remaining amount in the + // buffer, and the EOF has been seen at this point, then make sure + // that we emit 'end' on the very next tick. + if (state.ended && !state.endEmitted && state.length === 0) + endReadable(this); + + return ret; +}; + +function chunkInvalid(state, chunk) { + var er = null; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode && + !er) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + + +function onEofChunk(stream, state) { + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // if we've ended and we have some data left, then emit + // 'readable' now to make sure it gets picked up. + if (state.length > 0) + emitReadable(stream); + else + endReadable(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) + return; + + state.emittedReadable = true; + if (state.sync) + process.nextTick(function() { + emitReadable_(stream); + }); + else + emitReadable_(stream); +} + +function emitReadable_(stream) { + stream.emit('readable'); +} + + +// 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; + process.nextTick(function() { + maybeReadMore_(stream, state); + }); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && + state.length < state.highWaterMark) { + 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; + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && + dest !== process.stdout && + dest !== process.stderr; + + var endFn = doEnd ? onend : cleanup; + if (state.endEmitted) + process.nextTick(endFn); + else + src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable) { + if (readable !== src) return; + cleanup(); + } + + function 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); + + function 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); + + // 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 (!dest._writableState || dest._writableState.needDrain) + ondrain(); + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + unpipe(); + dest.removeListener('error', onerror); + if (EE.listenerCount(dest, 'error') === 0) + dest.emit('error', er); + } + // This is a brutally ugly hack to make sure that our error handler + // is attached before any userland ones. NEVER DO THIS. + if (!dest._events || !dest._events.error) + dest.on('error', onerror); + else if (Array.isArray(dest._events.error)) + dest._events.error.unshift(onerror); + else + dest._events.error = [onerror, dest._events.error]; + + + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function 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) { + // the handler that waits for readable events after all + // the data gets sucked out in flow. + // This would be easier to follow with a .once() handler + // in flow(), but that is too slow. + this.on('readable', pipeOnReadable); + + state.flowing = true; + process.nextTick(function() { + flow(src); + }); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function() { + var dest = this; + var state = src._readableState; + state.awaitDrain--; + if (state.awaitDrain === 0) + flow(src); + }; +} + +function flow(src) { + var state = src._readableState; + var chunk; + state.awaitDrain = 0; + + function write(dest, i, list) { + var written = dest.write(chunk); + if (false === written) { + state.awaitDrain++; + } + } + + while (state.pipesCount && null !== (chunk = src.read())) { + + if (state.pipesCount === 1) + write(state.pipes, 0, null); + else + state.pipes.forEach(write); + + src.emit('data', chunk); + + // if anyone needs a drain, then we have to wait for that. + if (state.awaitDrain > 0) + return; + } + + // if every destination was unpiped, either before entering this + // function, or in the while loop, then stop flowing. + // + // NB: This is a pretty rare edge case. + if (state.pipesCount === 0) { + state.flowing = false; + + // if there were data event listeners added, then switch to old mode. + if (EE.listenerCount(src, 'data') > 0) + emitDataEvents(src); + return; + } + + // at this point, no one needed a drain, so we just ran out of data + // on the next readable event, start it over again. + state.ranOut = true; +} + +function pipeOnReadable() { + if (this._readableState.ranOut) { + this._readableState.ranOut = false; + flow(this); + } +} + + +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; + this.removeListener('readable', pipeOnReadable); + 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; + this.removeListener('readable', pipeOnReadable); + 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 = state.pipes.indexOf(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 (ev === 'data' && !this._readableState.flowing) + emitDataEvents(this); + + if (ev === 'readable' && this.readable) { + var state = this._readableState; + if (!state.readableListening) { + state.readableListening = true; + state.emittedReadable = false; + state.needReadable = true; + if (!state.reading) { + this.read(0); + } else if (state.length) { + emitReadable(this, state); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +// 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() { + emitDataEvents(this); + this.read(0); + this.emit('resume'); +}; + +Readable.prototype.pause = function() { + emitDataEvents(this, true); + this.emit('pause'); +}; + +function emitDataEvents(stream, startPaused) { + var state = stream._readableState; + + if (state.flowing) { + // https://github.com/isaacs/readable-stream/issues/16 + throw new Error('Cannot switch to old mode now.'); + } + + var paused = startPaused || false; + var readable = false; + + // convert to an old-style stream. + stream.readable = true; + stream.pipe = Stream.prototype.pipe; + stream.on = stream.addListener = Stream.prototype.on; + + stream.on('readable', function() { + readable = true; + + var c; + while (!paused && (null !== (c = stream.read()))) + stream.emit('data', c); + + if (c === null) { + readable = false; + stream._readableState.needReadable = true; + } + }); + + stream.pause = function() { + paused = true; + this.emit('pause'); + }; + + stream.resume = function() { + paused = false; + if (readable) + process.nextTick(function() { + stream.emit('readable'); + }); + else + this.read(0); + this.emit('resume'); + }; + + // now make it start, just in case it hadn't already. + stream.emit('readable'); +} + +// 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() { + 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) { + if (state.decoder) + chunk = state.decoder.write(chunk); + if (!chunk || !state.objectMode && !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 (typeof stream[i] === 'function' && + typeof this[i] === 'undefined') { + this[i] = function(method) { return function() { + return stream[method].apply(stream, arguments); + }}(i); + } + } + + // proxy certain important events. + var events = ['error', 'close', 'destroy', 'pause', 'resume']; + events.forEach(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) { + 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 + 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 = new Buffer(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.calledRead) { + state.ended = true; + process.nextTick(function() { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } + }); + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js new file mode 100644 index 00000000..707e4b3b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js @@ -0,0 +1,205 @@ +// 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. + + +// 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. + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); +var util = require('util'); +util.inherits(Transform, Duplex); + + +function TransformState(options, stream) { + this.afterTransform = function(er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = 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); + + if (cb) + 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); + + var ts = this._transformState = new TransformState(options, 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; + + this.once('finish', function() { + if ('function' === typeof this._flush) + 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 rs = stream._readableState; + 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); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js new file mode 100644 index 00000000..9eaf4ec2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js @@ -0,0 +1,371 @@ +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, cb), and it'll handle all +// the drain event emission and buffering. + +module.exports = Writable; +Writable.WritableState = WritableState; + +var util = require('util'); +var assert = require('assert'); +var Stream = require('stream'); + +util.inherits(Writable, Stream); + +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; +} + +function WritableState(options, stream) { + options = options || {}; + + // 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; + this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + // 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; + + // 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, becuase 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.buffer = []; +} + +function Writable(options) { + // Writable ctor is applied to Duplexes, though they're not + // instanceof Writable, they're instanceof Readable. + if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) + return new Writable(options); + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + 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, state, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + process.nextTick(function() { + 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; + if (!Buffer.isBuffer(chunk) && + 'string' !== typeof chunk && + chunk !== null && + chunk !== undefined && + !state.objectMode) { + var er = new TypeError('Invalid non-string/buffer chunk'); + stream.emit('error', er); + process.nextTick(function() { + 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 = function() {}; + + if (state.ended) + writeAfterEnd(this, state, cb); + else if (validChunk(this, state, chunk, cb)) + ret = writeOrBuffer(this, state, chunk, encoding, cb); + + return ret; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && + state.decodeStrings !== false && + typeof chunk === 'string') { + chunk = new Buffer(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.buffer.push(new WriteReq(chunk, encoding, cb)); + else + doWrite(stream, state, len, chunk, encoding, cb); + + return ret; +} + +function doWrite(stream, state, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + if (sync) + process.nextTick(function() { + cb(er); + }); + else + cb(er); + + 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(stream, state); + + if (!finished && !state.bufferProcessing && state.buffer.length) + clearBuffer(stream, state); + + if (sync) { + process.nextTick(function() { + afterWrite(stream, state, finished, cb); + }); + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) + onwriteDrain(stream, state); + cb(); + if (finished) + 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; + + for (var c = 0; c < state.buffer.length; c++) { + var entry = state.buffer[c]; + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, len, chunk, encoding, cb); + + // 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) { + c++; + break; + } + } + + state.bufferProcessing = false; + if (c < state.buffer.length) + state.buffer = state.buffer.slice(c); + else + state.buffer.length = 0; +} + +Writable.prototype._write = function(chunk, encoding, cb) { + cb(new Error('not implemented')); +}; + +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 (typeof chunk !== 'undefined' && chunk !== null) + this.write(chunk, encoding); + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) + endWritable(this, state, cb); +}; + + +function needFinish(stream, state) { + return (state.ending && + state.length === 0 && + !state.finished && + !state.writing); +} + +function finishMaybe(stream, state) { + var need = needFinish(stream, state); + if (need) { + state.finished = true; + stream.emit('finish'); + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) + process.nextTick(cb); + else + stream.once('finish', cb); + } + state.ended = true; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore new file mode 100644 index 00000000..b512c09d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/.npmignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE new file mode 100644 index 00000000..6de584a4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/LICENSE @@ -0,0 +1,20 @@ +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. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md new file mode 100644 index 00000000..4d2aa001 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/README.md @@ -0,0 +1,7 @@ +**string_decoder.js** (`require('string_decoder')`) from Node.js core + +Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. + +Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** + +The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js new file mode 100755 index 00000000..46470cfd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/build.js @@ -0,0 +1,94 @@ +#!/usr/bin/env node + +const hyperquest = require('hyperzip')(require('hyperdirect')) + , bl = require('bl') + , fs = require('fs') + , path = require('path') + , cheerio = require('cheerio') + + , files = require('./files') + , testReplace = require('./test-replacements') + + , srcurlpfx = 'https://raw.github.com/joyent/node/v' + process.argv[2] + '-release/' + , libsrcurl = srcurlpfx + 'lib/' + , testsrcurl = srcurlpfx + 'test/simple/' + , testlisturl = 'https://github.com/joyent/node/tree/v' + process.argv[2] + '-release/test/simple' + , libourroot = path.join(__dirname, '../') + , testourroot = path.join(__dirname, '../test/simple/') + + +function processFile (url, out, replacements) { + hyperquest(url).pipe(bl(function (err, data) { + if (err) + throw err + + data = data.toString() + replacements.forEach(function (replacement) { + data = data.replace.apply(data, replacement) + }) + + fs.writeFile(out, data, 'utf8', function (err) { + if (err) + throw err + + console.log('Wrote', out) + }) + })) +} + +function processLibFile (file) { + var replacements = files[file] + , url = libsrcurl + file + , out = path.join(libourroot, replacements.out || file) + + processFile(url, out, replacements) +} + + +function processTestFile (file) { + var replacements = testReplace.all + , url = testsrcurl + file + , out = path.join(testourroot, file) + + if (testReplace[file]) + replacements = replacements.concat(testReplace[file]) + + processFile(url, out, replacements) +} + + +if (!/0\.1\d\.\d+/.test(process.argv[2])) { + console.log('Usage: build.js ') + return process.exit(-1) +} + + +//-------------------------------------------------------------------- +// Grab & process files in ../lib/ + +Object.keys(files).forEach(processLibFile) + +//-------------------------------------------------------------------- +// Discover, grab and process all test-string-decoder* files on joyent/node + +hyperquest(testlisturl).pipe(bl(function (err, data) { + if (err) + throw err + + var $ = cheerio.load(data.toString()) + + $('table.files .js-directory-link').each(function () { + var file = $(this).text() + if (/^test-string-decoder/.test(file) || file == 'common.js') + processTestFile(file) + }) +})) + +//-------------------------------------------------------------------- +// Grab the joyent/node test/common.js + +processFile( + testsrcurl + '../common.js' + , path.join(testourroot, '../common.js') + , testReplace['common.js'] +) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js new file mode 100644 index 00000000..7396a4f4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/files.js @@ -0,0 +1,36 @@ +/* This file lists the files to be fetched from the node repo + * in the /lib/ directory which will be placed in the ../lib/ + * directory after having each of the "replacements" in the + * array for that file applied to it. The replacements are + * simply the arguments to String#replace, so they can be + * strings, regexes, functions. + */ + +module.exports['string_decoder.js'] = [ + + // pull in Bufer as a require + // add Buffer.isEncoding where missing + [ + /^(\/\/ USE OR OTHER DEALINGS IN THE SOFTWARE\.)/m + , '$1\n\nvar Buffer = require(\'buffer\').Buffer;' + + '\n' + + '\nvar isBufferEncoding = Buffer.isEncoding' + + '\n || function(encoding) {' + + '\n switch (encoding && encoding.toLowerCase()) {' + + '\n 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;' + + '\n default: return false;' + + '\n }' + + '\n }' + + '\n' + + ] + + // use custom Buffer.isEncoding reference + , [ + /Buffer\.isEncoding\(/g + , 'isBufferEncoding\(' + ] + +] + +module.exports['string_decoder.js'].out = 'index.js' \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json new file mode 100644 index 00000000..f7ee6a46 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/package.json @@ -0,0 +1,12 @@ +{ + "name": "string_decoder-build", + "version": "0.0.0", + "description": "", + "main": "build.js", + "dependencies": { + "bl": "~0.6.0", + "hyperzip": "0.0.0", + "hyperdirect": "0.0.0", + "cheerio": "~0.13.1" + } +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js new file mode 100644 index 00000000..5bbf6028 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/build/test-replacements.js @@ -0,0 +1,24 @@ +module.exports.all = [ + [ + /require\(['"]string_decoder['"]\)/g + , 'require(\'../../\')' + ] + +] + +module.exports['common.js'] = [ + [ + /^ setImmediate,$/m + , ' typeof setImmediate == \'undefined\' ? null : setImmediate,' + ] + + , [ + /^ clearImmediate,$/m + , ' typeof clearImmediate == \'undefined\' ? null : clearImmediate,' + ] + + , [ + /^ global];$/m + , ' global].filter(Boolean);' + ] +] diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js new file mode 100644 index 00000000..2e44a03e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/index.js @@ -0,0 +1,200 @@ +// 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); + } +} + +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; + } + + this.charBuffer = new Buffer(6); + this.charReceived = 0; + this.charLength = 0; +}; + + +StringDecoder.prototype.write = function(buffer) { + var charStr = ''; + var offset = 0; + + // 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 i = (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, offset, i); + this.charReceived += (i - offset); + offset = i; + + if (this.charReceived < this.charLength) { + // still not enough chars in this buffer? wait for more ... + return ''; + } + + // get the character that was split + charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); + + // 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 (i == buffer.length) return charStr; + + // otherwise cut off the characters end from the beginning of this buffer + buffer = buffer.slice(i, buffer.length); + break; + } + + var lenIncomplete = this.detectIncompleteChar(buffer); + + var end = buffer.length; + if (this.charLength) { + // buffer the incomplete character bytes we got + buffer.copy(this.charBuffer, 0, buffer.length - lenIncomplete, end); + this.charReceived = lenIncomplete; + end -= lenIncomplete; + } + + charStr += buffer.toString(this.encoding, 0, end); + + var end = charStr.length - 1; + var charCode = charStr.charCodeAt(end); + // 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); + this.charBuffer.write(charStr.charAt(charStr.length - 1), this.encoding); + return charStr.substring(0, end); + } + + // or just emit the charStr + return charStr; +}; + +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; + } + } + + return 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) { + var incomplete = this.charReceived = buffer.length % 2; + this.charLength = incomplete ? 2 : 0; + return incomplete; +} + +function base64DetectIncompleteChar(buffer) { + var incomplete = this.charReceived = buffer.length % 3; + this.charLength = incomplete ? 3 : 0; + return incomplete; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json new file mode 100644 index 00000000..c7cac1a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/package.json @@ -0,0 +1,36 @@ +{ + "name": "string_decoder", + "version": "0.10.25", + "description": "The string_decoder module from Node core", + "main": "index.js", + "dependencies": {}, + "devDependencies": { + "tap": "~0.4.8" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/rvagg/string_decoder.git" + }, + "homepage": "https://github.com/rvagg/string_decoder", + "keywords": [ + "string", + "decoder", + "browser", + "browserify" + ], + "license": "MIT", + "readme": "**string_decoder.js** (`require('string_decoder')`) from Node.js core\n\nCopyright Joyent, Inc. and other Node contributors. See LICENCE file for details.\n\nVersion numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.**\n\nThe *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version.", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/rvagg/string_decoder/issues" + }, + "_id": "string_decoder@0.10.25", + "dist": { + "shasum": "aa026a29a0177ff13c8df4472dcda2f26d646900" + }, + "_from": "string_decoder@~0.10.x", + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js new file mode 100644 index 00000000..ed5ff08d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/common.js @@ -0,0 +1,200 @@ +// 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 path = require('path'); +var assert = require('assert'); + +exports.testDir = path.dirname(__filename); +exports.fixturesDir = path.join(exports.testDir, 'fixtures'); +exports.libDir = path.join(exports.testDir, '../lib'); +exports.tmpDir = path.join(exports.testDir, 'tmp'); +exports.PORT = +process.env.NODE_COMMON_PORT || 12346; + +if (process.platform === 'win32') { + exports.PIPE = '\\\\.\\pipe\\libuv-test'; +} else { + exports.PIPE = exports.tmpDir + '/test.sock'; +} + +var util = require('util'); +for (var i in util) exports[i] = util[i]; +//for (var i in exports) global[i] = exports[i]; + +function protoCtrChain(o) { + var result = []; + for (; o; o = o.__proto__) { result.push(o.constructor); } + return result.join(); +} + +exports.indirectInstanceOf = function(obj, cls) { + if (obj instanceof cls) { return true; } + var clsChain = protoCtrChain(cls.prototype); + var objChain = protoCtrChain(obj); + return objChain.slice(-clsChain.length) === clsChain; +}; + + +exports.ddCommand = function(filename, kilobytes) { + if (process.platform === 'win32') { + var p = path.resolve(exports.fixturesDir, 'create-file.js'); + return '"' + process.argv[0] + '" "' + p + '" "' + + filename + '" ' + (kilobytes * 1024); + } else { + return 'dd if=/dev/zero of="' + filename + '" bs=1024 count=' + kilobytes; + } +}; + + +exports.spawnCat = function(options) { + var spawn = require('child_process').spawn; + + if (process.platform === 'win32') { + return spawn('more', [], options); + } else { + return spawn('cat', [], options); + } +}; + + +exports.spawnPwd = function(options) { + var spawn = require('child_process').spawn; + + if (process.platform === 'win32') { + return spawn('cmd.exe', ['/c', 'cd'], options); + } else { + return spawn('pwd', [], options); + } +}; + + +// Turn this off if the test should not check for global leaks. +exports.globalCheck = true; + +process.on('exit', function() { + if (!exports.globalCheck) return; + var knownGlobals = [setTimeout, + setInterval, + typeof setImmediate == 'undefined' ? null : setImmediate, + clearTimeout, + clearInterval, + typeof clearImmediate == 'undefined' ? null : clearImmediate, + console, + Buffer, + process, + global].filter(Boolean); + + if (global.gc) { + knownGlobals.push(gc); + } + + if (global.DTRACE_HTTP_SERVER_RESPONSE) { + knownGlobals.push(DTRACE_HTTP_SERVER_RESPONSE); + knownGlobals.push(DTRACE_HTTP_SERVER_REQUEST); + knownGlobals.push(DTRACE_HTTP_CLIENT_RESPONSE); + knownGlobals.push(DTRACE_HTTP_CLIENT_REQUEST); + knownGlobals.push(DTRACE_NET_STREAM_END); + knownGlobals.push(DTRACE_NET_SERVER_CONNECTION); + knownGlobals.push(DTRACE_NET_SOCKET_READ); + knownGlobals.push(DTRACE_NET_SOCKET_WRITE); + } + if (global.COUNTER_NET_SERVER_CONNECTION) { + knownGlobals.push(COUNTER_NET_SERVER_CONNECTION); + knownGlobals.push(COUNTER_NET_SERVER_CONNECTION_CLOSE); + knownGlobals.push(COUNTER_HTTP_SERVER_REQUEST); + knownGlobals.push(COUNTER_HTTP_SERVER_RESPONSE); + knownGlobals.push(COUNTER_HTTP_CLIENT_REQUEST); + knownGlobals.push(COUNTER_HTTP_CLIENT_RESPONSE); + } + + if (global.ArrayBuffer) { + knownGlobals.push(ArrayBuffer); + knownGlobals.push(Int8Array); + knownGlobals.push(Uint8Array); + knownGlobals.push(Uint8ClampedArray); + knownGlobals.push(Int16Array); + knownGlobals.push(Uint16Array); + knownGlobals.push(Int32Array); + knownGlobals.push(Uint32Array); + knownGlobals.push(Float32Array); + knownGlobals.push(Float64Array); + knownGlobals.push(DataView); + } + + for (var x in global) { + var found = false; + + for (var y in knownGlobals) { + if (global[x] === knownGlobals[y]) { + found = true; + break; + } + } + + if (!found) { + console.error('Unknown global: %s', x); + assert.ok(false, 'Unknown global found'); + } + } +}); + + +var mustCallChecks = []; + + +function runCallChecks(exitCode) { + if (exitCode !== 0) return; + + var failed = mustCallChecks.filter(function(context) { + return context.actual !== context.expected; + }); + + failed.forEach(function(context) { + console.log('Mismatched %s function calls. Expected %d, actual %d.', + context.name, + context.expected, + context.actual); + console.log(context.stack.split('\n').slice(2).join('\n')); + }); + + if (failed.length) process.exit(1); +} + + +exports.mustCall = function(fn, expected) { + if (typeof expected !== 'number') expected = 1; + + var context = { + expected: expected, + actual: 0, + stack: (new Error).stack, + name: fn.name || '' + }; + + // add the exit listener only once to avoid listener leak warnings + if (mustCallChecks.length === 0) process.on('exit', runCallChecks); + + mustCallChecks.push(context); + + return function() { + context.actual++; + return fn.apply(this, arguments); + }; +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js new file mode 100644 index 00000000..869a4116 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder-end.js @@ -0,0 +1,75 @@ +// 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. + +// verify that the string decoder works getting 1 byte at a time, +// the whole buffer at once, and that both match the .toString(enc) +// result of the entire buffer. + +var assert = require('assert'); +var SD = require('../../').StringDecoder; +var encodings = ['base64', 'hex', 'utf8', 'utf16le', 'ucs2']; + +var bufs = [ '☃💩', 'asdf' ].map(function(b) { + return new Buffer(b); +}); + +// also test just arbitrary bytes from 0-15. +for (var i = 1; i <= 16; i++) { + var bytes = new Array(i).join('.').split('.').map(function(_, j) { + return j + 0x78; + }); + bufs.push(new Buffer(bytes)); +} + +encodings.forEach(testEncoding); + +console.log('ok'); + +function testEncoding(encoding) { + bufs.forEach(function(buf) { + testBuf(encoding, buf); + }); +} + +function testBuf(encoding, buf) { + console.error('# %s', encoding, buf); + + // write one byte at a time. + var s = new SD(encoding); + var res1 = ''; + for (var i = 0; i < buf.length; i++) { + res1 += s.write(buf.slice(i, i + 1)); + } + res1 += s.end(); + + // write the whole buffer at once. + var res2 = ''; + var s = new SD(encoding); + res2 += s.write(buf); + res2 += s.end(); + + // .toString() on the buffer + var res3 = buf.toString(encoding); + + console.log('expect=%j', res3); + assert.equal(res1, res3, 'one byte at a time should match toString'); + assert.equal(res2, res3, 'all bytes at once should match toString'); +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js new file mode 100644 index 00000000..7f69f7ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/node_modules/string_decoder/test/simple/test-string-decoder.js @@ -0,0 +1,163 @@ +// 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 common = require('../common'); +var assert = require('assert'); +var StringDecoder = require('../../').StringDecoder; +var decoder = new StringDecoder('utf8'); + + + +var buffer = new Buffer('$'); +assert.deepEqual('$', decoder.write(buffer)); + +buffer = new Buffer('¢'); +assert.deepEqual('', decoder.write(buffer.slice(0, 1))); +assert.deepEqual('¢', decoder.write(buffer.slice(1, 2))); + +buffer = new Buffer('€'); +assert.deepEqual('', decoder.write(buffer.slice(0, 1))); +assert.deepEqual('', decoder.write(buffer.slice(1, 2))); +assert.deepEqual('€', decoder.write(buffer.slice(2, 3))); + +buffer = new Buffer([0xF0, 0xA4, 0xAD, 0xA2]); +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); +s += decoder.write(buffer.slice(2, 3)); +s += decoder.write(buffer.slice(3, 4)); +assert.ok(s.length > 0); + +// CESU-8 +buffer = new Buffer('EDA0BDEDB18D', 'hex'); // THUMBS UP SIGN (in CESU-8) +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); +s += decoder.write(buffer.slice(2, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 4)); +s += decoder.write(buffer.slice(4, 5)); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 2)); +s += decoder.write(buffer.slice(2, 4)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(4, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 4)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(4, 5)); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 5)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(5, 6)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 6)); +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + + +// UCS-2 +decoder = new StringDecoder('ucs2'); +buffer = new Buffer('ab', 'ucs2'); +assert.equal(decoder.write(buffer), 'ab'); // 2 complete chars +buffer = new Buffer('abc', 'ucs2'); +assert.equal(decoder.write(buffer.slice(0, 3)), 'a'); // 'a' and first of 'b' +assert.equal(decoder.write(buffer.slice(3, 6)), 'bc'); // second of 'b' and 'c' + + +// UTF-16LE +buffer = new Buffer('3DD84DDC', 'hex'); // THUMBS UP SIGN (in CESU-8) +var s = ''; +s += decoder.write(buffer.slice(0, 1)); +s += decoder.write(buffer.slice(1, 2)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(2, 3)); +s += decoder.write(buffer.slice(3, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 2)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(2, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 3)); // complete lead surrogate +assert.equal(s, ''); +s += decoder.write(buffer.slice(3, 4)); // complete trail surrogate +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + +var s = ''; +s += decoder.write(buffer.slice(0, 4)); +assert.equal(s, '\uD83D\uDC4D'); // THUMBS UP SIGN (in UTF-16) + + +// A mixed ascii and non-ascii string +// Test stolen from deps/v8/test/cctest/test-strings.cc +// U+02E4 -> CB A4 +// U+0064 -> 64 +// U+12E4 -> E1 8B A4 +// U+0030 -> 30 +// U+3045 -> E3 81 85 +var expected = '\u02e4\u0064\u12e4\u0030\u3045'; +var buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4, + 0x30, 0xE3, 0x81, 0x85]); +var charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5]; + +// Split the buffer into 3 segments +// |----|------|-------| +// 0 i j buffer.length +// Scan through every possible 3 segment combination +// and make sure that the string is always parsed. +common.print('scanning '); +for (var j = 2; j < buffer.length; j++) { + for (var i = 1; i < j; i++) { + var decoder = new StringDecoder('utf8'); + + var sum = decoder.write(buffer.slice(0, i)); + + // just check that we've received the right amount + // after the first write + assert.equal(charLengths[i], sum.length); + + sum += decoder.write(buffer.slice(i, j)); + sum += decoder.write(buffer.slice(j, buffer.length)); + assert.equal(expected, sum); + common.print('.'); + } +} +console.log(' crayon!'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json new file mode 100644 index 00000000..c9e268d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/package.json @@ -0,0 +1,42 @@ +{ + "name": "readable-stream", + "version": "1.0.25", + "description": "An exploration of a new kind of readable streams for Node.js", + "main": "readable.js", + "dependencies": { + "string_decoder": "~0.10.x" + }, + "devDependencies": { + "tap": "~0.2.6" + }, + "scripts": { + "test": "tap test/simple/*.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/readable-stream" + }, + "keywords": [ + "readable", + "stream", + "pipe" + ], + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "license": "BSD", + "readme": "# readable-stream\n\nA new class of streams for Node.js\n\nThis module provides the new Stream base classes introduced in Node\nv0.10, for use in Node v0.8. You can use it to have programs that\nhave to work with node v0.8, while being forward-compatible for v0.10\nand beyond. When you drop support for v0.8, you can remove this\nmodule, and only use the native streams.\n\nThis is almost exactly the same codebase as appears in Node v0.10.\nHowever:\n\n1. The exported object is actually the Readable class. Decorating the\n native `stream` module would be global pollution.\n2. In v0.10, you can safely use `base64` as an argument to\n `setEncoding` in Readable streams. However, in v0.8, the\n StringDecoder class has no `end()` method, which is problematic for\n Base64. So, don't use that, because it'll break and be weird.\n\nOther than that, the API is the same as `require('stream')` in v0.10,\nso the API docs are reproduced below.\n\n----------\n\n Stability: 2 - Unstable\n\nA stream is an abstract interface implemented by various objects in\nNode. For example a request to an HTTP server is a stream, as is\nstdout. Streams are readable, writable, or both. All streams are\ninstances of [EventEmitter][]\n\nYou can load the Stream base classes by doing `require('stream')`.\nThere are base classes provided for Readable streams, Writable\nstreams, Duplex streams, and Transform streams.\n\n## Compatibility\n\nIn earlier versions of Node, the Readable stream interface was\nsimpler, but also less powerful and less useful.\n\n* Rather than waiting for you to call the `read()` method, `'data'`\n events would start emitting immediately. If you needed to do some\n I/O to decide how to handle data, then you had to store the chunks\n in some kind of buffer so that they would not be lost.\n* The `pause()` method was advisory, rather than guaranteed. This\n meant that you still had to be prepared to receive `'data'` events\n even when the stream was in a paused state.\n\nIn Node v0.10, the Readable class described below was added. For\nbackwards compatibility with older Node programs, Readable streams\nswitch into \"old mode\" when a `'data'` event handler is added, or when\nthe `pause()` or `resume()` methods are called. The effect is that,\neven if you are not using the new `read()` method and `'readable'`\nevent, you no longer have to worry about losing `'data'` chunks.\n\nMost programs will continue to function normally. However, this\nintroduces an edge case in the following conditions:\n\n* No `'data'` event handler is added.\n* The `pause()` and `resume()` methods are never called.\n\nFor example, consider the following code:\n\n```javascript\n// WARNING! BROKEN!\nnet.createServer(function(socket) {\n\n // we add an 'end' method, but never consume the data\n socket.on('end', function() {\n // It will never get here.\n socket.end('I got your message (but didnt read it)\\n');\n });\n\n}).listen(1337);\n```\n\nIn versions of node prior to v0.10, the incoming message data would be\nsimply discarded. However, in Node v0.10 and beyond, the socket will\nremain paused forever.\n\nThe workaround in this situation is to call the `resume()` method to\ntrigger \"old mode\" behavior:\n\n```javascript\n// Workaround\nnet.createServer(function(socket) {\n\n socket.on('end', function() {\n socket.end('I got your message (but didnt read it)\\n');\n });\n\n // start the flow of data, discarding it.\n socket.resume();\n\n}).listen(1337);\n```\n\nIn addition to new Readable streams switching into old-mode, pre-v0.10\nstyle streams can be wrapped in a Readable class using the `wrap()`\nmethod.\n\n## Class: stream.Readable\n\n\n\nA `Readable Stream` has the following methods, members, and events.\n\nNote that `stream.Readable` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nmethod. (See below.)\n\n### new stream.Readable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} The maximum number of bytes to store in\n the internal buffer before ceasing to read from the underlying\n resource. Default=16kb\n * `encoding` {String} If specified, then buffers will be decoded to\n strings using the specified encoding. Default=null\n * `objectMode` {Boolean} Whether this stream should behave\n as a stream of objects. Meaning that stream.read(n) returns\n a single value instead of a Buffer of size n\n\nIn classes that extend the Readable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### readable.\\_read(size)\n\n* `size` {Number} Number of bytes to read asynchronously\n\nNote: **This function should NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Readable\nclass methods only.\n\nAll Readable stream implementations must provide a `_read` method\nto fetch data from the underlying resource.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\nWhen data is available, put it into the read queue by calling\n`readable.push(chunk)`. If `push` returns false, then you should stop\nreading. When `_read` is called again, you should start pushing more\ndata.\n\nThe `size` argument is advisory. Implementations where a \"read\" is a\nsingle call that returns data can use this to know how much data to\nfetch. Implementations where that is not relevant, such as TCP or\nTLS, may ignore this argument, and simply provide data whenever it\nbecomes available. There is no need, for example to \"wait\" until\n`size` bytes are available before calling `stream.push(chunk)`.\n\n### readable.push(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to push into the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nNote: **This function should be called by Readable implementors, NOT\nby consumers of Readable subclasses.** The `_read()` function will not\nbe called again until at least one `push(chunk)` call is made. If no\ndata is available, then you MAY call `push('')` (an empty string) to\nallow a future `_read` call, without adding any data to the queue.\n\nThe `Readable` class works by putting data into a read queue to be\npulled out later by calling the `read()` method when the `'readable'`\nevent fires.\n\nThe `push()` method will explicitly insert some data into the read\nqueue. If it is called with `null` then it will signal the end of the\ndata.\n\nIn some cases, you may be wrapping a lower-level source which has some\nsort of pause/resume mechanism, and a data callback. In those cases,\nyou could wrap the low-level source object by doing something like\nthis:\n\n```javascript\n// source is an object with readStop() and readStart() methods,\n// and an `ondata` member that gets called when it has data, and\n// an `onend` member that gets called when the data is over.\n\nvar stream = new Readable();\n\nsource.ondata = function(chunk) {\n // if push() returns false, then we need to stop reading from source\n if (!stream.push(chunk))\n source.readStop();\n};\n\nsource.onend = function() {\n stream.push(null);\n};\n\n// _read will be called when the stream wants to pull more data in\n// the advisory size argument is ignored in this case.\nstream._read = function(n) {\n source.readStart();\n};\n```\n\n### readable.unshift(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nThis is the corollary of `readable.push(chunk)`. Rather than putting\nthe data at the *end* of the read queue, it puts it at the *front* of\nthe read queue.\n\nThis is useful in certain use-cases where a stream is being consumed\nby a parser, which needs to \"un-consume\" some data that it has\noptimistically pulled out of the source.\n\n```javascript\n// A parser for a simple data protocol.\n// The \"header\" is a JSON object, followed by 2 \\n characters, and\n// then a message body.\n//\n// Note: This can be done more simply as a Transform stream. See below.\n\nfunction SimpleProtocol(source, options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Readable.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n\n // source is a readable stream, such as a socket or file\n this._source = source;\n\n var self = this;\n source.on('end', function() {\n self.push(null);\n });\n\n // give it a kick whenever the source is readable\n // read(0) will not consume any bytes\n source.on('readable', function() {\n self.read(0);\n });\n\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Readable.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._read = function(n) {\n if (!this._inBody) {\n var chunk = this._source.read();\n\n // if the source doesn't have data, we don't have data yet.\n if (chunk === null)\n return this.push('');\n\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // '\\n'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n this.push('');\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit('error', new Error('invalid simple protocol data'));\n return;\n }\n // now, because we got some extra data, unshift the rest\n // back into the read queue so that our consumer will see it.\n var b = chunk.slice(split);\n this.unshift(b);\n\n // and let them know that we are done parsing the header.\n this.emit('header', this.header);\n }\n } else {\n // from there on, just provide the data to our consumer.\n // careful not to push(null), since that would indicate EOF.\n var chunk = this._source.read();\n if (chunk) this.push(chunk);\n }\n};\n\n// Usage:\nvar parser = new SimpleProtocol(source);\n// Now parser is a readable stream that will emit 'header'\n// with the parsed header data.\n```\n\n### readable.wrap(stream)\n\n* `stream` {Stream} An \"old style\" readable stream\n\nIf you are using an older Node library that emits `'data'` events and\nhas a `pause()` method that is advisory only, then you can use the\n`wrap()` method to create a Readable stream that uses the old stream\nas its data source.\n\nFor example:\n\n```javascript\nvar OldReader = require('./old-api-module.js').OldReader;\nvar oreader = new OldReader;\nvar Readable = require('stream').Readable;\nvar myReader = new Readable().wrap(oreader);\n\nmyReader.on('readable', function() {\n myReader.read(); // etc.\n});\n```\n\n### Event: 'readable'\n\nWhen there is data ready to be consumed, this event will fire.\n\nWhen this event emits, call the `read()` method to consume the data.\n\n### Event: 'end'\n\nEmitted when the stream has received an EOF (FIN in TCP terminology).\nIndicates that no more `'data'` events will happen. If the stream is\nalso writable, it may be possible to continue writing.\n\n### Event: 'data'\n\nThe `'data'` event emits either a `Buffer` (by default) or a string if\n`setEncoding()` was used.\n\nNote that adding a `'data'` event listener will switch the Readable\nstream into \"old mode\", where data is emitted as soon as it is\navailable, rather than waiting for you to call `read()` to consume it.\n\n### Event: 'error'\n\nEmitted if there was an error receiving data.\n\n### Event: 'close'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### readable.setEncoding(encoding)\n\nMakes the `'data'` event emit a string instead of a `Buffer`. `encoding`\ncan be `'utf8'`, `'utf16le'` (`'ucs2'`), `'ascii'`, or `'hex'`.\n\nThe encoding can also be set by specifying an `encoding` field to the\nconstructor.\n\n### readable.read([size])\n\n* `size` {Number | null} Optional number of bytes to read.\n* Return: {Buffer | String | null}\n\nNote: **This function SHOULD be called by Readable stream users.**\n\nCall this method to consume data once the `'readable'` event is\nemitted.\n\nThe `size` argument will set a minimum number of bytes that you are\ninterested in. If not set, then the entire content of the internal\nbuffer is returned.\n\nIf there is no data to consume, or if there are fewer bytes in the\ninternal buffer than the `size` argument, then `null` is returned, and\na future `'readable'` event will be emitted when more is available.\n\nCalling `stream.read(0)` will always return `null`, and will trigger a\nrefresh of the internal buffer, but otherwise be a no-op.\n\n### readable.pipe(destination, [options])\n\n* `destination` {Writable Stream}\n* `options` {Object} Optional\n * `end` {Boolean} Default=true\n\nConnects this readable stream to `destination` WriteStream. Incoming\ndata on this stream gets written to `destination`. Properly manages\nback-pressure so that a slow destination will not be overwhelmed by a\nfast readable stream.\n\nThis function returns the `destination` stream.\n\nFor example, emulating the Unix `cat` command:\n\n process.stdin.pipe(process.stdout);\n\nBy default `end()` is called on the destination when the source stream\nemits `end`, so that `destination` is no longer writable. Pass `{ end:\nfalse }` as `options` to keep the destination stream open.\n\nThis keeps `writer` open so that \"Goodbye\" can be written at the\nend.\n\n reader.pipe(writer, { end: false });\n reader.on(\"end\", function() {\n writer.end(\"Goodbye\\n\");\n });\n\nNote that `process.stderr` and `process.stdout` are never closed until\nthe process exits, regardless of the specified options.\n\n### readable.unpipe([destination])\n\n* `destination` {Writable Stream} Optional\n\nUndo a previously established `pipe()`. If no destination is\nprovided, then all previously established pipes are removed.\n\n### readable.pause()\n\nSwitches the readable stream into \"old mode\", where data is emitted\nusing a `'data'` event rather than being buffered for consumption via\nthe `read()` method.\n\nCeases the flow of data. No `'data'` events are emitted while the\nstream is in a paused state.\n\n### readable.resume()\n\nSwitches the readable stream into \"old mode\", where data is emitted\nusing a `'data'` event rather than being buffered for consumption via\nthe `read()` method.\n\nResumes the incoming `'data'` events after a `pause()`.\n\n\n## Class: stream.Writable\n\n\n\nA `Writable` Stream has the following methods, members, and events.\n\nNote that `stream.Writable` is an abstract class designed to be\nextended with an underlying implementation of the\n`_write(chunk, encoding, cb)` method. (See below.)\n\n### new stream.Writable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} Buffer level when `write()` starts\n returning false. Default=16kb\n * `decodeStrings` {Boolean} Whether or not to decode strings into\n Buffers before passing them to `_write()`. Default=true\n\nIn classes that extend the Writable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### writable.\\_write(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be written. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. Ignore chunk is a buffer. Note that chunk will\n **always** be a buffer unless the `decodeStrings` option is\n explicitly set to `false`.\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nAll Writable stream implementations must provide a `_write` method to\nsend data to the underlying resource.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Writable\nclass methods only.\n\nCall the callback using the standard `callback(error)` pattern to\nsignal that the write completed successfully or with an error.\n\nIf the `decodeStrings` flag is set in the constructor options, then\n`chunk` may be a string rather than a Buffer, and `encoding` will\nindicate the sort of string that it is. This is to support\nimplementations that have an optimized handling for certain string\ndata encodings. If you do not explicitly set the `decodeStrings`\noption to `false`, then you can safely ignore the `encoding` argument,\nand assume that `chunk` will always be a Buffer.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n\n### writable.write(chunk, [encoding], [callback])\n\n* `chunk` {Buffer | String} Data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `'utf8'`\n* `callback` {Function} Optional. Called when this chunk is\n successfully written.\n* Returns {Boolean}\n\nWrites `chunk` to the stream. Returns `true` if the data has been\nflushed to the underlying resource. Returns `false` to indicate that\nthe buffer is full, and the data will be sent out in the future. The\n`'drain'` event will indicate when the buffer is empty again.\n\nThe specifics of when `write()` will return false, is determined by\nthe `highWaterMark` option provided to the constructor.\n\n### writable.end([chunk], [encoding], [callback])\n\n* `chunk` {Buffer | String} Optional final data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `'utf8'`\n* `callback` {Function} Optional. Called when the final chunk is\n successfully written.\n\nCall this method to signal the end of the data being written to the\nstream.\n\n### Event: 'drain'\n\nEmitted when the stream's write queue empties and it's safe to write\nwithout buffering again. Listen for it when `stream.write()` returns\n`false`.\n\n### Event: 'close'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### Event: 'finish'\n\nWhen `end()` is called and there are no more chunks to write, this\nevent is emitted.\n\n### Event: 'pipe'\n\n* `source` {Readable Stream}\n\nEmitted when the stream is passed to a readable stream's pipe method.\n\n### Event 'unpipe'\n\n* `source` {Readable Stream}\n\nEmitted when a previously established `pipe()` is removed using the\nsource Readable stream's `unpipe()` method.\n\n## Class: stream.Duplex\n\n\n\nA \"duplex\" stream is one that is both Readable and Writable, such as a\nTCP socket connection.\n\nNote that `stream.Duplex` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nand `_write(chunk, encoding, callback)` methods as you would with a Readable or\nWritable stream class.\n\nSince JavaScript doesn't have multiple prototypal inheritance, this\nclass prototypally inherits from Readable, and then parasitically from\nWritable. It is thus up to the user to implement both the lowlevel\n`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method\non extension duplex classes.\n\n### new stream.Duplex(options)\n\n* `options` {Object} Passed to both Writable and Readable\n constructors. Also has the following fields:\n * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then\n the stream will automatically end the readable side when the\n writable side ends and vice versa.\n\nIn classes that extend the Duplex class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n## Class: stream.Transform\n\nA \"transform\" stream is a duplex stream where the output is causally\nconnected in some way to the input, such as a zlib stream or a crypto\nstream.\n\nThere is no requirement that the output be the same size as the input,\nthe same number of chunks, or arrive at the same time. For example, a\nHash stream will only ever have a single chunk of output which is\nprovided when the input is ended. A zlib stream will either produce\nmuch smaller or much larger than its input.\n\nRather than implement the `_read()` and `_write()` methods, Transform\nclasses must implement the `_transform()` method, and may optionally\nalso implement the `_flush()` method. (See below.)\n\n### new stream.Transform([options])\n\n* `options` {Object} Passed to both Writable and Readable\n constructors.\n\nIn classes that extend the Transform class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### transform.\\_transform(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be transformed. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. (Ignore if `decodeStrings` chunk is a buffer.)\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Transform\nclass methods only.\n\nAll Transform stream implementations must provide a `_transform`\nmethod to accept input and produce output.\n\n`_transform` should do whatever has to be done in this specific\nTransform class, to handle the bytes being written, and pass them off\nto the readable portion of the interface. Do asynchronous I/O,\nprocess things, and so on.\n\nCall `transform.push(outputChunk)` 0 or more times to generate output\nfrom this input chunk, depending on how much data you want to output\nas a result of this chunk.\n\nCall the callback function only when the current chunk is completely\nconsumed. Note that there may or may not be output as a result of any\nparticular input chunk.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### transform.\\_flush(callback)\n\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done flushing any remaining data.\n\nNote: **This function MUST NOT be called directly.** It MAY be implemented\nby child classes, and if so, will be called by the internal Transform\nclass methods only.\n\nIn some cases, your transform operation may need to emit a bit more\ndata at the end of the stream. For example, a `Zlib` compression\nstream will store up some internal state so that it can optimally\ncompress the output. At the end, however, it needs to do the best it\ncan with what is left, so that the data will be complete.\n\nIn those cases, you can implement a `_flush` method, which will be\ncalled at the very end, after all the written data is consumed, but\nbefore emitting `end` to signal the end of the readable side. Just\nlike with `_transform`, call `transform.push(chunk)` zero or more\ntimes, as appropriate, and call `callback` when the flush operation is\ncomplete.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### Example: `SimpleProtocol` parser\n\nThe example above of a simple protocol parser can be implemented much\nmore simply by using the higher level `Transform` stream class.\n\nIn this example, rather than providing the input as an argument, it\nwould be piped into the parser, which is a more idiomatic Node stream\napproach.\n\n```javascript\nfunction SimpleProtocol(options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Transform.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Transform.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._transform = function(chunk, encoding, done) {\n if (!this._inBody) {\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // '\\n'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit('error', new Error('invalid simple protocol data'));\n return;\n }\n // and let them know that we are done parsing the header.\n this.emit('header', this.header);\n\n // now, because we got some extra data, emit this first.\n this.push(b);\n }\n } else {\n // from there on, just provide the data to our consumer as-is.\n this.push(b);\n }\n done();\n};\n\nvar parser = new SimpleProtocol();\nsource.pipe(parser)\n\n// Now parser is a readable stream that will emit 'header'\n// with the parsed header data.\n```\n\n\n## Class: stream.PassThrough\n\nThis is a trivial implementation of a `Transform` stream that simply\npasses the input bytes across to the output. Its purpose is mainly\nfor examples and testing, but there are occasionally use cases where\nit can come in handy.\n\n\n[EventEmitter]: events.html#events_class_events_eventemitter\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/readable-stream/issues" + }, + "homepage": "https://github.com/isaacs/readable-stream", + "_id": "readable-stream@1.0.25", + "dist": { + "shasum": "3d234b55fd2a25db8327618f088e50a32044df50" + }, + "_from": "readable-stream@~1.0.17", + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.25.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js new file mode 100644 index 00000000..27e8d8a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/passthrough.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_passthrough.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js new file mode 100644 index 00000000..4d1ddfc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/readable.js @@ -0,0 +1,6 @@ +exports = module.exports = require('./lib/_stream_readable.js'); +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'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js new file mode 100644 index 00000000..5d482f07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/transform.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_transform.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js new file mode 100644 index 00000000..e1e9efdf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/readable-stream/writable.js @@ -0,0 +1 @@ +module.exports = require("./lib/_stream_writable.js") diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE new file mode 100644 index 00000000..a23e08a8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/LICENCE @@ -0,0 +1,19 @@ +Copyright (c) 2012 Raynos. + +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile new file mode 100644 index 00000000..d583fcf4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/Makefile @@ -0,0 +1,4 @@ +browser: + node ./support/compile + +.PHONY: browser \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md new file mode 100644 index 00000000..389adae3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/README.md @@ -0,0 +1,27 @@ +# xtend + +[![browser support][3]][4] + +Extend like a boss + +xtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes presedence. + +## Examples + +```js +var extend = require("xtend") + +var combination = extend({ + a: "a" +}, { + b: "b" +}) +// { a: "a", b: "b" } +``` + + +## MIT Licenced + + + [3]: http://ci.testling.com/Raynos/xtend.png + [4]: http://ci.testling.com/Raynos/xtend diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js new file mode 100644 index 00000000..62391e78 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/has-keys.js @@ -0,0 +1,7 @@ +module.exports = hasKeys + +function hasKeys(source) { + return source !== null && + (typeof source === "object" || + typeof source === "function") +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js new file mode 100644 index 00000000..20937d19 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/index.js @@ -0,0 +1,25 @@ +var Keys = require("object-keys") +var hasKeys = require("./has-keys") + +module.exports = extend + +function extend() { + var target = {} + + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] + + if (!hasKeys(source)) { + continue + } + + var keys = Keys(source) + + for (var j = 0; j < keys.length; j++) { + var name = keys[j] + target[name] = source[name] + } + } + + return target +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js new file mode 100644 index 00000000..17454ae4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/mutable.js @@ -0,0 +1,25 @@ +var Keys = require("object-keys") +var hasKeys = require("./has-keys") + +module.exports = extend + +function extend(target) { + var sources = [].slice.call(arguments, 1) + + for (var i = 0; i < sources.length; i++) { + var source = sources[i] + + if (!hasKeys(source)) { + continue + } + + var keys = Keys(source) + + for (var j = 0; j < keys.length; j++) { + var name = keys[j] + target[name] = source[name] + } + } + + return target +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml new file mode 100644 index 00000000..60d00ce1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "0.10" + - "0.8" + - "0.6" diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md new file mode 100644 index 00000000..ab32d0ad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/README.md @@ -0,0 +1,39 @@ +#object-keys [![Version Badge][2]][1] + +[![Build Status][3]][4] [![dependency status][5]][6] + +[![browser support][7]][8] + +An Object.keys shim. Uses Object.keys if available. + +## Example + +```js +var keys = require('object-keys'); +var assert = require('assert'); +var obj = { + a: true, + b: true, + c: true +}; + +assert.equal(keys(obj), ['a', 'b', 'c']); +``` + +## Source +Implementation taken directly from [es5-shim]([9]), with modifications, including from [lodash]([10]). + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/object-keys +[2]: http://vb.teelaun.ch/ljharb/object-keys.svg +[3]: https://travis-ci.org/ljharb/object-keys.png +[4]: https://travis-ci.org/ljharb/object-keys +[5]: https://david-dm.org/ljharb/object-keys.png +[6]: https://david-dm.org/ljharb/object-keys +[7]: https://ci.testling.com/ljharb/object-keys.png +[8]: https://ci.testling.com/ljharb/object-keys +[9]: https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L542-589 +[10]: https://github.com/bestiejs/lodash + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js new file mode 100644 index 00000000..db32d458 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/foreach.js @@ -0,0 +1,40 @@ +var hasOwn = Object.prototype.hasOwnProperty; +var toString = Object.prototype.toString; + +var isFunction = function (fn) { + var isFunc = (typeof fn === 'function' && !(fn instanceof RegExp)) || toString.call(fn) === '[object Function]'; + if (!isFunc && typeof window !== 'undefined') { + isFunc = fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt; + } + return isFunc; +}; + +module.exports = function forEach(obj, fn) { + if (!isFunction(fn)) { + throw new TypeError('iterator must be a function'); + } + var i, k, + isString = typeof obj === 'string', + l = obj.length, + context = arguments.length > 2 ? arguments[2] : null; + if (l === +l) { + for (i = 0; i < l; i++) { + if (context === null) { + fn(isString ? obj.charAt(i) : obj[i], i, obj); + } else { + fn.call(context, isString ? obj.charAt(i) : obj[i], i, obj); + } + } + } else { + for (k in obj) { + if (hasOwn.call(obj, k)) { + if (context === null) { + fn(obj[k], k, obj); + } else { + fn.call(context, obj[k], k, obj); + } + } + } + } +}; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js new file mode 100644 index 00000000..f5b24b6d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/index.js @@ -0,0 +1,2 @@ +module.exports = Object.keys || require('./shim'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js new file mode 100644 index 00000000..74a09897 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/isArguments.js @@ -0,0 +1,16 @@ +var toString = Object.prototype.toString; + +module.exports = function isArguments(value) { + var str = toString.call(value); + var isArguments = str === '[object Arguments]'; + if (!isArguments) { + isArguments = str !== '[object Array]' + && value !== null + && typeof value === 'object' + && typeof value.length === 'number' + && value.length >= 0 + && toString.call(value.callee) === '[object Function]'; + } + return isArguments; +}; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json new file mode 100644 index 00000000..9dfda8dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/package.json @@ -0,0 +1,60 @@ +{ + "name": "object-keys", + "version": "0.4.0", + "author": { + "name": "Jordan Harband" + }, + "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/kriskowal/es5-shim", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "node test/index.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/ljharb/object-keys.git" + }, + "keywords": [ + "Object.keys", + "keys", + "ES5", + "shim" + ], + "dependencies": {}, + "devDependencies": { + "foreach": "~2.0.3", + "is": "~0.2.6", + "tape": "~1.0.4", + "indexof": "~0.0.1" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "readme": "#object-keys [![Version Badge][2]][1]\n\n[![Build Status][3]][4] [![dependency status][5]][6]\n\n[![browser support][7]][8]\n\nAn Object.keys shim. Uses Object.keys if available.\n\n## Example\n\n```js\nvar keys = require('object-keys');\nvar assert = require('assert');\nvar obj = {\n\ta: true,\n\tb: true,\n\tc: true\n};\n\nassert.equal(keys(obj), ['a', 'b', 'c']);\n```\n\n## Source\nImplementation taken directly from [es5-shim]([9]), with modifications, including from [lodash]([10]).\n\n## Tests\nSimply clone the repo, `npm install`, and run `npm test`\n\n[1]: https://npmjs.org/package/object-keys\n[2]: http://vb.teelaun.ch/ljharb/object-keys.svg\n[3]: https://travis-ci.org/ljharb/object-keys.png\n[4]: https://travis-ci.org/ljharb/object-keys\n[5]: https://david-dm.org/ljharb/object-keys.png\n[6]: https://david-dm.org/ljharb/object-keys\n[7]: https://ci.testling.com/ljharb/object-keys.png\n[8]: https://ci.testling.com/ljharb/object-keys\n[9]: https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js#L542-589\n[10]: https://github.com/bestiejs/lodash\n\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/ljharb/object-keys/issues" + }, + "homepage": "https://github.com/ljharb/object-keys", + "_id": "object-keys@0.4.0", + "dist": { + "shasum": "28a6aae7428dd2c3a92f3d95f21335dd204e0336" + }, + "_from": "object-keys@~0.4.0", + "_resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js new file mode 100644 index 00000000..b88421be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/shim.js @@ -0,0 +1,62 @@ +(function () { + "use strict"; + + // modified from https://github.com/kriskowal/es5-shim + var has = Object.prototype.hasOwnProperty, + toString = Object.prototype.toString, + forEach = require('./foreach'), + isArgs = require('./isArguments'), + hasDontEnumBug = !({'toString': null}).propertyIsEnumerable('toString'), + hasProtoEnumBug = (function () {}).propertyIsEnumerable('prototype'), + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + keysShim; + + keysShim = function keys(object) { + var isObject = object !== null && typeof object === 'object', + isFunction = toString.call(object) === '[object Function]', + isArguments = isArgs(object), + theKeys = []; + + if (!isObject && !isFunction && !isArguments) { + throw new TypeError("Object.keys called on a non-object"); + } + + if (isArguments) { + forEach(object, function (value) { + theKeys.push(value); + }); + } else { + var name, + skipProto = hasProtoEnumBug && isFunction; + + for (name in object) { + if (!(skipProto && name === 'prototype') && has.call(object, name)) { + theKeys.push(name); + } + } + } + + if (hasDontEnumBug) { + var ctor = object.constructor, + skipConstructor = ctor && ctor.prototype === object; + + forEach(dontEnums, function (dontEnum) { + if (!(skipConstructor && dontEnum === 'constructor') && has.call(object, dontEnum)) { + theKeys.push(dontEnum); + } + }); + } + return theKeys; + }; + + module.exports = keysShim; +}()); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js new file mode 100644 index 00000000..f29f065a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/foreach.js @@ -0,0 +1,156 @@ +var test = require('tape'); +var forEach = require('../foreach.js'); + +test('second argument: iterator', function (t) { + var arr = []; + t.throws(function () { forEach(arr); }, TypeError, 'undefined is not a function'); + t.throws(function () { forEach(arr, null); }, TypeError, 'null is not a function'); + t.throws(function () { forEach(arr, ''); }, TypeError, 'string is not a function'); + t.throws(function () { forEach(arr, /a/); }, TypeError, 'regex is not a function'); + t.throws(function () { forEach(arr, true); }, TypeError, 'true is not a function'); + t.throws(function () { forEach(arr, false); }, TypeError, 'false is not a function'); + t.throws(function () { forEach(arr, NaN); }, TypeError, 'NaN is not a function'); + t.throws(function () { forEach(arr, 42); }, TypeError, '42 is not a function'); + t.doesNotThrow(function () { forEach(arr, function () {}); }, 'function is a function'); + t.doesNotThrow(function () { forEach(arr, setTimeout); }, 'setTimeout is a function'); + if (typeof window !== 'undefined') { + t.doesNotThrow(function () { forEach(arr, window.alert); }, 'alert is a function'); + } + t.end(); +}); + +test('array', function (t) { + var arr = [1, 2, 3]; + + t.test('iterates over every item', function (st) { + var index = 0; + forEach(arr, function () { index += 1; }); + st.equal(index, arr.length, 'iterates ' + arr.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(arr.length); + forEach(arr, function (item) { + st.equal(arr[index], item, 'item ' + index + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(arr.length); + forEach(arr, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(arr.length); + forEach(arr, function (item, index, array) { + st.deepEqual(arr, array, 'array is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + st.plan(arr.length); + forEach(arr, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + +test('object', function (t) { + var obj = { + a: 1, + b: 2, + c: 3 + }; + var keys = ['a', 'b', 'c']; + + var F = function () { + this.a = 1; + this.b = 2; + }; + F.prototype.c = 3; + var fKeys = ['a', 'b']; + + t.test('iterates over every object literal key', function (st) { + var counter = 0; + forEach(obj, function () { counter += 1; }); + st.equal(counter, keys.length, 'iterated ' + counter + ' times'); + st.end(); + }); + + t.test('iterates only over own keys', function (st) { + var counter = 0; + forEach(new F(), function () { counter += 1; }); + st.equal(counter, fKeys.length, 'iterated ' + fKeys.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(keys.length); + forEach(obj, function (item) { + st.equal(obj[keys[index]], item, 'item at key ' + keys[index] + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(keys.length); + forEach(obj, function (item, key) { + st.equal(keys[counter], key, 'key ' + key + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(keys.length); + forEach(obj, function (item, key, object) { + st.deepEqual(obj, object, 'object is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + st.plan(1); + forEach({foo: 'bar'}, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + + +test('string', function (t) { + var str = 'str'; + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(str.length * 2 + 1); + forEach(str, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + st.equal(str.charAt(index), item); + counter += 1; + }); + st.equal(counter, str.length, 'iterates ' + str.length + ' times'); + }); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js new file mode 100644 index 00000000..8b77b1fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/index.js @@ -0,0 +1,6 @@ + +require('./foreach'); +require('./isArguments'); + +require('./shim'); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js new file mode 100644 index 00000000..62a07c2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/isArguments.js @@ -0,0 +1,10 @@ +var test = require('tape'); +var isArguments = require('../isArguments'); + +test('is.arguments', function (t) { + t.notOk(isArguments([]), 'array is not arguments'); + (function () { t.ok(isArguments(arguments), 'arguments is arguments'); }()); + (function () { t.notOk(isArguments(Array.prototype.slice.call(arguments)), 'sliced arguments is not arguments'); }()); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js new file mode 100644 index 00000000..9d932712 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/node_modules/object-keys/test/shim.js @@ -0,0 +1,134 @@ +var test = require('tape'); +var shimmedKeys = require('../index.js'); +var is = require('is'); +var keys = require('../shim.js'); +var forEach = require('foreach'); +var indexOf = require('indexof'); + +var obj = { + "str": "boz", + "obj": {}, + "arr": [], + "bool": true, + "num": 42, + "aNull": null, + "undef": undefined +}; +var objKeys = ['str', 'obj', 'arr', 'bool', 'num', 'aNull', 'undef']; + +test('exports a function', function (t) { + if (Object.keys) { + t.equal(Object.keys, shimmedKeys, 'Object.keys is supported and exported'); + } else { + t.equal(keys, shimmedKeys, 'Object.keys is not supported; shim is exported'); + } + t.end(); +}); + +test('working with actual shim', function (t) { + t.notEqual(Object.keys, keys, 'keys shim is not native Object.keys'); + t.end(); +}); + +test('works with an object literal', function (t) { + var theKeys = keys(obj); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, objKeys, 'Object has expected keys'); + t.end(); +}); + +test('works with an array', function (t) { + var arr = [1, 2, 3]; + var theKeys = keys(arr); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, ['0', '1', '2'], 'Array has expected keys'); + t.end(); +}); + +test('works with a function', function (t) { + var foo = function () {}; + foo.a = true; + + t.doesNotThrow(function () { return keys(foo); }, 'does not throw an error'); + t.deepEqual(keys(foo), ['a'], 'returns expected keys'); + t.end(); +}); + +test('returns names which are own properties', function (t) { + forEach(keys(obj), function (name) { + t.equal(obj.hasOwnProperty(name), true, name + ' should be returned'); + }); + t.end(); +}); + +test('returns names which are enumerable', function (t) { + var k, loopedValues = []; + for (k in obj) { + loopedValues.push(k); + } + forEach(keys(obj), function (name) { + t.notEqual(indexOf(loopedValues, name), -1, name + ' is not enumerable'); + }); + t.end(); +}); + +test('throws an error for a non-object', function (t) { + t.throws( + function () { return keys(42); }, + new TypeError('Object.keys called on a non-object'), + 'throws on a non-object' + ); + t.end(); +}); + +test('works with an object instance', function (t) { + var Prototype = function () {}; + Prototype.prototype.foo = true; + var obj = new Prototype(); + obj.bar = true; + var theKeys = keys(obj); + t.equal(is.array(theKeys), true, 'returns an array'); + t.deepEqual(theKeys, ['bar'], 'Instance has expected keys'); + t.end(); +}); + +test('works in iOS 5 mobile Safari', function (t) { + var Foo = function () {}; + Foo.a = function () {}; + + // the bug is keys(Foo) => ['a', 'prototype'] instead of ['a'] + t.deepEqual(keys(Foo), ['a'], 'has expected keys'); + t.end(); +}); + +test('works in environments with the dontEnum bug (IE < 9)', function (t) { + var Foo = function () {}; + Foo.prototype.a = function () {}; + + // the bug is keys(Foo.prototype) => ['a', 'constructor'] instead of ['a'] + t.deepEqual(keys(Foo.prototype), ['a'], 'has expected keys'); + t.end(); +}); + +test('shadowed properties', function (t) { + var shadowedProps = [ + 'dummyControlProp', /* just to be sure */ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + shadowedProps.sort(); + var shadowedObject = {}; + forEach(shadowedProps, function (value, index) { + shadowedObject[value] = index; + }); + var shadowedObjectKeys = keys(shadowedObject); + shadowedObjectKeys.sort(); + t.deepEqual(shadowedObjectKeys, shadowedProps, 'troublesome shadowed properties are keys of object literals'); + t.end(); +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json new file mode 100644 index 00000000..a761197d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/package.json @@ -0,0 +1,76 @@ +{ + "name": "xtend", + "version": "2.1.2", + "description": "extend like a boss", + "keywords": [ + "extend", + "merge", + "options", + "opts", + "object", + "array" + ], + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "repository": { + "type": "git", + "url": "git://github.com/Raynos/xtend.git" + }, + "main": "index", + "scripts": { + "test": "node test" + }, + "dependencies": { + "object-keys": "~0.4.0" + }, + "devDependencies": { + "tape": "~1.1.0" + }, + "homepage": "https://github.com/Raynos/xtend", + "contributors": [ + { + "name": "Jake Verbaten" + }, + { + "name": "Matt Esch" + } + ], + "bugs": { + "url": "https://github.com/Raynos/xtend/issues", + "email": "raynos2@gmail.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/raynos/xtend/raw/master/LICENSE" + } + ], + "testling": { + "files": "test.js", + "browsers": [ + "ie/7..latest", + "firefox/16..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest" + ] + }, + "engines": { + "node": ">=0.4" + }, + "readme": "# xtend\n\n[![browser support][3]][4]\n\nExtend like a boss\n\nxtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes presedence.\n\n## Examples\n\n```js\nvar extend = require(\"xtend\")\n\nvar combination = extend({\n a: \"a\"\n}, {\n b: \"b\"\n})\n// { a: \"a\", b: \"b\" }\n```\n\n\n## MIT Licenced\n\n\n [3]: http://ci.testling.com/Raynos/xtend.png\n [4]: http://ci.testling.com/Raynos/xtend\n", + "readmeFilename": "README.md", + "_id": "xtend@2.1.2", + "dist": { + "shasum": "5e8f75d1b0d9ca976fee0f1aa88f80c7619210d5" + }, + "_from": "xtend@~2.1.1", + "_resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js new file mode 100644 index 00000000..3369d796 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/node_modules/xtend/test.js @@ -0,0 +1,63 @@ +var test = require("tape") +var extend = require("./") +var mutableExtend = require("./mutable") + +test("merge", function(assert) { + var a = { a: "foo" } + var b = { b: "bar" } + + assert.deepEqual(extend(a, b), { a: "foo", b: "bar" }) + assert.end() +}) + +test("replace", function(assert) { + var a = { a: "foo" } + var b = { a: "bar" } + + assert.deepEqual(extend(a, b), { a: "bar" }) + assert.end() +}) + +test("undefined", function(assert) { + var a = { a: undefined } + var b = { b: "foo" } + + assert.deepEqual(extend(a, b), { a: undefined, b: "foo" }) + assert.deepEqual(extend(b, a), { a: undefined, b: "foo" }) + assert.end() +}) + +test("handle 0", function(assert) { + var a = { a: "default" } + var b = { a: 0 } + + assert.deepEqual(extend(a, b), { a: 0 }) + assert.deepEqual(extend(b, a), { a: "default" }) + assert.end() +}) + +test("is immutable", function (assert) { + var record = {} + + extend(record, { foo: "bar" }) + assert.equal(record.foo, undefined) + assert.end() +}) + +test("null as argument", function (assert) { + var a = { foo: "bar" } + var b = null + var c = void 0 + + assert.deepEqual(extend(b, a, c), { foo: "bar" }) + assert.end() +}) + +test("mutable", function (assert) { + var a = { foo: "bar" } + + mutableExtend(a, { bar: "baz" }) + + assert.equal(a.bar, "baz") + assert.end() +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json new file mode 100644 index 00000000..9612fee2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/package.json @@ -0,0 +1,48 @@ +{ + "name": "through2", + "version": "0.4.1", + "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise", + "main": "through2.js", + "scripts": { + "test": "node test/test.js", + "test-local": "brtapsauce-local test/basic-test.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/rvagg/through2.git" + }, + "keywords": [ + "stream", + "streams2", + "through", + "transform" + ], + "author": { + "name": "Rod Vagg", + "email": "r@va.gg", + "url": "https://github.com/rvagg" + }, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + }, + "devDependencies": { + "tape": "~2.3.0", + "bl": "~0.6.0", + "stream-spigot": "~3.0.1", + "brtapsauce": "~0.2.2" + }, + "readme": "# through2\n\n\n\n[![NPM](https://nodei.co/npm/through2.png?compact=true)](https://nodei.co/npm/through2/) \n\n\n\n**A tiny wrapper around Node streams.Transform (Streams2) to avoid explicit subclassing noise**\n\nInspired by [Dominic Tarr](https://github.com/dominictarr)'s [through](https://github.com/dominictarr/through) in that it's so much easier to make a stream out of a function than it is to set up the prototype chain properly: `through(function (chunk) { ... })`.\n\n```js\nfs.createReadStream('ex.txt')\n .pipe(through2(function (chunk, enc, callback) {\n\n for (var i = 0; i < chunk.length; i++)\n if (chunk[i] == 97)\n chunk[i] = 122 // swap 'a' for 'z'\n\n this.push(chunk)\n \n callback()\n\n }))\n .pipe(fs.createWriteStream('out.txt'))\n```\n\nOr object streams:\n\n```js\nvar all = []\n\nfs.createReadStream('data.csv')\n .pipe(csv2())\n .pipe(through2.obj(function (chunk, enc, callback) {\n\n var data = {\n name : chunk[0]\n , address : chunk[3]\n , phone : chunk[10]\n }\n \n this.push(data)\n \n callback()\n\n }))\n .on('data', function (data) {\n all.push(data)\n })\n .on('end', function () {\n doSomethingSpecial(all)\n })\n```\n\nNote that `through2.obj(fn)` is a convenience wrapper around `through2({ objectMode: true }, fn)`.\n\n## API\n\nthrough2([ options, ] [ transformFunction ] [, flushFunction ])\n\nConsult the **[stream.Transform](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform)** documentation for the exact rules of the `transformFunction` (i.e. `this._transform`) and the optional `flushFunction` (i.e. `this._flush`).\n\n### options\n\nThe options argument is optional and is passed straight through to `stream.Transform`. So you can use `objectMode:true` if you are processing non-binary streams (or just use `through2.obj()`).\n\nThe `options` argument is first, unlike standard convention, because if I'm passing in an anonymous function then I'd prefer for the options argument to not get lost at the end of the call:\n\n```js\nfs.createReadStream('/tmp/important.dat')\n .pipe(through2({ objectMode: true, allowHalfOpen: false }, function (chunk, enc, cb) {\n\n this.push(new Buffer('wut?'))\n cb()\n\n })\n .pipe(fs.createWriteStream('/tmp/wut.txt'))\n```\n\n### transformFunction\n\nThe `transformFunction` must have the following signature: `function (chunk, encoding, callback) {}`. A minimal implementation should call the `callback` function to indicate that the transformation is done, even if that transformation means discarding the chunk.\n\nTo queue a new chunk, call `this.push(chunk)`—this can be called as many times as required before the `callback()` if you have multiple pieces to send on.\n\nIf you **do not provide a `transformFunction`** then you will get a simple simple pass-through stream.\n\n### flushFunction\n\nThe optional `flushFunction` is provided as the last argument (2nd or 3rd, depending on whether you've supplied options) is called just prior to the stream ending. Can be used to finish up any processing that may be in progress.\n\nthrough2.ctor([ options, ] transformFunction[, flushFunction ])\n\nInstead of returning a `stream.Transform` instance, `through2.ctor()` returns a **constructor** for a custom Transform. This is useful when you want to use the same transform logic in multiple instances.\n\n```js\nvar FToC = through2.ctor({objectMode: true}, function (record, encoding, callback) {\n if (record.temp != null && record.unit = \"F\") {\n record.temp = ( ( record.temp - 32 ) * 5 ) / 9\n record.unit = \"C\"\n }\n this.push(record)\n callback()\n})\n\n// Create instances of FToC like so:\nvar converter = new FToC()\n// Or:\nvar converter = FToC()\n// Or specify/override options when you instantiate, if you prefer:\nvar converter = FToC({objectMode: true})\n```\n\n## License\n\n**through2** is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/rvagg/through2/issues" + }, + "homepage": "https://github.com/rvagg/through2", + "_id": "through2@0.4.1", + "dist": { + "shasum": "48772c8b50c4955c25e7cdbe69f4220f4138178b" + }, + "_from": "through2@~0.4.0", + "_resolved": "https://registry.npmjs.org/through2/-/through2-0.4.1.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js new file mode 100644 index 00000000..9d137c7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/basic-test.js @@ -0,0 +1,334 @@ +const test = require('tape') + , through2 = require('../') + , crypto = require('crypto') + , bl = require('bl') + , spigot = require('stream-spigot') + +test('plain through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('pipeable through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + // bl() acts like a proper streams2 stream and passes as much as it's + // asked for, so we really only get one write with such a small amount + // of data + t.equal(s, 'aaaaaaaaaaaaaaaaaaaaaaaaa', 'got transformed string') + t.end() + })) + + var bufs = bl() + bufs.append(crypto.randomBytes(10)) + bufs.append(crypto.randomBytes(5)) + bufs.append(crypto.randomBytes(10)) + bufs.pipe(th2) +}) + +test('object through', function (t) { + t.plan(3) + + var th2 = through2({ objectMode: true}, function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object through with through2.obj', function (t) { + t.plan(3) + + var th2 = through2.obj(function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('flushing through', function (t) { + var th2 = through2(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }, function (callback) { + this.push(new Buffer([ 101, 110, 100 ])) + callback() + }) + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal(s, 'aaaaaaaaaabbbbbccccccccccend', 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('plain through ctor', function (t) { + var Th2 = through2.ctor(function (chunk, enc, callback) { + if (!this._i) + this._i = 97 // 'a' + else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + var th2 = new Th2() + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + t.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('reuse through ctor', function (t) { + t.plan(4) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + if (!this._i) { + t.ok(1, 'did not contain previous instance data (this._i)') + this._i = 97 // 'a' + } else + this._i++ + var b = new Buffer(chunk.length) + for (var i = 0; i < chunk.length; i++) + b[i] = this._i + this.push(b) + callback() + }) + + var th2 = Th2() + + th2.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string') + + var newInstance = Th2() + newInstance.pipe(bl(function (err, b) { + var s = b.toString('ascii') + t.equal('aaaaaaabbbbccccccc', s, 'got transformed string') + })) + + newInstance.write(crypto.randomBytes(7)) + newInstance.write(crypto.randomBytes(4)) + newInstance.write(crypto.randomBytes(7)) + newInstance.end() + })) + + th2.write(crypto.randomBytes(10)) + th2.write(crypto.randomBytes(5)) + th2.write(crypto.randomBytes(10)) + th2.end() +}) + +test('object through ctor', function (t) { + t.plan(3) + + var Th2 = through2.ctor({ objectMode: true}, function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = new Th2() + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('pipeable object through ctor', function (t) { + t.plan(4) + + var Th2 = through2.ctor({ objectMode: true}, function (record, enc, callback) { + if (record.temp != null && record.unit == 'F') { + record.temp = ( ( record.temp - 32 ) * 5 ) / 9 + record.unit = 'C' + } + this.push(record) + callback() + }) + + var th2 = Th2() + + var expect = [-19, -40, 100, 22] + th2.on('data', function (o) { + t.deepEqual(o, { temp: expect.shift(), unit: 'C' }, 'got transformed object') + }) + + spigot({objectMode: true}, [ + {temp: -2.2, unit: 'F'}, + {temp: -40, unit: 'F'}, + {temp: 212, unit: 'F'}, + {temp: 22, unit: 'C'} + ]).pipe(th2) +}) + +test('object through ctor override', function (t) { + t.plan(3) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({objectMode: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object settings available in transform', function (t) { + t.plan(6) + + var Th2 = through2.ctor({objectMode: true, peek: true}, function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2() + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object settings available in transform override', function (t) { + t.plan(6) + + var Th2 = through2.ctor(function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({objectMode: true, peek: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) + +test('object override extends options', function (t) { + t.plan(6) + + var Th2 = through2.ctor({objectMode: true}, function (chunk, enc, callback) { + t.ok(this.options.peek, "reading options from inside _transform") + this.push({ out: chunk.in + 1 }) + callback() + }) + + var th2 = Th2({peek: true}) + + var e = 0 + th2.on('data', function (o) { + t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object') + e++ + }) + + th2.write({ in: 101 }) + th2.write({ in: 202 }) + th2.write({ in: -100 }) + th2.end() +}) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js new file mode 100644 index 00000000..cc10868b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/bench.js @@ -0,0 +1,42 @@ +/* +on rvagg@fletcher: + @0.2.3: Ran 36719 iterations in 10000 ms +*/ + +const through2 = require('../') + , bl = require('bl') + , crypto = require('crypto') + , assert = require('assert') + +function run (callback) { + var bufs = Array.apply(null, Array(10)).map(function () { return crypto.randomBytes(32) }) + , stream = through2(function (chunk, env, callback) { + callback(null, chunk.toString('hex')) + }) + + stream.pipe(bl(function (err, data) { + assert(!err) + assert.equal(data.toString(), Buffer.concat(bufs).toString('hex')) + callback() + })) + + bufs.forEach(function (b) { + stream.write(b) + }) + stream.end() +} + +var count = 0 + , start = Date.now() + +;(function exec () { + count++ + run(function () { + if (Date.now() - start < 1000 * 10) { + return setImmediate(exec) + } + console.log('Ran', count, 'iterations in', Date.now() - start, 'ms') + }) +}()) + +console.log('Running for ~10s') \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js new file mode 100644 index 00000000..a6d28625 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/sauce.js @@ -0,0 +1,38 @@ +#!/usr/bin/env node + +const user = process.env.SAUCE_USER + , key = process.env.SAUCE_KEY + , path = require('path') + , brtapsauce = require('brtapsauce') + , testFile = path.join(__dirname, 'basic-test.js') + + , capabilities = [ + { browserName: 'chrome' , platform: 'Windows XP', version: '' } + , { browserName: 'firefox' , platform: 'Windows 8' , version: '' } + , { browserName: 'firefox' , platform: 'Windows XP', version: '4' } + , { browserName: 'internet explorer' , platform: 'Windows 8' , version: '10' } + , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '9' } + , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '8' } + , { browserName: 'internet explorer' , platform: 'Windows XP', version: '7' } + , { browserName: 'internet explorer' , platform: 'Windows XP', version: '6' } + , { browserName: 'safari' , platform: 'Windows 7' , version: '5' } + , { browserName: 'safari' , platform: 'OS X 10.8' , version: '6' } + , { browserName: 'opera' , platform: 'Windows 7' , version: '' } + , { browserName: 'opera' , platform: 'Windows 7' , version: '11' } + , { browserName: 'ipad' , platform: 'OS X 10.8' , version: '6' } + , { browserName: 'android' , platform: 'Linux' , version: '4.0', 'device-type': 'tablet' } + ] + +if (!user) + throw new Error('Must set a SAUCE_USER env var') +if (!key) + throw new Error('Must set a SAUCE_KEY env var') + +brtapsauce({ + name : 'Traversty' + , user : user + , key : key + , brsrc : testFile + , capabilities : capabilities + , options : { timeout: 60 * 6 } +}) \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js new file mode 100644 index 00000000..aa9b4877 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/test/test.js @@ -0,0 +1,9 @@ +require('./basic-test') + +if (!process.env.SAUCE_KEY || !process.env.SAUCE_USER) + return console.log('SAUCE_KEY and/or SAUCE_USER not set, not running sauce tests') + +if (!/v0\.10/.test(process.version)) + return console.log('Not Node v0.10.x, not running sauce tests') + +require('./sauce.js') \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js new file mode 100644 index 00000000..c1104848 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/through2/through2.js @@ -0,0 +1,78 @@ +var Transform = require('readable-stream/transform') + , inherits = require('util').inherits + , xtend = require('xtend') + + +// a noop _transform function +function noop (chunk, enc, callback) { + callback(null, chunk) +} + + +// create a new export function, used by both the main export and +// the .ctor export, contains common logic for dealing with arguments +function through2 (construct) { + return function (options, transform, flush) { + if (typeof options == 'function') { + flush = transform + transform = options + options = {} + } + + if (typeof transform != 'function') + transform = noop + + if (typeof flush != 'function') + flush = null + + return construct(options, transform, flush) + } +} + + +// main export, just make me a transform stream! +module.exports = through2(function (options, transform, flush) { + var t2 = new Transform(options) + + t2._transform = transform + + if (flush) + t2._flush = flush + + return t2 +}) + + +// make me a reusable prototype that I can `new`, or implicitly `new` +// with a constructor call +module.exports.ctor = through2(function (options, transform, flush) { + function Through2 (override) { + if (!(this instanceof Through2)) + return new Through2(override) + + this.options = xtend(options, override) + + Transform.call(this, this.options) + } + + inherits(Through2, Transform) + + Through2.prototype._transform = transform + + if (flush) + Through2.prototype._flush = flush + + return Through2 +}) + + +module.exports.obj = through2(function (options, transform, flush) { + var t2 = new Transform(xtend({ objectMode: true }, options)) + + t2._transform = transform + + if (flush) + t2._flush = flush + + return t2 +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/package.json new file mode 100644 index 00000000..d289871c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/package.json @@ -0,0 +1,55 @@ +{ + "name": "download", + "version": "0.1.10", + "description": "Download and extract files effortlessly", + "keywords": [ + "url", + "http", + "download", + "extract" + ], + "homepage": "https://github.com/kevva/download", + "bugs": { + "url": "https://github.com/kevva/download/issues" + }, + "author": { + "name": "Kevin Martensson", + "email": "kevinmartensson@gmail.com", + "url": "http://kevinmartensson.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/kevva/download.git" + }, + "scripts": { + "test": "mocha --reporter list" + }, + "main": "download.js", + "files": [ + "download.js" + ], + "dependencies": { + "decompress": "~0.1.5", + "each-async": "~0.1.1", + "mkdirp": "~0.3.5", + "request": "~2.31.0", + "through2": "~0.4.0" + }, + "devDependencies": { + "mocha": "~1.17.0", + "nock": "~0.27.1", + "rimraf": "~2.2.5" + }, + "engines": { + "node": ">=0.10.0" + }, + "readme": "# download [![Build Status](https://secure.travis-ci.org/kevva/download.png?branch=master)](http://travis-ci.org/kevva/download)\n\nDownload and extract files effortlessly in Node.js.\n\n## Getting started\n\nInstall with [npm](https://npmjs.org/package/download): `npm install download`\n\n## Examples\n\nIf you're fetching an archive you can set `extract: true` in options and\nit'll extract it for you.\n\n```js\nvar download = require('download');\n\n// download and extract `foo.tar.gz` into `bar/`\ndownload('foo.tar.gz', 'bar', { extract: true });\n\n// download and save `foo.exe` into `bar/foo.exe` with mode `0755`\ndownload('foo.exe', 'bar', { mode: '0755' });\n\n// download and save `foo.zip` into `bar/foobar.zip`\ndownload({ url: 'foo.zip', name: 'foobar.zip' }, 'bar');\n\n// download and save an array of files in `bar/`\nvar files = ['foo.jpg', 'bar.jpg', 'cat.jpg'];\ndownload(files, 'bar');\n\n// download, save and rename an array of files in `bar/`\nvar files = [{\n url: 'foo.jpg',\n name: 'foobar.jpg'\n}, {\n url: 'cat.jpg',\n name: 'dog.jpg'\n}];\ndownload(files, 'bar');\n```\n\n## API\n\n### download(url, dest, opts)\n\nDownload a file or an array of files to a given destination. Returns an EventEmitter \nthat emits the following possible events:\n\n* `response` — Relayed when the underlying `http.ClientRequest` emits the same \nevent. Listeners called with a `http.IncomingMessage` instance.\n* `data` — Relayed when the underlying `http.IncomingMessage` emits the same \nevent. Listeners called with a `Buffer` instance.\n* `error` — Relayed when the underlying `http.ClientRequest` emits the same event \nor when the response status code is not in the 200s. Listeners called with an \n`Error` instance (in the first case) or the response status code.\n* `close` — Relayed when the underlying `stream.Duplex` emits the same event.\n\n## Options\n\nYou can define options accepted by the [request](https://github.com/mikeal/request/) module besides from the options below.\n\n### extract\n\nType: `Boolean` \nDefault: `false`\n\nIf set to `true`, try extracting the file using [decompress](https://github.com/kevva/decompress/).\n\n### mode\n\nType: `String` \nDefault: `undefined`\n\nSet mode on the downloaded files.\n\n### strip\n\nType: `Number` \nDefault: `0`\n\nEquivalent to `--strip-components` for tar.\n\n## License\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License) (c) [Kevin Mårtensson](http://kevinmartensson.com)\n", + "readmeFilename": "README.md", + "_id": "download@0.1.10", + "dist": { + "shasum": "dc5d3ab4a7fc78e374e2de0381273b7b999bc29d" + }, + "_from": "download@~0.1.2", + "_resolved": "https://registry.npmjs.org/download/-/download-0.1.10.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore new file mode 100644 index 00000000..2ccbe465 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.npmignore @@ -0,0 +1 @@ +/node_modules/ diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml new file mode 100644 index 00000000..c1ffcb31 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - 0.8 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/History.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/History.md new file mode 100644 index 00000000..d1fa5334 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/History.md @@ -0,0 +1,20 @@ + +0.0.2 / 2013-05-29 +================== + + * Updated github url + * Fix bug calling isbin with list of paths + * Add tests for sync version + * Added travis CI passing image to readme + * Added node engines and keywords + * Added travis CI config + * Added basic readme + * Added basic test suite and Makefile + * Add async version + * Some refactorings using 'some' function + * Fixed issue with wrong paths if called multiple times + +0.0.1 / 2012-12-06 +================== + + * Initial release diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile new file mode 100644 index 00000000..1a2444a1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/Makefile @@ -0,0 +1,6 @@ +REPORTER ?= dot + +test: + @NODE_ENV=test ./node_modules/mocha/bin/mocha -R $(REPORTER) + +.PHONY: test diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/README.md new file mode 100644 index 00000000..5224d614 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/README.md @@ -0,0 +1,59 @@ +[![Build Status](https://secure.travis-ci.org/mbehrendt/isbin.png?branch=master)](https://travis-ci.org/mbehrendt/isbin) + +# Isbin + +Tiny little helper library to determine if a certain binary is available within $PATH or any additional folder. + +# Installation + +```bash +$ npm install isbin +``` + +# Usage + +```js +var isbin = require('isbin'); + +// Test against $PATH +isbin('mysql', function(exists) { + console.log(exists); // ==> Boolean +}); + +// With additional path to test +isbin('mysql', '/usr/local/bin', function(exists) { + console.log(exists); // ==> Boolean +}); + +// Or multiple ones +isbin('mysql', ['/usr/local/bin', '/home/me/bins'], function(exists) { + console.log(exists); // ==> Boolean +}); +``` + +There are also synchronous versions available + +```js +var exists = isbin('mysql'); +var exists = isbin('mysql', '/usr/local/bin'); +var exists = isbin('mysql', ['/usr/local/bin', '/home/me/bins']); +``` + +# Running the tests + +```bash +$ npm install +$ make test +``` + +# License + +(The MIT License) + +Copyright (c) 2012 Mario Behrendt info@mario-behrendt.de, Stephan Hoyer + +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/index.js new file mode 100644 index 00000000..bb0a047c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/index.js @@ -0,0 +1 @@ +module.exports = require('./lib'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js new file mode 100644 index 00000000..1b8a5cac --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/lib/index.js @@ -0,0 +1,51 @@ +/** + * Require dependencies + */ + +var fs = require('fs') + , async = require('async'); + +/** + * Check if given binary exists + * + * @param {String} bin Binary to test + * @param {String|Array} additional Additional paths to check + * @param {Function(result)} isbinChecked Callback when check is done async, optional + * @return {Boolean} True if binary was found + */ + +function isbin(bin, additional, isbinChecked) { + // isbin(bin, cb) + if (!isbinChecked) isbinChecked = additional; + + // Read $PATH to get set up bin folders + var paths = process.env.PATH.split(':') || []; + + // isbin(bin, 'path', cb) + if ('string' === typeof additional) { + paths.push(additional); + } + + // isbin(bin, ['path1', 'path2'], cb) + if ('object' === typeof additional && additional.length !== null) { + paths.concat(additional); + } + + // async check + if ('function' === typeof isbinChecked) { + return async.some(paths, function(path, pathChecked) { + fs.exists(path + '/' + bin, pathChecked); + }, isbinChecked); + } + + // sync check + return paths.reverse().some(function(path) { + return fs.existsSync(path + '/' + bin); + }); +}; + +/** + * Expose module + */ + +module.exports = isbin; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules new file mode 100644 index 00000000..a9aae984 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.gitmodules @@ -0,0 +1,9 @@ +[submodule "deps/nodeunit"] + path = deps/nodeunit + url = git://github.com/caolan/nodeunit.git +[submodule "deps/UglifyJS"] + path = deps/UglifyJS + url = https://github.com/mishoo/UglifyJS.git +[submodule "deps/nodelint"] + path = deps/nodelint + url = https://github.com/tav/nodelint.git diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore new file mode 100644 index 00000000..9bdfc97c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/.npmignore @@ -0,0 +1,4 @@ +deps +dist +test +nodelint.cfg \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE new file mode 100644 index 00000000..b7f9d500 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010 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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile new file mode 100644 index 00000000..bad647c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/Makefile @@ -0,0 +1,25 @@ +PACKAGE = asyncjs +NODEJS = $(if $(shell test -f /usr/bin/nodejs && echo "true"),nodejs,node) +CWD := $(shell pwd) +NODEUNIT = $(CWD)/node_modules/nodeunit/bin/nodeunit +UGLIFY = $(CWD)/node_modules/uglify-js/bin/uglifyjs +NODELINT = $(CWD)/node_modules/nodelint/nodelint + +BUILDDIR = dist + +all: clean test build + +build: $(wildcard lib/*.js) + mkdir -p $(BUILDDIR) + $(UGLIFY) lib/async.js > $(BUILDDIR)/async.min.js + +test: + $(NODEUNIT) test + +clean: + rm -rf $(BUILDDIR) + +lint: + $(NODELINT) --config nodelint.cfg lib/async.js + +.PHONY: test build all diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md new file mode 100644 index 00000000..1bbbc477 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/README.md @@ -0,0 +1,1021 @@ +# Async.js + +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), it can also be used directly in the +browser. + +Async provides around 20 functions that include the usual 'functional' +suspects (map, reduce, filter, forEach…) 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 + + 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'], path.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. + + +## Download + +Releases are available for download from +[GitHub](http://github.com/caolan/async/downloads). +Alternatively, you can install using Node Package Manager (npm): + + npm install async + + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed + +__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped + + +## In the Browser + +So far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage: + + + + + +## Documentation + +### Collections + +* [forEach](#forEach) +* [map](#map) +* [filter](#filter) +* [reject](#reject) +* [reduce](#reduce) +* [detect](#detect) +* [sortBy](#sortBy) +* [some](#some) +* [every](#every) +* [concat](#concat) + +### Control Flow + +* [series](#series) +* [parallel](#parallel) +* [whilst](#whilst) +* [until](#until) +* [waterfall](#waterfall) +* [queue](#queue) +* [auto](#auto) +* [iterator](#iterator) +* [apply](#apply) +* [nextTick](#nextTick) + +### Utils + +* [memoize](#memoize) +* [unmemoize](#unmemoize) +* [log](#log) +* [dir](#dir) +* [noConflict](#noConflict) + + +## Collections + + +### forEach(arr, iterator, callback) + +Applies an iterator function to each item in an array, 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 this callback, the main +callback for the forEach 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. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(err) - A callback which is called after all the iterator functions + have finished, or an error has occurred. + +__Example__ + + // assuming openFiles is an array of file names and saveFile is a function + // to save the modified contents of that file: + + async.forEach(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error + }); + +--------------------------------------- + + +### forEachSeries(arr, iterator, callback) + +The same as forEach only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. This means the iterator functions will complete in order. + + +--------------------------------------- + + +### forEachLimit(arr, limit, iterator, callback) + +The same as forEach only the iterator is applied to batches of items in the +array, in series. The next batch of iterators is only called once the current +one has completed processing. + +__Arguments__ + +* arr - An array to iterate over. +* limit - How many items should be in each batch. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(err) - A callback which is called after all the iterator functions + have finished, or an error has occurred. + +__Example__ + + // Assume documents is an array of JSON objects and requestApi is a + // function that interacts with a rate-limited REST api. + + async.forEachLimit(documents, 20, requestApi, function(err){ + // if any of the saves produced an error, err would equal that error + }); +--------------------------------------- + + +### map(arr, iterator, callback) + +Produces a new array of values by mapping each value in the given array through +the iterator function. The iterator is called with an item from the array and a +callback for when it has finished processing. The callback takes 2 arguments, +an error and the transformed item from the array. If the iterator passes an +error to this 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 array. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed + with an error (which can be null) and a transformed item. +* callback(err, results) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is an array of the + transformed items from the original array. + +__Example__ + + async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file + }); + +--------------------------------------- + + +### mapSeries(arr, iterator, callback) + +The same as map only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. The results array will be in the same order as the original. + + +--------------------------------------- + + +### filter(arr, iterator, callback) + +__Alias:__ select + +Returns a new array of all the values 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 path.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 the array. + The iterator is passed a callback which must be called once it has completed. +* callback(results) - A callback which is called after all the iterator + functions have finished. + +__Example__ + + async.filter(['file1','file2','file3'], path.exists, function(results){ + // results now equals an array of the existing files + }); + +--------------------------------------- + + +### filterSeries(arr, iterator, callback) + +__alias:__ selectSeries + +The same as filter only the iterator is applied to each item in the array in +series. The next iterator is only called once the current one has completed +processing. The results array will be in the same order as the original. + +--------------------------------------- + + +### reject(arr, iterator, callback) + +The opposite of filter. Removes values that pass an async truth test. + +--------------------------------------- + + +### rejectSeries(arr, iterator, callback) + +The same as filter, only the iterator is applied to each item in the array +in series. + + +--------------------------------------- + + +### reduce(arr, memo, iterator, callback) + +__aliases:__ inject, foldl + +Reduces a list of values 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, 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 its 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 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) - A callback which is called after all the iterator + functions have finished. Result is the reduced value. + +__Example__ + + 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 + }); + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, callback) + +__Alias:__ foldr + +Same as reduce, only operates on the items in the array in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, callback) + +Returns the first value in a list 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 array (in terms of order) that passes the test. + +If order within the original array is important then look at detectSeries. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A truth test to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - 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. + +__Example__ + + async.detect(['file1','file2','file3'], path.exists, function(result){ + // result now equals the first file in the list that exists + }); + +--------------------------------------- + + +### detectSeries(arr, iterator, callback) + +The same as detect, only the iterator is applied to each item in the array +in series. This means the result is always the first in the original array (in +terms of array order) that passes the truth test. + + +--------------------------------------- + + +### sortBy(arr, iterator, callback) + +Sorts a list by the results of running each value through an async iterator. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback 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) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is the items from + the original array sorted by the values returned by the iterator calls. + +__Example__ + + 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 + }); + + +--------------------------------------- + + +### some(arr, iterator, callback) + +__Alias:__ any + +Returns true if at least one element in the array 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 path.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. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - 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. + +__Example__ + + async.some(['file1','file2','file3'], path.exists, function(result){ + // if result is true then at least one of the files exists + }); + +--------------------------------------- + + +### every(arr, iterator, callback) + +__Alias:__ all + +Returns true if every element in the array 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 path.exists. + +__Arguments__ + +* arr - An array to iterate over. +* iterator(item, callback) - A truth test to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed. +* callback(result) - A callback which is called after all the iterator + functions have finished. Result will be either true or false depending on + the values of the async tests. + +__Example__ + + async.every(['file1','file2','file3'], path.exists, function(result){ + // if result is true then every file exists + }); + +--------------------------------------- + + +### concat(arr, iterator, callback) + +Applies an iterator to each item in a list, concatenating the results. Returns the +concatenated list. The iterators 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 the arguments passed to the iterator function. + +__Arguments__ + +* arr - An array to iterate over +* iterator(item, callback) - A function to apply to each item in the array. + The iterator is passed a callback which must be called once it has completed + with an error (which can be null) and an array of results. +* callback(err, results) - A callback which is called after all the iterator + functions have finished, or an error has occurred. Results is an array containing + the concatenated results of the iterator function. + +__Example__ + + async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories + }); + +--------------------------------------- + + +### concatSeries(arr, iterator, callback) + +Same as async.concat, but executes in series instead of parallel. + + +## Control Flow + + +### series(tasks, [callback]) + +Run an array of functions 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 the callback for the series 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. + +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 +async.series. + + +__Arguments__ + +* tasks - An array or object containing functions to run, each function is passed + a callback it must call on completion. +* callback(err, results) - An optional callback to run once all the functions + have completed. This function gets an array of all the arguments passed to + the callbacks used in the array. + +__Example__ + + 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} + }); + + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run an 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. + +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 +async.parallel. + + +__Arguments__ + +* tasks - An array or object containing functions to run, each function is passed a + callback it must call on completion. +* callback(err, results) - An optional callback to run once all the functions + have completed. This function gets an array of all the arguments passed to + the callbacks used in the array. + +__Example__ + + 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} + }); + + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call fn, while test returns true. Calls the callback when stopped, +or an error occurs. + +__Arguments__ + +* test() - synchronous truth test to perform before each execution of fn. +* fn(callback) - A function to call each time the test passes. The function is + passed a callback which must be called once it has completed with an optional + error as the first argument. +* callback(err) - A callback which is called after the test fails and repeated + execution of fn has stopped. + +__Example__ + + var count = 0; + + async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } + ); + + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call fn, until test returns true. Calls the callback when stopped, +or an error occurs. + +The inverse of async.whilst. + + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs an array of functions in series, each passing their results to the next in +the array. However, if any of the functions pass an error to the 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 it + must call on completion. +* 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__ + + async.waterfall([ + function(callback){ + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback){ + callback(null, 'three'); + }, + function(arg1, callback){ + // arg1 now equals 'three' + callback(null, 'done'); + } + ], function (err, result) { + // result now equals 'done' + }); + + +--------------------------------------- + + +### queue(worker, concurrency) + +Creates a queue object with the specified concurrency. Tasks added to the +queue will be processed in parallel (up to the concurrency limit). If all +workers are in progress, the task is queued until one is available. Once +a worker has completed a task, the task's callback is called. + +__Arguments__ + +* worker(task, callback) - An asynchronous function for processing a queued + task. +* concurrency - An integer for determining how many worker functions should be + run in parallel. + +__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. +* 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, 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 + +__Example__ + + // 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 bar'); + }); + + +--------------------------------------- + + +### auto(tasks, [callback]) + +Determines the best order for running functions 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, that function will not complete +(so any other functions depending on it will not run) and the main callback +will be called immediately with the error. Functions also receive an object +containing the results of functions which have completed so far. + +__Arguments__ + +* tasks - An object literal containing named functions or an array of + requirements, with the function itself the last item in the array. The key + used for each function or array is used when specifying requirements. The + syntax is easier to understand by looking at the example. +* callback(err, results) - An optional callback which is called when all the + tasks have been completed. The callback will receive an error as an argument + if any tasks pass an error to their callback. If all tasks complete + successfully, it will receive an object containing their results. + +__Example__ + + async.auto({ + get_data: function(callback){ + // async code to get some data + }, + make_folder: function(callback){ + // async code to create a directory to store a file in + // this is run at the same time as getting the data + }, + write_file: ['get_data', 'make_folder', function(callback){ + // 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){ + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + }] + }); + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + + async.parallel([ + function(callback){ + // async code to get some data + }, + function(callback){ + // async code to create a directory to store a file in + // this is run at the same time as getting the data + } + ], + function(results){ + async.series([ + function(callback){ + // once there is some data and the directory exists, + // write the data to a file in the directory + }, + email_link: function(callback){ + // once the file is written let's email a link to it... + } + ]); + }); + +For a complicated series of async tasks using the auto function makes adding +new tasks much easier and makes the code more readable. + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the array, +returning a continuation to call the next one after that. Its also possible to +'peek' the next iterator by doing 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, each function is passed a callback it + must call on completion. + +__Example__ + + 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' + + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied, a useful +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__ + + // 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: + + node> var fn = async.apply(sys.puts, 'one'); + node> fn('two', 'three'); + one + two + three + +--------------------------------------- + + +### nextTick(callback) + +Calls the callback on a later loop around the event loop. In node.js this just +calls process.nextTick, in the browser it falls back to setTimeout(callback, 0), +which means other higher priority events may precede the execution of the callback. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* callback - The function to call on a later loop around the event loop. + +__Example__ + + var call_order = []; + async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two] + }); + call_order.push('one') + + +## Utils + + +### 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. + +__Arguments__ + +* fn - the function you 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__ + + 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 + }); + + +### unmemoize(fn) + +Undoes a memoized function, reverting it to the original, unmemoized +form. Comes handy in tests. + +__Arguments__ + +* fn - the memoized function + + +### 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__ + + var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); + }; + + node> async.log(hello, 'world'); + 'hello world' + + +--------------------------------------- + + +### 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__ + + var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); + }; + + node> async.dir(hello, 'world'); + {hello: 'world'} + + +--------------------------------------- + + +### noConflict() + +Changes the value of async back to its original value, returning a reference to the +async object. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js new file mode 100644 index 00000000..8e238453 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/index.js @@ -0,0 +1,3 @@ +// This file is just added for convenience so this repository can be +// directly checked out into a project's deps folder +module.exports = require('./lib/async'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js new file mode 100644 index 00000000..7cc4f5ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/lib/async.js @@ -0,0 +1,692 @@ +/*global setTimeout: false, console: false */ +(function () { + + var async = {}; + + // global on the server, window in the browser + var root = this, + previous_async = root.async; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + else { + root.async = async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function (arr, iterator) { + if (arr.forEach) { + return arr.forEach(iterator); + } + for (var i = 0; i < arr.length; i += 1) { + iterator(arr[i], i, arr); + } + }; + + var _map = function (arr, iterator) { + if (arr.map) { + return arr.map(iterator); + } + var results = []; + _forEach(arr, function (x, i, a) { + results.push(iterator(x, i, a)); + }); + return results; + }; + + var _reduce = function (arr, iterator, memo) { + if (arr.reduce) { + return arr.reduce(iterator, memo); + } + _forEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + if (typeof process === 'undefined' || !(process.nextTick)) { + async.nextTick = function (fn) { + setTimeout(fn, 0); + }; + } + else { + async.nextTick = process.nextTick; + } + + async.forEach = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + _forEach(arr, function (x) { + iterator(x, function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(null); + } + } + }); + }); + }; + + async.forEachSeries = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(null); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + + async.forEachLimit = function (arr, limit, iterator, callback) { + callback = callback || function () {}; + if (!arr.length || limit <= 0) { + return callback(); + } + var completed = 0; + var started = 0; + var running = 0; + + (function replenish () { + if (completed === arr.length) { + return callback(); + } + + while (running < limit && started < arr.length) { + started += 1; + running += 1; + iterator(arr[started - 1], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + running -= 1; + if (completed === arr.length) { + callback(); + } + else { + replenish(); + } + } + }); + } + })(); + }; + + + var doParallel = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEach].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.forEachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + main_callback = function () {}; + } + else { + callback(); + } + }); + }, function (err) { + main_callback(); + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + 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 { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + if (!keys.length) { + return callback(null); + } + + var results = {}; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + _forEach(listeners.slice(0), function (fn) { + fn(); + }); + }; + + addListener(function () { + if (_keys(results).length === keys.length) { + callback(null, results); + callback = function () {}; + } + }); + + _forEach(keys, function (k) { + var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; + var taskCallback = function (err) { + if (err) { + callback(err); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + taskComplete(); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + }; + if (ready()) { + task[task.length - 1](taskCallback, results); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + }; + addListener(listener); + } + }); + }; + + async.waterfall = function (tasks, callback) { + callback = callback || function () {}; + if (!tasks.length) { + return callback(); + } + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.nextTick(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + async.parallel = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.forEach(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.forEachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + 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 = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.queue = function (worker, concurrency) { + var workers = 0; + var q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + push: function (data, callback) { + if(data.constructor !== Array) { + data = [data]; + } + _forEach(data, function(task) { + q.tasks.push({ + data: task, + callback: typeof callback === 'function' ? callback : null + }); + if (q.saturated && q.tasks.length == concurrency) { + q.saturated(); + } + async.nextTick(q.process); + }); + }, + process: function () { + if (workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + if(q.empty && q.tasks.length == 0) q.empty(); + workers += 1; + worker(task.data, function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + if(q.drain && q.tasks.length + workers == 0) q.drain(); + q.process(); + }); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + } + }; + return q; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _forEach(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 = {}; + hasher = hasher || function (x) { + return x; + }; + var memoized = function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + callback.apply(null, memo[key]); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([function () { + memo[key] = arguments; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, arguments); + } + }])); + } + }; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + +}()); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json new file mode 100644 index 00000000..31e18559 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/node_modules/async/package.json @@ -0,0 +1,36 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "main": "./index", + "author": { + "name": "Caolan McMahon" + }, + "version": "0.1.22", + "repository": { + "type": "git", + "url": "http://github.com/caolan/async.git" + }, + "bugs": { + "url": "http://github.com/caolan/async/issues" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/caolan/async/raw/master/LICENSE" + } + ], + "devDependencies": { + "nodeunit": ">0.0.0", + "uglify-js": "1.2.x", + "nodelint": ">0.0.0" + }, + "readme": "# Async.js\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [node.js](http://nodejs.org), it can also be used directly in the\nbrowser.\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (map, reduce, filter, forEach…) as well as some common patterns\nfor asynchronous control flow (parallel, series, waterfall…). All these\nfunctions assume you follow the node.js convention of providing a single\ncallback as the last argument of your async function.\n\n\n## Quick Examples\n\n async.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n });\n\n async.filter(['file1','file2','file3'], path.exists, function(results){\n // results now equals an array of the existing files\n });\n\n async.parallel([\n function(){ ... },\n function(){ ... }\n ], callback);\n\n async.series([\n function(){ ... },\n function(){ ... }\n ]);\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n\n## Download\n\nReleases are available for download from\n[GitHub](http://github.com/caolan/async/downloads).\nAlternatively, you can install using Node Package Manager (npm):\n\n npm install async\n\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 17.5kb Uncompressed\n\n__Production:__ [async.min.js](https://github.com/caolan/async/raw/master/dist/async.min.js) - 1.7kb Packed and Gzipped\n\n\n## In the Browser\n\nSo far its been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:\n\n \n \n\n\n## Documentation\n\n### Collections\n\n* [forEach](#forEach)\n* [map](#map)\n* [filter](#filter)\n* [reject](#reject)\n* [reduce](#reduce)\n* [detect](#detect)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [whilst](#whilst)\n* [until](#until)\n* [waterfall](#waterfall)\n* [queue](#queue)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n\n### Utils\n\n* [memoize](#memoize)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n\n### forEach(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the forEach function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n // assuming openFiles is an array of file names and saveFile is a function\n // to save the modified contents of that file:\n\n async.forEach(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n });\n\n---------------------------------------\n\n\n### forEachSeries(arr, iterator, callback)\n\nThe same as forEach only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n\n### forEachLimit(arr, limit, iterator, callback)\n\nThe same as forEach only the iterator is applied to batches of items in the\narray, in series. The next batch of iterators is only called once the current\none has completed processing.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - How many items should be in each batch.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n // Assume documents is an array of JSON objects and requestApi is a\n // function that interacts with a rate-limited REST api.\n\n async.forEachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n });\n---------------------------------------\n\n\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n async.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n });\n\n---------------------------------------\n\n\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a new array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(results) - A callback which is called after all the iterator\n functions have finished.\n\n__Example__\n\n async.filter(['file1','file2','file3'], path.exists, function(results){\n // results now equals an array of the existing files\n });\n\n---------------------------------------\n\n\n### filterSeries(arr, iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n\n### rejectSeries(arr, iterator, callback)\n\nThe same as filter, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. For performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then its probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n array to produce the next step in the reduction. The iterator is passed a\n callback which accepts an optional error as its first argument, and the state\n of the reduction as the second. If an error is passed to the callback, the\n reduction is stopped and the main callback is immediately called with the\n error.\n* callback(err, result) - A callback which is called after all the iterator\n functions have finished. Result is the reduced value.\n\n__Example__\n\n async.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n }, function(err, result){\n // result is now equal to the last value of memo, which is 6\n });\n\n---------------------------------------\n\n\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value undefined if none passed.\n\n__Example__\n\n async.detect(['file1','file2','file3'], path.exists, function(result){\n // result now equals the first file in the list that exists\n });\n\n---------------------------------------\n\n\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and a value to use as the sort criteria.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is the items from\n the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n async.sortBy(['file1','file2','file3'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n }, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n });\n\n\n---------------------------------------\n\n\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n either true or false depending on the values of the async tests.\n\n__Example__\n\n async.some(['file1','file2','file3'], path.exists, function(result){\n // if result is true then at least one of the files exists\n });\n\n---------------------------------------\n\n\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like path.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed.\n* callback(result) - A callback which is called after all the iterator\n functions have finished. Result will be either true or false depending on\n the values of the async tests.\n\n__Example__\n\n async.every(['file1','file2','file3'], path.exists, function(result){\n // if result is true then every file exists\n });\n\n---------------------------------------\n\n\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback which must be called once it has completed\n with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array containing\n the concatenated results of the iterator function.\n\n__Example__\n\n async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n });\n\n---------------------------------------\n\n\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n a callback it must call on completion.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets an array of all the arguments passed to\n the callbacks used in the array.\n\n__Example__\n\n async.series([\n function(callback){\n // do some stuff ...\n callback(null, 'one');\n },\n function(callback){\n // do some more stuff ...\n callback(null, 'two');\n },\n ],\n // optional callback\n function(err, results){\n // results is now equal to ['one', 'two']\n });\n\n\n // an example using an object instead of an array\n async.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n },\n },\n function(err, results) {\n // results is now equal to: {one: 1, two: 2}\n });\n\n\n---------------------------------------\n\n\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed a\n callback it must call on completion.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets an array of all the arguments passed to\n the callbacks used in the array.\n\n__Example__\n\n async.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, 'one');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, 'two');\n }, 100);\n },\n ],\n // optional callback\n function(err, results){\n // the results array will equal ['one','two'] even though\n // the second function had a shorter timeout.\n });\n\n\n // an example using an object instead of an array\n async.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n },\n },\n function(err, results) {\n // results is now equals to: {one: 1, two: 2}\n });\n\n\n---------------------------------------\n\n\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n passed a callback which must be called once it has completed with an optional\n error as the first argument.\n* callback(err) - A callback which is called after the test fails and repeated\n execution of fn has stopped.\n\n__Example__\n\n var count = 0;\n\n async.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n );\n\n\n---------------------------------------\n\n\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n\n---------------------------------------\n\n\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a callback it\n must call on completion.\n* callback(err, [results]) - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n async.waterfall([\n function(callback){\n callback(null, 'one', 'two');\n },\n function(arg1, arg2, callback){\n callback(null, 'three');\n },\n function(arg1, callback){\n // arg1 now equals 'three'\n callback(null, 'done');\n }\n ], function (err, result) {\n // result now equals 'done' \n });\n\n\n---------------------------------------\n\n\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task's callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n task.\n* concurrency - An integer for determining how many worker functions should be\n run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n run in parallel. This property can be changed after a queue is created to\n alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n // create a queue object with concurrency 2\n\n var q = async.queue(function (task, callback) {\n console.log('hello ' + task.name);\n callback();\n }, 2);\n\n\n // assign a callback\n q.drain = function() {\n console.log('all items have been processed');\n }\n\n // add some items to the queue\n\n q.push({name: 'foo'}, function (err) {\n console.log('finished processing foo');\n });\n q.push({name: 'bar'}, function (err) {\n console.log('finished processing bar');\n });\n\n // add some items to the queue (batch-wise)\n\n q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n console.log('finished processing bar');\n });\n\n\n---------------------------------------\n\n\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n requirements, with the function itself the last item in the array. The key\n used for each function or array is used when specifying requirements. The\n syntax is easier to understand by looking at the example.\n* callback(err, results) - An optional callback which is called when all the\n tasks have been completed. The callback will receive an error as an argument\n if any tasks pass an error to their callback. If all tasks complete\n successfully, it will receive an object containing their results.\n\n__Example__\n\n async.auto({\n get_data: function(callback){\n // async code to get some data\n },\n make_folder: function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n },\n write_file: ['get_data', 'make_folder', function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, filename);\n }],\n email_link: ['write_file', function(callback, results){\n // once the file is written let's email a link to it...\n // results.write_file contains the filename returned by write_file.\n }]\n });\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n async.parallel([\n function(callback){\n // async code to get some data\n },\n function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n }\n ],\n function(results){\n async.series([\n function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n },\n email_link: function(callback){\n // once the file is written let's email a link to it...\n }\n ]);\n });\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. Its also possible to\n'peek' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a callback it\n must call on completion.\n\n__Example__\n\n var iterator = async.iterator([\n function(){ sys.p('one'); },\n function(){ sys.p('two'); },\n function(){ sys.p('three'); }\n ]);\n\n node> var iterator2 = iterator();\n 'one'\n node> var iterator3 = iterator2();\n 'two'\n node> iterator3();\n 'three'\n node> var nextfn = iterator2.next();\n node> nextfn();\n 'three'\n\n\n---------------------------------------\n\n\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n // using apply\n\n async.parallel([\n async.apply(fs.writeFile, 'testfile1', 'test1'),\n async.apply(fs.writeFile, 'testfile2', 'test2'),\n ]);\n\n\n // the same process without using apply\n\n async.parallel([\n function(callback){\n fs.writeFile('testfile1', 'test1', callback);\n },\n function(callback){\n fs.writeFile('testfile2', 'test2', callback);\n },\n ]);\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n node> var fn = async.apply(sys.puts, 'one');\n node> fn('two', 'three');\n one\n two\n three\n\n---------------------------------------\n\n\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setTimeout(callback, 0),\nwhich means other higher priority events may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n var call_order = [];\n async.nextTick(function(){\n call_order.push('two');\n // call_order now equals ['one','two]\n });\n call_order.push('one')\n\n\n## Utils\n\n\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\n__Arguments__\n\n* fn - the function you to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n results, it has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n var slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n };\n var fn = async.memoize(slow_fn);\n\n // fn can now be used as if it were slow_fn\n fn('some name', function () {\n // callback\n });\n\n\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n var hello = function(name, callback){\n setTimeout(function(){\n callback(null, 'hello ' + name);\n }, 1000);\n };\n\n node> async.log(hello, 'world');\n 'hello world'\n\n\n---------------------------------------\n\n\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n var hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n };\n\n node> async.dir(hello, 'world');\n {hello: 'world'}\n\n\n---------------------------------------\n\n\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n", + "readmeFilename": "README.md", + "homepage": "https://github.com/caolan/async", + "_id": "async@0.1.22", + "dist": { + "shasum": "3b270eedc0419d6f92a664444ce98e0f59a8fef7" + }, + "_from": "async@0.1.22", + "_resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/package.json new file mode 100644 index 00000000..1d8c8459 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/package.json @@ -0,0 +1,45 @@ +{ + "name": "isbin", + "version": "0.0.2", + "description": "Checks for available binaries on unix machines", + "main": "index.js", + "engines": { + "node": ">= 0.8.0" + }, + "keywords": [ + "fs", + "bin", + "binary", + "exists", + "check", + "path" + ], + "scripts": { + "test": "make test" + }, + "repository": { + "type": "git", + "url": "git://github.com/behrendtio/isbin.git" + }, + "author": "", + "license": "MIT", + "dependencies": { + "async": "0.1.22" + }, + "devDependencies": { + "mocha": "1.7.3", + "should": "1.2.1" + }, + "readme": "[![Build Status](https://secure.travis-ci.org/mbehrendt/isbin.png?branch=master)](https://travis-ci.org/mbehrendt/isbin)\n\n# Isbin\n\nTiny little helper library to determine if a certain binary is available within $PATH or any additional folder.\n\n# Installation\n\n```bash\n$ npm install isbin\n```\n\n# Usage\n\n```js\nvar isbin = require('isbin');\n\n// Test against $PATH\nisbin('mysql', function(exists) {\n console.log(exists); // ==> Boolean\n});\n\n// With additional path to test\nisbin('mysql', '/usr/local/bin', function(exists) {\n console.log(exists); // ==> Boolean\n});\n\n// Or multiple ones\nisbin('mysql', ['/usr/local/bin', '/home/me/bins'], function(exists) {\n console.log(exists); // ==> Boolean\n});\n```\n\nThere are also synchronous versions available\n\n```js\nvar exists = isbin('mysql');\nvar exists = isbin('mysql', '/usr/local/bin');\nvar exists = isbin('mysql', ['/usr/local/bin', '/home/me/bins']);\n```\n\n# Running the tests\n\n```bash\n$ npm install\n$ make test\n```\n\n# License\n\n(The MIT License)\n\nCopyright (c) 2012 Mario Behrendt info@mario-behrendt.de, Stephan Hoyer \n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/behrendtio/isbin/issues" + }, + "homepage": "https://github.com/behrendtio/isbin", + "_id": "isbin@0.0.2", + "dist": { + "shasum": "2a35fb234ad5ee30f78da61b57e8f42ac43ec5a4" + }, + "_from": "isbin@0.0.2", + "_resolved": "https://registry.npmjs.org/isbin/-/isbin-0.0.2.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js new file mode 100644 index 00000000..068a38a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/isbin.js @@ -0,0 +1,39 @@ +var isbin = require('../'); + +describe('isbin', function() { + it('accepts binary, additional path and callback', function(done) { + isbin('ls', '/etc', function(exists) { + exists.should.be.a('boolean'); + done(); + }) + }); + + it('accepts array of paths', function(done) { + isbin('ls', ['/etc', '/home'], function(exists) { + exists.should.be.a('boolean'); + done(); + }); + }); + + it('accepts just binary and callback', function(done) { + isbin('ls', function(exists) { + exists.should.be.a('boolean'); + done(); + }); + }); + + it('accepts binary, additional path and callback', function() { + var exists = isbin('ls', '/etc'); + exists.should.be.a('boolean'); + }); + + it('accepts array of paths', function() { + var exists = isbin('ls', ['/etc', '/home']); + exists.should.be.a('boolean'); + }); + + it('accepts just binary', function() { + var exists = isbin('ls'); + exists.should.be.a('boolean'); + }); +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts new file mode 100644 index 00000000..e5eb9f87 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/isbin/test/mocha.opts @@ -0,0 +1,4 @@ +--require should +--bail +--ui bdd +--slow 100 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig new file mode 100644 index 00000000..e036e247 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.editorconfig @@ -0,0 +1,20 @@ +; EditorConfig is awesome: http://EditorConfig.org + +; top-most EditorConfig file +root = true + +; base rules +[*] +end_of_line = lf +insert_final_newline = false +indent_style = space +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true + +; The default indent on package.json is 2 spaces, better to keep it so we can +; use `npm install --save` and other features that rewrites the package.json +; file automatically +[package.json] +indent_style = space +indent_size = 2 diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc new file mode 100644 index 00000000..bbdb29cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.jshintrc @@ -0,0 +1,69 @@ +{ + // Settings + "passfail" : false, // Stop on first error. + "maxerr" : 50, // Maximum error before stopping. + + + // Predefined globals whom JSHint will ignore. + "browser" : true, // Standard browser globals e.g. `window`, `document`. + "couch" : false, + "dojo" : false, + "jquery" : true, + "mootools" : false, + "node" : false, + "prototypejs" : false, + "rhino" : false, + "wsh" : false, + + // Custom globals. + "predef" : [ + "define", + "require" + ], + + + // Development. + "debug" : false, // Allow debugger statements e.g. browser breakpoints. + "devel" : false, // Allow developments statements e.g. `console.log();`. + + + // EcmaScript 5. + "es5" : false, // Allow EcmaScript 5 syntax. + "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). + "strict" : false, // Require `use strict` pragma in every file. + + + // The Good Parts. + "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). + "bitwise" : false, // Prohibit bitwise operators (&, |, ^, etc.). + "boss" : true, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. + "curly" : false, // Require {} for every new block or scope. + "eqeqeq" : true, // Require triple equals i.e. `===`. + "eqnull" : true, // Tolerate use of `== null`. + "evil" : false, // Tolerate use of `eval`. + "expr" : false, // Tolerate `ExpressionStatement` as Programs. + "forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`. + "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef" : false, // Prohibit variable use before definition. + "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. + "loopfunc" : false, // Allow functions to be defined within loops. + "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "regexdash" : true, // Tolerate unescaped last dash i.e. `[-...]`. + "regexp" : false, // Prohibit `.` and `[^...]` in regular expressions. + "scripturl" : false, // Tolerate script-targeted URLs. + "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. + "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. + "undef" : false, // Require all non-global variables be declared before they are used. + + + // Personal styling prefrences. + "newcap" : true, // Require capitalization of all constructor functions e.g. `new F()`. + "noempty" : true, // Prohipit use of empty blocks. + "nomen" : false, // Prohibit use of initial or trailing underbars in names. + "nonew" : true, // Prohibit use of constructors for side-effects. + "onevar" : false, // Allow only one `var` statement per function. + "plusplus" : false, // Prohibit use of `++` & `--`. + "sub" : false, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. + "trailing" : true, // Prohibit trailing whitespaces. + "white" : false // Check against strict whitespace and indentation rules. +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore new file mode 100644 index 00000000..1341acd9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.npmignore @@ -0,0 +1,30 @@ +# dumb files +# ========== + +.tmp* +.project +.settings/ +.livereload +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db + + +# stuff not needed by node +# ======================== + +node_modules/ +tests/ +_build/ +doc_html/ +coverage/ + +# we keep the doc/ folder in case npm decides to display it in the future +# also good in case user is using an old version or working offline + +# we also keep the src/ folder in case the user still needs the AMD modules +# after build (see issue #102) + +bower.json +build.js diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml new file mode 100644 index 00000000..36de1532 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/.travis.yml @@ -0,0 +1,13 @@ + language: node_js + node_js: + - "0.8" + script: "npm test --coverage" + notifications: + irc: + channels: + - "irc.freenode.org#moutjs" + on_success: always + on_failure: always + use_notice: true + skip_join: true + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md new file mode 100644 index 00000000..0f5eac12 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CHANGELOG.md @@ -0,0 +1,93 @@ +mout changelog +============== + +v0.6.0 (2013/05/22) +------------------- + + - add optional delimeter to `string/unCamelCase` + - allow custom char on `number/pad` + - allow underscore characters in `string/removeNonWord` + - accept `level` on `array/flatten` instead of a flag + - convert underscores to camelCase in `string/camelCase` + - remove `create()` from number/currencyFormat + - add `date/dayOfTheYear` + - add `date/diff` + - add `date/isSame` + - add `date/startOf` + - add `date/strftime` + - add `date/timezoneAbbr` + - add `date/timezoneOffset` + - add `date/totalDaysInYear` + - add `date/weekOfTheYear` + - add `function/timeout` + - add `object/bindAll` + - add `object/functions` + - add `time/convert` + + +v0.5.0 (2013/04/04) +------------------- + + - add `array/collect` + - add `callback` parameter to `object/equals` and `object/deepEquals` to allow + custom compare operations. + - normalize behavior in `array/*` methods to treat `null` values as empty + arrays when reading from array + - add `date/parseIso` + - add `date/isLeapYear` + - add `date/totalDaysInMonth` + - add `object/deepMatches` + - change `function/makeIterator_` to use `deepMatches` (affects nearly all + iteration methods) + - add `thisObj` parameter to `array/min` and `array/max` + + +v0.4.0 (2013/02/26) +------------------- + + - add `object/equals` + - add `object/deepEquals` + - add `object/matches`. + - add `lang/is` and `lang/isnt`. + - add `lang/isInteger`. + - add `array/findIndex`. + - add shorthand syntax to `array/*`, `object/*` and `collection/*` methods. + - improve `number/sign` behavior when value is NaN or +0 or -0. + - improve `lang/isNaN` to actually check if value *is not a number* without + coercing value; so `[]`, `""`, `null` and `"12"` are considered NaN (#39). + - improve `string/contains` to match ES6 behavior (add fromIndex argument). + + +v0.3.0 (2013/02/01) +------------------- + + - add `lang/clone`. + - add `lang/toString`. + - add `string/replace`. + - add `string/WHITE_SPACES` + - rename `function/curry` to `function/partial`. + - allow custom chars in `string/trim`, `ltrim`, and `rtrim`. + - convert values to strings in the `string/*` functions. + + +v0.2.0 (2013/01/13) +------------------- + + - fix bug in `math/ceil` for negative radixes. + - change `object/deepFillIn` and `object/deepMixIn` to recurse only if both + existing and new values are plain objects. Will not recurse into arrays + or objects not created by the Object constructor. + - add `lang/isPlainObject` to check if a file is a valid object and is created + by the Object constructor + - change `lang/clone` behavior when dealing with custom types (avoid cloning + it by default) and add second argument to allow custom behavior if needed. + - rename `lang/clone` to `lang/deepClone`. + - add VERSION property to index.js + - simplify `math/floor`, `math/round`, `math/ceil` and `math/countSteps`. + + +v0.1.0 (2013/01/09) +------------------- + +- Rename project from "amd-utils" to "mout" + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md new file mode 100644 index 00000000..65d9add1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contributing + +Fork the repo at https://github.com/mout/mout + + > "Write clearly, don't be too clever" - The Elements of Programming Style + +Avoid unnamed functions and follow the other modules structure. By only using named functions it will be easier to extract the code from the AMD module if needed and it will also give better error messages, JavaScript minifiers like [Google Closure Compiler](http://code.google.com/closure/compiler/) and [UglifyJS](https://github.com/mishoo/UglifyJS) will make sure code is as small/optimized as possible. + + > "Make it clear before you make it faster." - The Elements of Programming Style + +Be sure to always create tests for each proposed module. Features will only be merged if they contain proper tests and documentation. + + > "Good code is its own best documentation." - Steve McConnell + +We should do a code review before merging to make sure names makes sense and implementation is as good as possible. + +Try to split your pull requests into logical groups, the smaller the easier to be reviewed/merged. + + + +## Tests & Code Coverage ## + +Tests can be found inside the `tests` folder, to execute them in the browser open the `tests/runner.html`. The same tests also work on node.js by running `npm test`. + +We should have tests for all methods and ensure we have a high code coverage through our continuous integration server ([travis](https://travis-ci.org/mout/mout)). When you ask for a pull request Travis will automatically run the tests on node.js and check the code coverage as well. + +We run `node build pkg` automatically before any `npm test`, so specs and packages should always be in sync. (will avoid human mistakes) + +To check code coverage run `npm test --coverage`, it will generate the reports inside the `coverage` folder and also log the results. Please note that node.js doesn't execute all code branches since we have some conditionals that are only met on old JavaScript engines (eg. IE 7-8), so we will never have 100% code coverage (but should be close to it). + + + +## Build Script ## + +The [build script](https://github.com/mout/mout/wiki/Build-Script) can be extremely helpful and can avoid human mistakes, use it. + + + +## Admins / Pull Requests ## + +Even if you are an admin (have commit rights) please do pull requests when adding new features or changing current behavior, that way we can review the work and discuss. Feel free to push changes that doesn't affect behavior without asking for a pull request (readme, changelog, build script, typos, refactoring, ...). + + + +## Large changes ## + +If you are proposing some major change, please create an issue to discuss it first. (maybe it's outside the scope of the project) + + + +## Questions / IRC / Wiki / Issue Tracker ## + +When in doubt ask someone on IRC to help you ([#moutjs on irc.freenode.net](http://webchat.freenode.net/?channels=moutjs)) or create a [new issue](http://github.com/mout/mout/issues). + +The [project wiki](https://github.com/mout/mout/wiki) can also be a good resource of information. + + +--- + +Check the [contributors list at github](https://github.com/mout/mout/contributors). + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md new file mode 100644 index 00000000..e9ccc2be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/LICENSE.md @@ -0,0 +1,21 @@ +# The MIT License (MIT) +## Copyright (c) 2012, 2013 moutjs team and contributors (http://moutjs.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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/README.md new file mode 100644 index 00000000..872943bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/README.md @@ -0,0 +1,63 @@ +![mout](http://moutjs.com/logo.png "Modular JavaScript Utilties") + +http://moutjs.com/ + +[![Build Status](https://travis-ci.org/mout/mout.png?branch=master)](https://travis-ci.org/mout/mout) + +All code is library agnostic and consist mostly of helper methods that aren't +directly related with the DOM, the purpose of this library isn't to replace +Dojo, jQuery, YUI, Mootools, etc, but to provide modular solutions for common +problems that aren't solved by most of them. Consider it as a crossbrowser +JavaScript standard library. + + + +## Main goals ## + + - increase code reuse; + - be clear (code should be clean/readable); + - be easy to debug; + - be easy to maintain; + - follow best practices; + - follow standards when possible; + - **don't convert JavaScript into another language!** + - be compatible with other frameworks; + - be modular; + - have unit tests for all modules; + - work on multiple environments (IE7+, modern browsers, node.js); + + + +## What shouldn't be here ## + + - UI components; + - CSS selector engine; + - Event system - pub/sub; + - Template engine; + - Anything that isn't generic enough to be on a standard library; + - Anything that could be a separate library and/or isn't a modular utility... + + + +## API Documentation ## + +Online documentation can be found at http://moutjs.com/ or inside the +`doc` folder. + + + +## FAQ / Wiki / IRC ## + +For more info about project structure, design decisions, tips, how to +contribute, build system, etc, please check the [project +wiki](https://github.com/mout/mout/wiki). + +We also have an IRC channel [#moutjs on +irc.freenode.net](http://webchat.freenode.net/?channels=moutjs) + + + +## License ## + +Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array.js new file mode 100644 index 00000000..89d388ba --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array.js @@ -0,0 +1,46 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'append' : require('./array/append'), + 'collect' : require('./array/collect'), + 'combine' : require('./array/combine'), + 'compact' : require('./array/compact'), + 'contains' : require('./array/contains'), + 'difference' : require('./array/difference'), + 'every' : require('./array/every'), + 'filter' : require('./array/filter'), + 'find' : require('./array/find'), + 'findIndex' : require('./array/findIndex'), + 'flatten' : require('./array/flatten'), + 'forEach' : require('./array/forEach'), + 'indexOf' : require('./array/indexOf'), + 'insert' : require('./array/insert'), + 'intersection' : require('./array/intersection'), + 'invoke' : require('./array/invoke'), + 'join' : require('./array/join'), + 'lastIndexOf' : require('./array/lastIndexOf'), + 'map' : require('./array/map'), + 'max' : require('./array/max'), + 'min' : require('./array/min'), + 'pick' : require('./array/pick'), + 'pluck' : require('./array/pluck'), + 'range' : require('./array/range'), + 'reduce' : require('./array/reduce'), + 'reduceRight' : require('./array/reduceRight'), + 'reject' : require('./array/reject'), + 'remove' : require('./array/remove'), + 'removeAll' : require('./array/removeAll'), + 'shuffle' : require('./array/shuffle'), + 'some' : require('./array/some'), + 'sort' : require('./array/sort'), + 'split' : require('./array/split'), + 'toLookup' : require('./array/toLookup'), + 'union' : require('./array/union'), + 'unique' : require('./array/unique'), + 'xor' : require('./array/xor'), + 'zip' : require('./array/zip') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js new file mode 100644 index 00000000..bf74037e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/append.js @@ -0,0 +1,21 @@ + + + /** + * Appends an array to the end of another. + * The first array will be modified. + */ + function append(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var pad = arr1.length, + i = -1, + len = arr2.length; + while (++i < len) { + arr1[pad + i] = arr2[i]; + } + return arr1; + } + module.exports = append; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js new file mode 100644 index 00000000..58637493 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/collect.js @@ -0,0 +1,27 @@ +var append = require('./append'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Maps the items in the array and concatenates the result arrays. + */ + function collect(arr, callback, thisObj){ + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + var value = callback(arr[i], i, arr); + if (value != null) { + append(results, value); + } + } + + return results; + } + + module.exports = collect; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js new file mode 100644 index 00000000..d66e6212 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/combine.js @@ -0,0 +1,22 @@ +var indexOf = require('./indexOf'); + + /** + * Combines an array with all the items of another. + * Does not allow duplicates and is case and type sensitive. + */ + function combine(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var i = -1, len = arr2.length; + while (++i < len) { + if (indexOf(arr1, arr2[i]) === -1) { + arr1.push(arr2[i]); + } + } + + return arr1; + } + module.exports = combine; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js new file mode 100644 index 00000000..74c176ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/compact.js @@ -0,0 +1,13 @@ +var filter = require('./filter'); + + /** + * Remove all null/undefined items from array. + */ + function compact(arr) { + return filter(arr, function(val){ + return (val != null); + }); + } + + module.exports = compact; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js new file mode 100644 index 00000000..92bb6ad9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/contains.js @@ -0,0 +1,10 @@ +var indexOf = require('./indexOf'); + + /** + * If array contains values. + */ + function contains(arr, val) { + return indexOf(arr, val) !== -1; + } + module.exports = contains; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js new file mode 100644 index 00000000..d0570510 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/difference.js @@ -0,0 +1,22 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var some = require('./some'); +var contains = require('./contains'); + + + /** + * Return a new Array with elements that aren't present in the other Arrays. + */ + function difference(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return !some(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + module.exports = difference; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js new file mode 100644 index 00000000..ac598832 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/every.js @@ -0,0 +1,27 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Array every + */ + function every(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (!callback(arr[i], i, arr) ) { + result = false; + break; + } + } + + return result; + } + + module.exports = every; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js new file mode 100644 index 00000000..ebeb58dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/filter.js @@ -0,0 +1,27 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array filter + */ + function filter(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + module.exports = filter; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js new file mode 100644 index 00000000..b4a73131 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/find.js @@ -0,0 +1,13 @@ +var findIndex = require('./findIndex'); + + /** + * Returns first item that matches criteria + */ + function find(arr, iterator, thisObj){ + var idx = findIndex(arr, iterator, thisObj); + return idx >= 0? arr[idx] : void(0); + } + + module.exports = find; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js new file mode 100644 index 00000000..53f22a5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/findIndex.js @@ -0,0 +1,23 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Returns the index of the first item that matches criteria + */ + function findIndex(arr, iterator, thisObj){ + iterator = makeIterator(iterator, thisObj); + if (arr == null) { + return -1; + } + + var i = -1, len = arr.length; + while (++i < len) { + if (iterator(arr[i], i, arr)) { + return i; + } + } + + return -1; + } + + module.exports = findIndex; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js new file mode 100644 index 00000000..aa9757ab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/flatten.js @@ -0,0 +1,43 @@ +var isArray = require('../lang/isArray'); +var append = require('./append'); + + /* + * Helper function to flatten to a destination array. + * Used to remove the need to create intermediate arrays while flattening. + */ + function flattenTo(arr, result, level) { + if (arr == null) { + return result; + } else if (level === 0) { + append(result, arr); + return result; + } + + var value, + i = -1, + len = arr.length; + while (++i < len) { + value = arr[i]; + if (isArray(value)) { + flattenTo(value, result, level - 1); + } else { + result.push(value); + } + } + return result; + } + + /** + * Recursively flattens an array. + * A new array containing all the elements is returned. + * If `shallow` is true, it will only flatten one level. + */ + function flatten(arr, level) { + level = level == null? -1 : level; + return flattenTo(arr, [], level); + } + + module.exports = flatten; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js new file mode 100644 index 00000000..268e506f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/forEach.js @@ -0,0 +1,23 @@ + + + /** + * Array forEach + */ + function forEach(arr, callback, thisObj) { + if (arr == null) { + return; + } + var i = -1, + len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback.call(thisObj, arr[i], i, arr) === false ) { + break; + } + } + } + + module.exports = forEach; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js new file mode 100644 index 00000000..6a9ac832 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/indexOf.js @@ -0,0 +1,28 @@ + + + /** + * Array.indexOf + */ + function indexOf(arr, item, fromIndex) { + fromIndex = fromIndex || 0; + if (arr == null) { + return -1; + } + + var len = arr.length, + i = fromIndex < 0 ? len + fromIndex : fromIndex; + while (i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[i] === item) { + return i; + } + + i++; + } + + return -1; + } + + module.exports = indexOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js new file mode 100644 index 00000000..f1f95b75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/insert.js @@ -0,0 +1,15 @@ +var difference = require('./difference'); +var toArray = require('../lang/toArray'); + + /** + * Insert item into array if not already present. + */ + function insert(arr, rest_items) { + var diff = difference(toArray(arguments).slice(1), arr); + if (diff.length) { + Array.prototype.push.apply(arr, diff); + } + return arr.length; + } + module.exports = insert; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js new file mode 100644 index 00000000..e6170062 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/intersection.js @@ -0,0 +1,23 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var every = require('./every'); +var contains = require('./contains'); + + + /** + * Return a new Array with elements common to all Arrays. + * - based on underscore.js implementation + */ + function intersection(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return every(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + module.exports = intersection; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js new file mode 100644 index 00000000..c01aab1b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/invoke.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); + + /** + * Call `methodName` on each item of the array passing custom arguments if + * needed. + */ + function invoke(arr, methodName, var_args){ + if (arr == null) { + return arr; + } + + var args = Array.prototype.slice.call(arguments, 2); + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + value[methodName].apply(value, args); + } + + return arr; + } + + module.exports = invoke; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js new file mode 100644 index 00000000..71d8bd20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/join.js @@ -0,0 +1,17 @@ +var filter = require('./filter'); + + function isValidString(val) { + return (val != null && val !== ''); + } + + /** + * Joins strings with the specified separator inserted between each value. + * Null values and empty strings will be excluded. + */ + function join(items, separator) { + separator = separator || ''; + return filter(items, isValidString).join(separator); + } + + module.exports = join; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js new file mode 100644 index 00000000..ee44a25b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/lastIndexOf.js @@ -0,0 +1,28 @@ + + + /** + * Array lastIndexOf + */ + function lastIndexOf(arr, item, fromIndex) { + if (arr == null) { + return -1; + } + + var len = arr.length; + fromIndex = (fromIndex == null || fromIndex >= len)? len - 1 : fromIndex; + fromIndex = (fromIndex < 0)? len + fromIndex : fromIndex; + + while (fromIndex >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[fromIndex] === item) { + return fromIndex; + } + fromIndex--; + } + + return -1; + } + + module.exports = lastIndexOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js new file mode 100644 index 00000000..54064f6b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/map.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array map + */ + function map(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null){ + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + results[i] = callback(arr[i], i, arr); + } + + return results; + } + + module.exports = map; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js new file mode 100644 index 00000000..183b10ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/max.js @@ -0,0 +1,35 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Return maximum value inside array + */ + function max(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return Infinity; + } else if (arr.length && !iterator) { + return Math.max.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = -Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp > compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + module.exports = max; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js new file mode 100644 index 00000000..dd00b6cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/min.js @@ -0,0 +1,35 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Return minimum value inside array + */ + function min(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return -Infinity; + } else if (arr.length && !iterator) { + return Math.min.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp < compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + module.exports = min; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js new file mode 100644 index 00000000..6a54846c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pick.js @@ -0,0 +1,14 @@ +var randInt = require('../random/randInt'); + + /** + * Remove a random item from the Array and return it + */ + function pick(arr){ + if (arr == null || !arr.length) return; + var idx = randInt(0, arr.length - 1); + return arr.splice(idx, 1)[0]; + } + + module.exports = pick; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js new file mode 100644 index 00000000..fef4043b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/pluck.js @@ -0,0 +1,12 @@ +var map = require('./map'); + + /** + * Extract a list of property values. + */ + function pluck(arr, propName){ + return map(arr, propName); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js new file mode 100644 index 00000000..31d3c770 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/range.js @@ -0,0 +1,27 @@ +var countSteps = require('../math/countSteps'); + + /** + * Returns an Array of numbers inside range. + */ + function range(start, stop, step) { + if (stop == null) { + stop = start; + start = 0; + } + step = step || 1; + + var result = [], + nSteps = countSteps(stop - start, step), + i = start; + + while (i <= stop) { + result.push(i); + i += step; + } + + return result; + } + + module.exports = range; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js new file mode 100644 index 00000000..1a350c6e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduce.js @@ -0,0 +1,33 @@ +var forEach = require('./forEach'); + + /** + * Array reduce + */ + function reduce(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2, + result = initVal; + + if (arr == null || !arr.length) { + if (!hasInit) { + throw new Error('reduce of empty array with no initial value'); + } else { + return initVal; + } + } + + var i = -1, len = arr.length; + while (++i < len) { + if (!hasInit) { + result = arr[i]; + hasInit = true; + } else { + result = fn(result, arr[i], i, arr); + } + } + + return result; + } + + module.exports = reduce; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js new file mode 100644 index 00000000..e36fd4aa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reduceRight.js @@ -0,0 +1,34 @@ + + + /** + * Array reduceRight + */ + function reduceRight(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2; + + if (arr == null || !arr.length) { + if (hasInit) { + return initVal; + } else { + throw new Error('reduce of empty array with no initial value'); + } + } + + var i = arr.length, result = initVal, value; + while (--i >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + value = arr[i]; + if (!hasInit) { + result = value; + hasInit = true; + } else { + result = fn(result, value, i, arr); + } + } + return result; + } + + module.exports = reduceRight; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js new file mode 100644 index 00000000..685f2918 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/reject.js @@ -0,0 +1,26 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Array reject + */ + function reject(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (!callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + module.exports = reject; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js new file mode 100644 index 00000000..aa6517db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/remove.js @@ -0,0 +1,13 @@ +var indexOf = require('./indexOf'); + + /** + * Remove a single item from the array. + * (it won't remove duplicates, just a single item) + */ + function remove(arr, item){ + var idx = indexOf(arr, item); + if (idx !== -1) arr.splice(idx, 1); + } + + module.exports = remove; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js new file mode 100644 index 00000000..d5f7f3b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/removeAll.js @@ -0,0 +1,15 @@ +var indexOf = require('./indexOf'); + + /** + * Remove all instances of an item from array. + */ + function removeAll(arr, item){ + var idx = indexOf(arr, item); + while (idx !== -1) { + arr.splice(idx, 1); + idx = indexOf(arr, item, idx); + } + } + + module.exports = removeAll; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js new file mode 100644 index 00000000..97805ec8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/shuffle.js @@ -0,0 +1,29 @@ +var randInt = require('../random/randInt'); +var forEach = require('./forEach'); + + /** + * Shuffle array items. + */ + function shuffle(arr) { + var results = [], + rnd; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + if (!i) { + results[0] = arr[0]; + } else { + rnd = randInt(0, i); + results[i] = results[rnd]; + results[rnd] = arr[i]; + } + } + + return results; + } + + module.exports = shuffle; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js new file mode 100644 index 00000000..8d17772b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/some.js @@ -0,0 +1,27 @@ +var makeIterator = require('../function/makeIterator_'); + + /** + * Array some + */ + function some(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback(arr[i], i, arr) ) { + result = true; + break; + } + } + + return result; + } + + module.exports = some; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js new file mode 100644 index 00000000..7807339b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/sort.js @@ -0,0 +1,55 @@ + + + /** + * Merge sort (http://en.wikipedia.org/wiki/Merge_sort) + */ + function mergeSort(arr, compareFn) { + if (arr == null) { + return []; + } else if (arr.length < 2) { + return arr; + } + + if (compareFn == null) { + compareFn = defaultCompare; + } + + var mid, left, right; + + mid = ~~(arr.length / 2); + left = mergeSort( arr.slice(0, mid), compareFn ); + right = mergeSort( arr.slice(mid, arr.length), compareFn ); + + return merge(left, right, compareFn); + } + + function defaultCompare(a, b) { + return a < b ? -1 : (a > b? 1 : 0); + } + + function merge(left, right, compareFn) { + var result = []; + + while (left.length && right.length) { + if (compareFn(left[0], right[0]) <= 0) { + // if 0 it should preserve same order (stable) + result.push(left.shift()); + } else { + result.push(right.shift()); + } + } + + if (left.length) { + result.push.apply(result, left); + } + + if (right.length) { + result.push.apply(result, right); + } + + return result; + } + + module.exports = mergeSort; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js new file mode 100644 index 00000000..4f3ba50c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/split.js @@ -0,0 +1,35 @@ + + + /** + * Split array into a fixed number of segments. + */ + function split(array, segments) { + segments = segments || 2; + var results = []; + if (array == null) { + return results; + } + + var minLength = Math.floor(array.length / segments), + remainder = array.length % segments, + i = 0, + len = array.length, + segmentIndex = 0, + segmentLength; + + while (i < len) { + segmentLength = minLength; + if (segmentIndex < remainder) { + segmentLength++; + } + + results.push(array.slice(i, i + segmentLength)); + + segmentIndex++; + i += segmentLength; + } + + return results; + } + module.exports = split; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js new file mode 100644 index 00000000..ce4c55dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/toLookup.js @@ -0,0 +1,28 @@ +var isFunction = require('../lang/isFunction'); + + /** + * Creates an object that holds a lookup for the objects in the array. + */ + function toLookup(arr, key) { + var result = {}; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length, value; + if (isFunction(key)) { + while (++i < len) { + value = arr[i]; + result[key(value)] = value; + } + } else { + while (++i < len) { + value = arr[i]; + result[value[key]] = value; + } + } + + return result; + } + module.exports = toLookup; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js new file mode 100644 index 00000000..f1334a91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/union.js @@ -0,0 +1,19 @@ +var unique = require('./unique'); +var append = require('./append'); + + /** + * Concat multiple arrays and remove duplicates + */ + function union(arrs) { + var results = []; + var i = -1, len = arguments.length; + while (++i < len) { + append(results, arguments[i]); + } + + return unique(results); + } + + module.exports = union; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js new file mode 100644 index 00000000..0192b2df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/unique.js @@ -0,0 +1,17 @@ +var indexOf = require('./indexOf'); +var filter = require('./filter'); + + /** + * @return {array} Array of unique items + */ + function unique(arr){ + return filter(arr, isUnique); + } + + function isUnique(item, i, arr){ + return indexOf(arr, item, i+1) === -1; + } + + module.exports = unique; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js new file mode 100644 index 00000000..c125a996 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/xor.js @@ -0,0 +1,26 @@ +var unique = require('./unique'); +var filter = require('./filter'); +var contains = require('./contains'); + + + /** + * Exclusive OR. Returns items that are present in a single array. + * - like ptyhon's `symmetric_difference` + */ + function xor(arr1, arr2) { + arr1 = unique(arr1); + arr2 = unique(arr2); + + var a1 = filter(arr1, function(item){ + return !contains(arr2, item); + }), + a2 = filter(arr2, function(item){ + return !contains(arr1, item); + }); + + return a1.concat(a2); + } + + module.exports = xor; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js new file mode 100644 index 00000000..931eb818 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/array/zip.js @@ -0,0 +1,29 @@ +var max = require('./max'); +var pluck = require('./pluck'); +var map = require('./map'); + + function getLength(arr) { + return arr == null ? 0 : arr.length; + } + + /** + * Merges together the values of each of the arrays with the values at the + * corresponding position. + */ + function zip(arr){ + var len = arr ? max(map(arguments, getLength)) : 0, + results = [], + i = -1, + item; + while (++i < len) { + results.push(map(arguments, function(item) { + return item == null ? undefined : item[i]; + })); + } + + return results; + } + + module.exports = zip; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection.js new file mode 100644 index 00000000..d5cf6cad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection.js @@ -0,0 +1,22 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'contains' : require('./collection/contains'), + 'every' : require('./collection/every'), + 'filter' : require('./collection/filter'), + 'find' : require('./collection/find'), + 'forEach' : require('./collection/forEach'), + 'make_' : require('./collection/make_'), + 'map' : require('./collection/map'), + 'max' : require('./collection/max'), + 'min' : require('./collection/min'), + 'pluck' : require('./collection/pluck'), + 'reduce' : require('./collection/reduce'), + 'reject' : require('./collection/reject'), + 'size' : require('./collection/size'), + 'some' : require('./collection/some') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js new file mode 100644 index 00000000..a73f994b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/contains.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrContains = require('../array/contains'); +var objContains = require('../object/contains'); + + /** + */ + module.exports = make(arrContains, objContains); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js new file mode 100644 index 00000000..300e03c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/every.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrEvery = require('../array/every'); +var objEvery = require('../object/every'); + + /** + */ + module.exports = make(arrEvery, objEvery); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js new file mode 100644 index 00000000..38757005 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/filter.js @@ -0,0 +1,23 @@ +var forEach = require('./forEach'); +var makeIterator = require('../function/makeIterator_'); + + /** + * filter collection values, returns array. + */ + function filter(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + var results = []; + if (!list) { + return results; + } + forEach(list, function(value, index, list) { + if (iterator(value, index, list)) { + results[results.length] = value; + } + }); + return results; + } + + module.exports = filter; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js new file mode 100644 index 00000000..14317e64 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/find.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrFind = require('../array/find'); +var objFind = require('../object/find'); + + /** + * Find value that returns true on iterator check. + */ + module.exports = make(arrFind, objFind); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js new file mode 100644 index 00000000..6e28dcb1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/forEach.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrForEach = require('../array/forEach'); +var objForEach = require('../object/forOwn'); + + /** + */ + module.exports = make(arrForEach, objForEach); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js new file mode 100644 index 00000000..029d27bf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/make_.js @@ -0,0 +1,19 @@ + + + /** + * internal method used to create other collection modules. + */ + function makeCollectionMethod(arrMethod, objMethod, defaultReturn) { + return function(){ + var args = Array.prototype.slice.call(arguments); + if (args[0] == null) { + return defaultReturn; + } + // array-like is treated as array + return (typeof args[0].length === 'number')? arrMethod.apply(null, args) : objMethod.apply(null, args); + }; + } + + module.exports = makeCollectionMethod; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js new file mode 100644 index 00000000..fc157f53 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/map.js @@ -0,0 +1,23 @@ +var isObject = require('../lang/isObject'); +var values = require('../object/values'); +var arrMap = require('../array/map'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Map collection values, returns Array. + */ + function map(list, callback, thisObj) { + callback = makeIterator(callback, thisObj); + // list.length to check array-like object, if not array-like + // we simply map all the object values + if( isObject(list) && list.length == null ){ + list = values(list); + } + return arrMap(list, function (val, key, list) { + return callback(val, key, list); + }); + } + + module.exports = map; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js new file mode 100644 index 00000000..a8490e7e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/max.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrMax = require('../array/max'); +var objMax = require('../object/max'); + + /** + * Get maximum value inside collection + */ + module.exports = make(arrMax, objMax); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js new file mode 100644 index 00000000..51d9f148 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/min.js @@ -0,0 +1,10 @@ +var make = require('./make_'); +var arrMin = require('../array/min'); +var objMin = require('../object/min'); + + /** + * Get minimum value inside collection. + */ + module.exports = make(arrMin, objMin); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js new file mode 100644 index 00000000..9b283776 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/pluck.js @@ -0,0 +1,14 @@ +var map = require('./map'); + + /** + * Extract a list of property values. + */ + function pluck(list, key) { + return map(list, function(value) { + return value[key]; + }); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js new file mode 100644 index 00000000..4c075735 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reduce.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrReduce = require('../array/reduce'); +var objReduce = require('../object/reduce'); + + /** + */ + module.exports = make(arrReduce, objReduce); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js new file mode 100644 index 00000000..2a92e3b3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/reject.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Inverse or collection/filter + */ + function reject(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + return filter(list, function(value, index, list) { + return !iterator(value, index, list); + }, thisObj); + } + + module.exports = reject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js new file mode 100644 index 00000000..244e33e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/size.js @@ -0,0 +1,19 @@ +var isArray = require('../lang/isArray'); +var objSize = require('../object/size'); + + /** + * Get collection size + */ + function size(list) { + if (!list) { + return 0; + } + if (isArray(list)) { + return list.length; + } + return objSize(list); + } + + module.exports = size; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js new file mode 100644 index 00000000..48fd252e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/collection/some.js @@ -0,0 +1,9 @@ +var make = require('./make_'); +var arrSome = require('../array/some'); +var objSome = require('../object/some'); + + /** + */ + module.exports = make(arrSome, objSome); + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date.js new file mode 100644 index 00000000..1cde1a95 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date.js @@ -0,0 +1,21 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'dayOfTheYear' : require('./date/dayOfTheYear'), + 'diff' : require('./date/diff'), + 'i18n_' : require('./date/i18n_'), + 'isLeapYear' : require('./date/isLeapYear'), + 'isSame' : require('./date/isSame'), + 'parseIso' : require('./date/parseIso'), + 'startOf' : require('./date/startOf'), + 'strftime' : require('./date/strftime'), + 'timezoneAbbr' : require('./date/timezoneAbbr'), + 'timezoneOffset' : require('./date/timezoneOffset'), + 'totalDaysInMonth' : require('./date/totalDaysInMonth'), + 'totalDaysInYear' : require('./date/totalDaysInYear'), + 'weekOfTheYear' : require('./date/weekOfTheYear') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js new file mode 100644 index 00000000..85905c5a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/dayOfTheYear.js @@ -0,0 +1,13 @@ +var isDate = require('../lang/isDate'); + + /** + * return the day of the year (1..366) + */ + function dayOfTheYear(date){ + return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - + Date.UTC(date.getFullYear(), 0, 1)) / 86400000 + 1; + } + + module.exports = dayOfTheYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js new file mode 100644 index 00000000..1131cdcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/diff.js @@ -0,0 +1,130 @@ +var totalDaysInMonth = require('./totalDaysInMonth'); +var totalDaysInYear = require('./totalDaysInYear'); +var convert = require('../time/convert'); + + /** + * calculate the difference between dates (range) + */ + function diff(start, end, unitName){ + // sort the dates to make it easier to process (specially year/month) + if (start > end) { + var swap = start; + start = end; + end = swap; + } + + var output; + + if (unitName === 'month') { + output = getMonthsDiff(start, end); + } else if (unitName === 'year'){ + output = getYearsDiff(start, end); + } else if (unitName != null) { + if (unitName === 'day') { + // ignore timezone difference because of daylight savings time + start = toUtc(start); + end = toUtc(end); + } + output = convert(end - start, 'ms', unitName); + } else { + output = end - start; + } + + return output; + } + + + function toUtc(d){ + // we ignore timezone differences on purpose because of daylight + // savings time, otherwise it would return fractional days/weeks even + // if a full day elapsed. eg: + // Wed Feb 12 2014 00:00:00 GMT-0200 (BRST) + // Sun Feb 16 2014 00:00:00 GMT-0300 (BRT) + // diff should be 4 days and not 4.041666666666667 + return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), + d.getHours(), d.getMinutes(), d.getSeconds(), + d.getMilliseconds()); + } + + + function getMonthsDiff(start, end){ + return getElapsedMonths(start, end) + + getElapsedYears(start, end) * 12 + + getFractionalMonth(start, end); + } + + + function getYearsDiff(start, end){ + var elapsedYears = getElapsedYears(start, end); + return elapsedYears + getFractionalYear(start, end, elapsedYears); + } + + + function getElapsedMonths(start, end){ + var monthDiff = end.getMonth() - start.getMonth(); + if (monthDiff < 0) { + monthDiff += 12; + } + // less than a full month + if (start.getDate() > end.getDate()) { + monthDiff -= 1; + } + return monthDiff; + } + + + function getElapsedYears(start, end){ + var yearDiff = end.getFullYear() - start.getFullYear(); + // less than a full year + if (start.getMonth() > end.getMonth()) { + yearDiff -= 1; + } + return yearDiff; + } + + + function getFractionalMonth(start, end){ + var fractionalDiff = 0; + var startDay = start.getDate(); + var endDay = end.getDate(); + + if (startDay !== endDay) { + var startTotalDays = totalDaysInMonth(start); + var endTotalDays = totalDaysInMonth(end); + var totalDays; + var daysElapsed; + + if (startDay > endDay) { + // eg: Jan 29 - Feb 27 (29 days elapsed but not a full month) + var baseDay = startTotalDays - startDay; + daysElapsed = endDay + baseDay; + // total days should be relative to 1st day of next month if + // startDay > endTotalDays + totalDays = (startDay > endTotalDays)? + endTotalDays + baseDay + 1 : startDay + baseDay; + } else { + // fractional is only based on endMonth eg: Jan 12 - Feb 18 + // (6 fractional days, 28 days until next full month) + daysElapsed = endDay - startDay; + totalDays = endTotalDays; + } + + fractionalDiff = daysElapsed / totalDays; + } + + return fractionalDiff; + } + + + function getFractionalYear(start, end, elapsedYears){ + var base = elapsedYears? + new Date(end.getFullYear(), start.getMonth(), start.getDate()) : + start; + var elapsedDays = diff(base, end, 'day'); + return elapsedDays / totalDaysInYear(end); + } + + + module.exports = diff; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js new file mode 100644 index 00000000..f9526ce4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/en-US.js @@ -0,0 +1,61 @@ + + // en-US (English, United States) + module.exports = { + "am" : "AM", + "pm" : "PM", + + "x": "%m/%d/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %I:%M:%S %p %Z", + + "months" : [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + + "months_abbr" : [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + + "days_abbr" : [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ] + }; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js new file mode 100644 index 00000000..71ebadb5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n/pt-BR.js @@ -0,0 +1,61 @@ + + // pt-BR (Brazillian Portuguese) + module.exports = { + "am" : "", + "pm" : "", + + "x": "%d/%m/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %H:%M:%S %Z", + + "months" : [ + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + + "months_abbr" : [ + "Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez" + ], + + "days" : [ + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + + "days_abbr" : [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sáb" + ] + }; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js new file mode 100644 index 00000000..723fc103 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/i18n_.js @@ -0,0 +1,14 @@ +var mixIn = require('../object/mixIn'); +var enUS = require('./i18n/en-US'); + + // we also use mixIn to make sure we don't affect the original locale + var activeLocale = mixIn({}, enUS, { + // we expose a "set" method to allow overriding the global locale + set : function(localeData){ + mixIn(activeLocale, localeData); + } + }); + + module.exports = activeLocale; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js new file mode 100644 index 00000000..4212870b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isLeapYear.js @@ -0,0 +1,15 @@ +var isDate = require('../lang/isDate'); + + /** + * checks if it's a leap year + */ + function isLeapYear(fullYear){ + if (isDate(fullYear)) { + fullYear = fullYear.getFullYear(); + } + return fullYear % 400 === 0 || (fullYear % 100 !== 0 && fullYear % 4 === 0); + } + + module.exports = isLeapYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js new file mode 100644 index 00000000..4097d29b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/isSame.js @@ -0,0 +1,16 @@ +var startOf = require('./startOf'); + + /** + * Check if date is "same" with optional period + */ + function isSame(date1, date2, period){ + if (period) { + date1 = startOf(date1, period); + date2 = startOf(date2, period); + } + return Number(date1) === Number(date2); + } + + module.exports = isSame; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js new file mode 100644 index 00000000..8ea2b171 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/parseIso.js @@ -0,0 +1,146 @@ +var some = require('../array/some'); + + var datePatterns = [ + /^([0-9]{4})$/, // YYYY + /^([0-9]{4})-([0-9]{2})$/, // YYYY-MM (YYYYMM not allowed) + /^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/ // YYYY-MM-DD or YYYYMMDD + ]; + var ORD_DATE = /^([0-9]{4})-?([0-9]{3})$/; // YYYY-DDD + + var timePatterns = [ + /^([0-9]{2}(?:\.[0-9]*)?)$/, // HH.hh + /^([0-9]{2}):?([0-9]{2}(?:\.[0-9]*)?)$/, // HH:MM.mm + /^([0-9]{2}):?([0-9]{2}):?([0-9]{2}(\.[0-9]*)?)$/ // HH:MM:SS.ss + ]; + + var DATE_TIME = /^(.+)T(.+)$/; + var TIME_ZONE = /^(.+)([+\-])([0-9]{2}):?([0-9]{2})$/; + + function matchAll(str, patterns) { + var match; + var found = some(patterns, function(pattern) { + return !!(match = pattern.exec(str)); + }); + + return found ? match : null; + } + + function getDate(year, month, day) { + var date = new Date(Date.UTC(year, month, day)); + + // Explicitly set year to avoid Date.UTC making dates < 100 relative to + // 1900 + date.setUTCFullYear(year); + + var valid = + date.getUTCFullYear() === year && + date.getUTCMonth() === month && + date.getUTCDate() === day; + return valid ? +date : NaN; + } + + function parseOrdinalDate(str) { + var match = ORD_DATE.exec(str); + if (match ) { + var year = +match[1], + day = +match[2], + date = new Date(Date.UTC(year, 0, day)); + + if (date.getUTCFullYear() === year) { + return +date; + } + } + + return NaN; + } + + function parseDate(str) { + var match, year, month, day; + + var match = matchAll(str, datePatterns); + if (match === null) { + // Ordinal dates are verified differently. + return parseOrdinalDate(str); + } + + year = (match[1] === void 0) ? 0 : +match[1]; + month = (match[2] === void 0) ? 0 : +match[2] - 1; + day = (match[3] === void 0) ? 1 : +match[3]; + + return getDate(year, month, day); + } + + function getTime(hr, min, sec) { + var valid = + (hr < 24 && hr >= 0 && + min < 60 && min >= 0 && + sec < 60 && min >= 0) || + (hr === 24 && min === 0 && sec === 0); + if (!valid) { + return NaN; + } + + return ((hr * 60 + min) * 60 + sec) * 1000; + } + + function parseOffset(str) { + var match; + if (str.charAt(str.length - 1) === 'Z') { + str = str.substring(0, str.length - 1); + } else if ((match = TIME_ZONE.exec(str))) { + var match = TIME_ZONE.exec(str); + if (match) { + var hours = +match[3], + minutes = (match[4] === void 0) ? 0 : +match[4], + offset = getTime(hours, minutes, 0); + + if (match[2] === '-') { + offset *= -1; + } + + return { offset: offset, time: match[1] }; + } + } + + // No time zone specified, assume UTC + return { offset: 0, time: str }; + } + + function parseTime(str) { + var match; + var offset = parseOffset(str); + + str = offset.time; + offset = offset.offset; + if (isNaN(offset)) { + return NaN; + } + + match = matchAll(str, timePatterns); + if (match === null) { + return NaN; + } + + var hours = (match[1] === void 0) ? 0 : +match[1], + minutes = (match[2] === void 0) ? 0 : +match[2], + seconds = (match[3] === void 0) ? 0 : +match[3]; + + return getTime(hours, minutes, seconds) - offset; + } + + /** + * Parse an ISO8601 formatted date string, and return a Date object. + */ + function parseISO8601(str){ + var match = DATE_TIME.exec(str); + if (!match) { + // No time specified + return parseDate(str); + } + + return parseDate(match[1]) + parseTime(match[2]); + } + + module.exports = parseISO8601; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js new file mode 100644 index 00000000..072bc0ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/startOf.js @@ -0,0 +1,54 @@ +var clone = require('../lang/clone'); + + /** + * get a new Date object representing start of period + */ + function startOf(date, period){ + date = clone(date); + + // intentionally removed "break" from switch since start of + // month/year/etc should also reset the following periods + switch (period) { + case 'year': + date.setMonth(0); + /* falls through */ + case 'month': + date.setDate(1); + /* falls through */ + case 'week': + case 'day': + date.setHours(0); + /* falls through */ + case 'hour': + date.setMinutes(0); + /* falls through */ + case 'minute': + date.setSeconds(0); + /* falls through */ + case 'second': + date.setMilliseconds(0); + break; + default: + throw new Error('"'+ period +'" is not a valid period'); + } + + // week is the only case that should reset the weekDay and maybe even + // overflow to previous month + if (period === 'week') { + var weekDay = date.getDay(); + var baseDate = date.getDate(); + if (weekDay) { + if (weekDay >= baseDate) { + //start of the week is on previous month + date.setDate(0); + } + date.setDate(date.getDate() - date.getDay()); + } + } + + return date; + } + + module.exports = startOf; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js new file mode 100644 index 00000000..f033d10f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/strftime.js @@ -0,0 +1,118 @@ +var pad = require('../number/pad'); +var i18n = require('./i18n_'); +var dayOfTheYear = require('./dayOfTheYear'); +var timezoneOffset = require('./timezoneOffset'); +var timezoneAbbr = require('./timezoneAbbr'); +var weekOfTheYear = require('./weekOfTheYear'); + + var _combinations = { + 'D': '%m/%d/%y', + 'F': '%Y-%m-%d', + 'r': '%I:%M:%S %p', + 'R': '%H:%M', + 'T': '%H:%M:%S', + 'x': 'locale', + 'X': 'locale', + 'c': 'locale' + }; + + + /** + * format date based on strftime format + */ + function strftime(date, format, localeData){ + localeData = localeData || i18n; + var reToken = /%([a-z%])/gi; + + function makeIterator(fn) { + return function(match, token){ + return fn(date, token, localeData); + }; + } + + return format + .replace(reToken, makeIterator(expandCombinations)) + .replace(reToken, makeIterator(convertToken)); + } + + + function expandCombinations(date, token, l10n){ + if (token in _combinations) { + var expanded = _combinations[token]; + return expanded === 'locale'? l10n[token] : expanded; + } else { + return '%'+ token; + } + } + + + function convertToken(date, token, l10n){ + switch (token){ + case 'a': + return l10n.days_abbr[date.getDay()]; + case 'A': + return l10n.days[date.getDay()]; + case 'h': + case 'b': + return l10n.months_abbr[date.getMonth()]; + case 'B': + return l10n.months[date.getMonth()]; + case 'C': + return pad(Math.floor(date.getFullYear() / 100), 2); + case 'd': + return pad(date.getDate(), 2); + case 'e': + return pad(date.getDate(), 2, ' '); + case 'H': + return pad(date.getHours(), 2); + case 'I': + return pad(date.getHours() % 12, 2); + case 'j': + return pad(dayOfTheYear(date), 3); + case 'L': + return pad(date.getMilliseconds(), 3); + case 'm': + return pad(date.getMonth() + 1, 2); + case 'M': + return pad(date.getMinutes(), 2); + case 'n': + return '\n'; + case 'p': + return date.getHours() >= 12? l10n.pm : l10n.am; + case 'P': + return convertToken(date, 'p', l10n).toLowerCase(); + case 's': + return date.getTime() / 1000; + case 'S': + return pad(date.getSeconds(), 2); + case 't': + return '\t'; + case 'u': + var day = date.getDay(); + return day === 0? 7 : day; + case 'U': + return pad(weekOfTheYear(date), 2); + case 'w': + return date.getDay(); + case 'W': + return pad(weekOfTheYear(date, 1), 2); + case 'y': + return pad(date.getFullYear() % 100, 2); + case 'Y': + return pad(date.getFullYear(), 4); + case 'z': + return timezoneOffset(date); + case 'Z': + return timezoneAbbr(date); + case '%': + return '%'; + default: + // keep unrecognized tokens + return '%'+ token; + } + } + + + module.exports = strftime; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js new file mode 100644 index 00000000..b1006875 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneAbbr.js @@ -0,0 +1,17 @@ +var timezoneOffset = require('./timezoneOffset'); + + /** + * Abbreviated time zone name or similar information. + */ + function timezoneAbbr(date){ + // Date.toString gives different results depending on the + // browser/system so we fallback to timezone offset + // chrome: 'Mon Apr 08 2013 09:02:04 GMT-0300 (BRT)' + // IE: 'Mon Apr 8 09:02:04 UTC-0300 2013' + var tz = /\(([A-Z]{3,4})\)/.exec(date.toString()); + return tz? tz[1] : timezoneOffset(date); + } + + module.exports = timezoneAbbr; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js new file mode 100644 index 00000000..9492dceb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/timezoneOffset.js @@ -0,0 +1,16 @@ +var pad = require('../number/pad'); + + /** + * time zone as hour and minute offset from UTC (e.g. +0900) + */ + function timezoneOffset(date){ + var offset = date.getTimezoneOffset(); + var abs = Math.abs(offset); + var h = pad(Math.floor(abs / 60), 2); + var m = pad(abs % 60, 2); + return (offset > 0? '-' : '+') + h + m; + } + + module.exports = timezoneOffset; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js new file mode 100644 index 00000000..8aafeb84 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInMonth.js @@ -0,0 +1,25 @@ +var isDate = require('../lang/isDate'); +var isLeapYear = require('./isLeapYear'); + + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + /** + * returns the total amount of days in the month (considering leap years) + */ + function totalDaysInMonth(fullYear, monthIndex){ + if (isDate(fullYear)) { + var date = fullYear; + year = date.getFullYear(); + monthIndex = date.getMonth(); + } + + if (monthIndex === 1 && isLeapYear(fullYear)) { + return 29; + } else { + return DAYS_IN_MONTH[monthIndex]; + } + } + + module.exports = totalDaysInMonth; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js new file mode 100644 index 00000000..b4b7e9b7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/totalDaysInYear.js @@ -0,0 +1,13 @@ +var isLeapYear = require('./isLeapYear'); + + /** + * return the amount of days in the year following the gregorian calendar + * and leap years + */ + function totalDaysInYear(fullYear){ + return isLeapYear(fullYear)? 366 : 365; + } + + module.exports = totalDaysInYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js new file mode 100644 index 00000000..dd51b7f1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/date/weekOfTheYear.js @@ -0,0 +1,16 @@ +var dayOfTheYear = require('./dayOfTheYear'); + + /** + * Return the week of the year based on given firstDayOfWeek + */ + function weekOfTheYear(date, firstDayOfWeek){ + firstDayOfWeek = firstDayOfWeek == null? 0 : firstDayOfWeek; + var doy = dayOfTheYear(date); + var dow = (7 + date.getDay() - firstDayOfWeek) % 7; + var relativeWeekDay = 6 - firstDayOfWeek - dow; + return Math.floor((doy + relativeWeekDay) / 7); + } + + module.exports = weekOfTheYear; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md new file mode 100644 index 00000000..1f390fbc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/array.md @@ -0,0 +1,773 @@ +# array # + +Array utilities. + + + + +## append(arr1, arr2):Array + +Appends an array to the end of the other. +The first array will be modified and will contain the appended items. + +See: [`union()`](#union), [`combine()`](#combine) + +```js +var foo = ['a', 'b'], + bar = ['b', 'd']; + +append(foo, bar); // ['a', 'b', 'b', 'd'] +``` + + + +## collect(arr, callback, [thisObj]):Array + +Maps the items in `arr` and concatenates the resulting arrays. + +See: [`map()`](#map) + +```js +collect([1, 2, 3], function(val) { + return [val, val % 2]; +}); // [1, 1, 2, 0, 3, 1]; + +collect(['a', 'bb', ''], function(val) { + return val.split(''); +}); // ['a', 'b', 'b'] +``` + +It also supports a shorthand syntax: + +```js +var items = [{ a: [1] }, { b: 'foo' }, { a: [2, 3] }]; +collect(items, 'a'); // [1, 2, 3]; +``` + + + +## combine(arr1, arr2):Array + +Combines an array with all the items of another. +The first array will be modified and will contain the combined items. +Does not allow duplicates and is case and type sensitive. + +See: [`union()`](#union), [`append()`](#append) + +```js +var foo = ['a', 'b'], + bar = ['b', 'd']; + +combine(foo, bar); // ['a', 'b', 'd'] +``` + + + +## compact(arr):Array + +Returns a new Array without any `null` or `undefined` values. Note that it will +keep empty strings and other falsy values (simillar to Ruby Array#compact). + +```js +var arr = [0, 1, null, false, '', 'foo', undefined, 'bar']; +compact(arr); // [0, 1, false, '', 'foo', 'bar']; +``` + + + +## contains(arr, value):Boolean + +Checks if Array contains value. Alias to `indexOf(arr, val) !== -1`. + +```js +var arr = [1, 2, 3]; +contains(arr, 2); // true +contains(arr, 'foo'); // false +``` + + + +## difference(...arrs):Array + +Return a new Array with elements that aren't present in the other Arrays +besides the first one. + +Works like [Python set#difference](http://docs.python.org/library/stdtypes.html#set.difference). + +It will remove duplicates. + +See: [`xor()`](#xor), [`intersection()`](#intersection) + +```js +var a = ['a', 'b', 1]; +var b = ['c', 1]; +difference(a, b); // ['a', 'b'] +``` + + + +## every(arr, callback, [thisObj]):Array + +Crossbrowser `Array.every()`. + +Tests whether all elements in the array pass the test implemented by the provided function. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = [1, 'foo', 'bar']; +every(items, isString); // false +every(items, isFunction); // false +every(items, function(val, key, arr){ + return val != null; +}); // true +``` + +more info at [MDN Array#every](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every) + +It also supports a shorthand syntax: + +```js +var items = [{id:1, active:true}, {id:3, active:true}, {id:8, active:true}]; +// all items with `id === 8` +every(items, {id:8}); // false +// `active` is truthy on all items +every(items, 'active'); // true +``` + + + +## filter(arr, callback, [thisObj]):Array + +Crossbrowser `Array.filter()`. + +Creates a new array with all elements that pass the callback test. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var nums = [1, 2, 3, 4, 5, 6]; +var oddNumbers = filter(nums, function(val, key, arr){ + return (val % 2) !== 0; +}); +// > [1, 3, 5] +``` + +more info at [MDN Array#filter](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter) + +Filter also supports shorthand notation: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true}, + {name:'jane', surname:'doe', beard:false} +]; +// filter item that matches all properties/values pairs +filter(arr, {name:'john', beard:false}); +// > [{name:'john', surnname:'connor', beard:false}] +// items where 'beard' is a truthy value +filter(arr, 'beard'); +// > [{name:'john', surnname:'doe', beard:true}] +``` + +See [`reject()`](#reject) + + + +## find(arr, callback, [thisObj]):void + +Loops through all the items in the Array and returns the first one that passes +a truth test (callback). + +```js +var arr = [123, {a:'b'}, 'foo', 'bar']; +find(arr, isString); // "foo" +find(arr, isNumber); // 123 +find(arr, isObject); // {a:'b'} +``` + +Find also supports shorthand notation: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true} +]; +// first item that matches all properties/values pairs +find(arr, {name:'john'}); // {name:'john', surnname:'connor', beard:false} +// first item where 'beard' is a truthy value +find(arr, 'beard'); // {name:'john', surnname:'doe', beard:true} +``` + +See: [findIndex()](#findIndex) + + + +## findIndex(arr, iterator, [thisObj]):Number + +Loops through the items in the Array and returns the index of the first one +that passes a truth test (callback). + +Returns `-1` if no item was found that passes the truth test. + +```js +var arr = [1, { a: 1 }, 'foo', 'bar']; +findIndex(arr, isString); // 2 +findIndex(arr, isNumber); // 0 +findIndex(arr, isObject); // 1 +findIndex(arr, isRegExp); // -1 +``` + +`findIndex` also supports shorthand notation: + +```js +var pets = [ + { pet: 'dog', name: 'Sam' }, + { pet: 'dog', name: 'Maggie' } +]; + +findIndex(pets, { pet: 'dog' }); // 0 +findIndex(pets, { name: 'Maggie' }); // 1 +``` + +See: [find()](#find) + + + +## flatten(arr, [level]):Array + +Recursively flattens an array. A new array containing all the elements is +returned. If `level` is specified, it will only flatten up to that level. + +### Example + +```js +flatten([1, [2], [3, [4, 5]]]); +// > [1, 2, 3, 4, 5] +flatten([1, [2], [3, [4, 5]]], 1); +// > [1, 2, 3, [4, 5]] +``` + + + +## forEach(arr, callback, [thisObj]):void + +Crossbrowser `Array.forEach()`. + +It allows exiting the iteration early by returning `false` on the callback. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = ['foo', 'bar', 'lorem', 'ipsum']; +forEach(items, function(val, key, arr){ + console.log(key +' : '+ val); + if (val === 'lorem') { + // stop iteration (break) + return false; + } +}); +``` + +more info at [MDN Array#forEach](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach) + + + +## indexOf(arr, item, [fromIndex]):Number + +Crossbrowser `Array.indexOf()`. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#indexOf](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf) + + + + +## insert(arr, ...items):Number + +Push items into array only if they aren't contained by it. Returns the new +`length` of the array. + +See: [`remove()`](#remove), [`removeAll()`](#removeAll), +[`contains()`](#contains) + +```js +var arr = ['a', 'b']; +insert(arr, 'a'); // 2 : ['a', 'b'] +insert(arr, 'c'); // 3 : ['a', 'b', 'c'] +insert(arr, 1, 2, 'b'); // 5 : ['a', 'b', 'c', 1, 2] +``` + + + +## intersection(...arrs):Array + +Return a new Array with elements common to all Arrays. + +Similar to Python set#intersection and underscore.js intersection. + +It will remove duplicates. + +See: [`difference()`](#difference), [`xor()`](#xor) + +```js +var a = ['a', 'b', 1], + b = ['c', 1], + c = [1, 2, 3]; +intersection(a, b, c); // [1] +``` + + + +## invoke(arr, methodName[, ...args]):Array + +Call `methodName` on each item of the array passing custom arguments if needed. + +```js +invoke([[3,2,1], [9,5,2]], 'sort'); // [[1,2,3], [2,5,9]] +``` + + + +## join(arr, [separator]):String + +Joins the strings in `arr`, inserting `separator` between each value. + +This ignores null values and empty strings that are in the array. `separator` +defaults to an empty string. This will convert all non-string objects in the +array to a string. + +### Example + +```js +join(['a', 'b', 'c']); // 'abc' +join(['foo', 'bar'], ', '); // 'foo, bar' +join([null, 'foo', '', 'bar', undefined], ':'); // 'foo:bar' +``` + + + +## lastIndexOf(arr, item, [fromIndex]):Number + +Crossbrowser `Array.lastIndexOf()`. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#lastIndexOf](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf) + + + +## map(arr, callback, [thisObj]]):Array + +Crossbrowser `Array.map()`. + +Creates a new array with the results of calling a provided function on every +element in this array. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +See: [`collect()`](#collect) + +```js +var nums = [1,2,3,4]; +var double = map(nums, function(val, key, arr){ + return val * 2; +}); +// > [2, 4, 6, 8] +``` + +more info at [MDN Array#map](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map) + +It also supports a shorthand notation which can be used to achieve same result +as [`array/pluck`](#pluck): + +```js +var src = ['lorem', 'ipsum', 'foo', 'amet']; +// grab the "length" property of all items +var lengths = map(src, 'length'); // [5, 5, 3, 4] +``` + + + +## max(arr, [iterator], [thisObj]):* + +Returns maximum value inside array or use a custom iterator to define how items +should be compared. + +See: [`min()`](#min) + +```js +max([10, 2, 7]); // 10 +max(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'lorem' +``` + +It also supports a shorthand notation: + +```js +max(['foo', 'lorem', 'amet'], 'length'); // "lorem" +``` + + + +## min(arr, [iterator], [thisObj]):* + +Returns minimum value inside array or use a custom iterator to define how items +should be compared. + +See: [`max()`](#max) + +```js +min([10, 2, 7]); // 2 +min(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'foo' +``` + +It also supports a shorthand notation: + +```js +min(['foo', 'lorem', 'amet'], 'length'); // "foo" +``` + + + +## pick(arr):* + +Gets a random item and remove it from the array. + +### Example: + + var arr = [1, 2, 3, 4, 5, 6]; + var item_1 = pick(arr); // 4 + var item_2 = pick(arr); // 1 + console.log(arr); // [2, 3, 5, 6] + + + +## pluck(arr, propName):Array + +Extract a list of property values. + +See: [`function/prop()`](function.html#prop) + +```js +var users = [{name : 'John', age: 21}, {name: 'Jane', age : 27}]; +var names = pluck(users, 'name'); // ["John", "Jane"] +var ages = pluck(users, 'age'); // [21, 27] +``` + + + +## range([start], stop[, step]):Array + +Creates a new Array with all the values inside the range. Works similarly to +Python#range or PHP#range. + +### Arguments + + 1. `[start]` (Number) : Range start. Default is `0`. + 2. `stop` (Number) : Range limit. + 3. `[step]` (Number) : Step size. Default is `1`. + +### Example + +```js +range(5); // [0, 1, 2, 3, 4, 5] +range(0, 5); // [0, 1, 2, 3, 4, 5] +range(0, 5, 2); // [0, 2, 4] +range(20, 40, 5); // [20, 25, 30, 35, 40] +``` + + + +## reduce(arr, fn):* + +Crossbrowser `Array.reduce()`. + +Apply a function against an accumulator and each value of the array (from +left-to-right) as to reduce it to a single value. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#reduce](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce) + + + +## reduceRight(arr, fn):* + +Crossbrowser `Array.reduceRight()`. + +Apply a function simultaneously against two values of the array (from +right-to-left) as to reduce it to a single value. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +more info at [MDN Array#reduceRight](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduceRight) + + + +## reject(arr, fn, thisObj):Array + +Creates a new array with all the elements that do **not** pass the truth test. +Opposite of [`filter()`](#filter). + +See [`filter()`](#filter) + +### Example + +```js +var numbers = [1, 2, 3, 4, 5, 6]; +reject(numbers, function(x) { return (x % 2) !== 0; }); // [2, 4, 6] +``` + +It also supports a shorthand syntax: + +```js +var users = [ + {name:'john', surname:'connor', beard:false}, + {name:'john', surname:'doe', beard:true}, + {name:'jane', surname:'doe', beard:false} +]; +// reject items that matches all properties/values pairs +reject(arr, {name:'john'}); +// > [{name:'jane', surnname:'doe', beard:false}] +// reject items where 'beard' is a truthy value +filter(arr, 'beard'); +// > [{name:'john', surnname:'connor', beard:false}, +// {name:'jane', surname:'doe', beard:false}] +``` + + + +## remove(arr, item):void + +Remove a single item from the array. + +IMPORTANT: it won't remove duplicates, just a single item. + +### Example + +```js +var foo = [1, 2, 3, 4]; +remove(foo, 2); +console.log(foo); // [1, 3, 4] +``` + + + +## removeAll(arr, item):void + +Remove all instances of an item from the array. + +### Example + +```js +var foo = [1, 2, 3, 4, 2, 2]; +removeAll(foo, 2); +console.log(foo); // [1, 3, 4]; +``` + + + +## shuffle(arr):Array + +Returns a new Array with items randomly sorted (shuffled). Similar to Ruby Array#shuffle. + +### Example + +```js +var arr = ['a', 'b', 'c', 'd', 'e']; +shuffle(arr); // ['b', 'd', 'e', 'c', 'a'] +``` + + + +## some(arr, callback, [thisObj]):Array + +Crossbrowser `Array.some()`. + +Tests whether some element in the array passes the test implemented by the provided function. + +It differs from ES5 since it will also loop over sparse items in the array to +normalize the behavior across browsers (avoid inconsistencies). + +```js +var items = [1, 'foo', 'bar']; +some(items, isString); // true +some(items, isFunction); // false +``` + +more info at [MDN Array#some](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some) + +It also supports a shorthand syntax: + +```js +var items = [{id:1, active:true}, {id:3, active:false}, {id:8, active:false}]; +// at least one item with `id === 8` +some(items, {id:8}); // true +// `active` is truthy on at least one item +some(items, 'active'); // true +``` + +see also: [`object/matches`](object.html#matches) + + + +## sort(arr, [compareFn]):Array + +Returns a sorted Array using the [Merge Sort](http://en.wikipedia.org/wiki/Merge_sort) algorithm (stable sort). + +The `Array.prototype.sort` browser implementations differ since the sorting algorithm isn't described in the ES spec - [in V8 it isn't stable](http://code.google.com/p/v8/issues/detail?id=90) and [on Firefox it is stable](https://bugzilla.mozilla.org/show_bug.cgi?id=224128) - so this function doesn't use the browser native implementation and is recommended in cases where a stable sort is required (items should preserve same order if already sorted). + +**Important:** It does logical comparisson by default (greater/less than) and +not a string comparisson like the native `Array#sort`. + +### compareFn + +If `compareFn` is supplied elements are sorted based on the value returned by +the `compareFn`. + + - If `compareFn(a, b)` is less than `0`, sort `a` to a lower index than `b`. + - If `compareFn(a, b)` returns `0`, leave `a` and `b` unchanged with respect + to each other, but sorted with respect to all different elements. + - If `compareFn(a, b)` is greater than `0`, sort `b` to a lower index than + `a`. + +### Example + +```js +sort([187, 23, 47, 987, 12, 59, 0]); // [0, 12, 23, 47, 59, 187, 987] +sort(['a', 'z', 'c', 'beta', 'b']); // ['a', 'b', 'beta', 'c', 'z'] + +// ['sit', 'amet', 'lorem', 'ipsum'] +sort(['lorem', 'ipsum', 'sit', 'amet'], function(a, b){ + // sort by length, items with same length + // will keep the relative order (stable) + return a.length - b.length; +}); + +// [4, 3, 2, 1] +sort([2, 3, 1, 4], function(a, b){ + // reverse sort + return b - a; +}); +``` + + + +## split(arr, [segments]):Array + +Splits an array into a fixed number of segments. + +The number of segments is specified by `segments` and defaults to 2. If the +array cannot be evenly split, the first segments will contain the extra items. +If `arr` is empty, an empty array is returned. If `arr.length` is less than +`segments`, then the resulting array will have `arr.length` number of +single-element arrays. + +### Example +```js +split([1, 2, 3, 4, 5], 3) // [ [1, 2], [3, 4], [5] ] +split([1, 2, 3, 4, 5]) // [ [1, 2, 3], [4, 5] ] +split([]) // [] +split([1, 2], 3) // [ [1], [2] ] +``` + + + +## toLookup(arr, key):Object + +Create an object that indexes the items in the array by a key. If `key` is a function, the key for each value in the resulting object will be the result of calling the function with the value as an argument. Otherwise `key` specifies the property on each value to use as the key. + +### Example + +```js +var foo = [{ name: 'a', thing: 1 }, { name: 'b', thing: 2 }]; +// { a: { name: 'a', thing: 1 }, b: { name: 'b', thing: 2 } } +toLookup(foo, 'name'); +// same as above +toLookup(foo, function (value) { return value.name; }); +``` + + + +## union(...arrs):Array + +Concat multiple arrays removing duplicates. + +```js +var a = ['a', 'b'], + b = ['c', 'a'], + c = [1, 'b', 2, 3, 'a']; + +//note that unique remove from begin to end +union(a, b, c); // ['c', 1, 'b', 2, 3, 'a'] +``` + + + +## unique(arr):Array + +Return a new Array of unique items. + +### Example + +```js +var foo = [1, 2, 3, 4, 2, 2, 3, 4]; +var bar = unique(foo); +console.log(foo); // [1, 2, 3, 4]; +``` + + + +## xor(arr1, arr2):Array + +Exclusive OR. Returns items that are present in a single array. + +Works like [Python set#symmetric_difference](http://docs.python.org/library/stdtypes.html#set.symmetric_difference) renamed for brevity. + +It will remove duplicates. + +See: [`difference()`](#difference), [`intersection()`](#intersection) + +```js +var a = ['a', 'b', 1]; +var b = ['c', 1]; +xor(a, b); // ['a', 'b', 'c'] +``` + + + +## zip(...arrs):Array + +Groups the elements of each array at their corresponding indexes. + +Useful for separate data sources that are coordinated through matching array +indexes. For a matrix of nested arrays, `zip.apply(...)` can transpose the +matrix in a similar fashion. + +```js +// [['moe', 30, true], ['larry', 40, false], ['curly', 50, false]] +zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); +``` + + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md new file mode 100644 index 00000000..2ffcab10 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/collection.md @@ -0,0 +1,233 @@ +# collection # + +Methods for dealing with collections (Array or Objects). + + + +## contains(list, value):Boolean + +Checks if collection contains value. + +```js +contains({a: 1, b: 2, c: 'bar'}, 2); // true +contains([1, 2, 3], 'foo'); // false +``` + +See: [array/contains](array.html#contains), [object/contains](object.html#contains) + + + +## every(list, callback, [thisObj]):Boolean + +Tests whether all values in the collection pass the test implemented by the +provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +every(obj, isNumber); // false +``` + +See: [array/every](array.html#every), [object/every](object.html#every) + + + +## filter(list, callback, [thisObj]):Array + +Filter collection properties. + +See: [array/filter](array.html#filter), [object/filter](object.html#filter) + + + +## find(list, callback, [thisObj]):* + +Loops through all the values in the collection and returns the first one that +passes a truth test (callback). + +**Important:** loop order over objects properties isn't guaranteed to be the +same on all environments. + +```js +find({a: 'foo', b: 12}, isString); // 'foo' +find(['foo', 12], isNumber); // 12 +``` + +See: [array/find](array.html#find), [object/find](object.html#find) + + + +## forEach(list, callback, [thisObj]) + +Loop through all values of the collection. + +See: [array/forEach](array.html#forEach), [object/forOwn](object.html#forOwn) + + + +## map(list, callback, [thisObj]):Array + +Returns a new collection where the properties values are the result of calling +the callback for each property in the original collection. + +See: [array/map](array.html#map), [object/map](object.html#map) + + + +## max(list, [iterator]):* + +Returns maximum value inside collection or use a custom iterator to define how +items should be compared. + +See: [`min()`](#min), [array/max](array.html#max), [object/max](object.html#max) + +```js +max({a: 100, b: 2, c: 1, d: 3, e: 200}); // 200 +max(['foo', 'lorem', 'amet'], function(val){ + return val.length; +}); // 'lorem' +``` + + + +## min(list, [iterator]):* + +Returns minimum value inside collection or use a custom iterator to define how +items should be compared. + +See: [`max()`](#max), [array/min](array.html#min), [object/min](object.html#min) + +```js +min([10, 2, 7]); // 2 +min({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'foo' +``` + + + +## pluck(list, propName):Array + +Extract a list of property values. + +```js +var users = [ + { + name : 'John', + age : 21 + }, + { + name : 'Jane', + age : 27 + } +]; + +pluck(users, 'name'); // ["John", "Jane"] +pluck(users, 'age'); // [21, 27] + +users = { + first: { + name : 'John', + age : 21 + }, + second: { + name : 'Mary', + age : 25 + } +}; + +pluck(users, 'name'); // ['John', 'Mary'] +``` + +See: [array/pluck](array.html#pluck), [object/pluck](object.html#pluck) + + + +## reduce(list, callback, initial, [thisObj]):* + +Apply a function against an accumulator and each value in the collection as to +reduce it to a single value. + +```js +var obj = {a: 1, b: 2, c: 3, d: 4}; + +function sum(prev, cur, key, list) { + return prev + cur; +} + +reduce(obj, sum); // 10 +``` + +See: [array/reduce](array.html#reduce), [object/reduce](object.html#reduce) + + + +## reject(list, fn, [thisObj]):Array + +Creates a new array with all the elements that do **not** pass the truth test. +Opposite of [`filter()`](#filter). + +### Example + +```js +var numbers = [1, 2, 3, 4, 5]; +reject(numbers, function(x) { return (x % 2) !== 0; }); // [2, 4] + +var obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; +reject(obj, function(x) { return (x % 2) !== 0; }); // [2, 4] +``` + +See: [array/reject](array.html#reject), [object/reject](object.html#reject) + + + +## size(list):Number + +Returns the number of values in the collection. + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +size(obj); // 3 +size([1,2,3]); // 3 +size(null); // 0 +``` + +See: [object/size](object.html#size) + + + +## some(list, callback, [thisObj]):Boolean + +Tests whether any values in the collection pass the test implemented by the +provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +some(obj, isNumber); // true +some(obj, isString); // true +some([1, 2, 3], isNumber) // true +some([1, 2, 3], isString) // false +``` + +See: [array/some](array.html#some), [object/some](object.html#some) + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md new file mode 100644 index 00000000..b3f7f40e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/date.md @@ -0,0 +1,295 @@ +# date # + +Date utilities. + + +## dayOfTheYear(date):Number + +How many days elapsed since begining of the year (following gregorian +calendar). + +```js +// Jan 1st +dayOfTheYear(new Date(2013, 0, 1)); // 1 +// Dec 31th +dayOfTheYear(new Date(2013, 11, 31)); // 364 +``` + + + +## diff(date1, date2, [unitName]):Number + +Calculate the difference between dates (range). + +The returned value is always positive. The default `unitName` is `"ms"`. + +Available units: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`, +`millisecond`. + +See: [`time/convert()`](time.html#convert) + +```js +var d1 = new Date(2012, 4, 5); +var d2 = new Date(2013, 4, 8); +diff(d1, d2); // 31795200000 +diff(d1, d2, 'hour'); // 8832 +diff(d1, d2, 'week'); // 52.57142857142857 +diff(d1, d2, 'month'); // 12.096774193548388 +diff(d1, d2, 'year'); // 1.0082191780821919 +``` + + + +## isLeapYear(fullYear|date):Boolean + +Checks if it's a [leap year](http://en.wikipedia.org/wiki/Leap_year) according +to the Gregorian calendar. + +see: [`totalDaysInMonth()`](#totalDaysInMonth) + +```js +isLeapYear(2012); // true +isLeapYear(2013); // false +isLeapYear(new Date(2012, 2, 28)); // true +``` + + +## isSame(date1, date2[, period]):Boolean + +Check if both dates are the "same". + +You can pass an optional *period* used to set the comparisson precision. + +Available periods: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`. + +```js +var date1 = new Date(2013, 1, 3); +var date2 = new Date(2013, 2, 9); +isSame(date1, date2); // false +isSame(date1, date2, 'day'); // false +isSame(date1, date2, 'month'); // false +isSame(date1, date2, 'year'); // true +``` + + + +## parseIso(str):Number + +Parses an [ISO8601](http://en.wikipedia.org/wiki/Iso8601) date and returns the +number of milliseconds since January 1, 1970, 00:00:00 UTC, or `NaN` if it is +not a valid ISO8601 date. + +This parses *all* ISO8601 dates, including dates without times, [ordinal +dates](https://en.wikipedia.org/wiki/ISO_8601#Ordinal_dates), and the compact +representation (omitting delimeters). The only exception is [ISO week +dates](https://en.wikipedia.org/wiki/ISO_week_date), which are not parsed. + +If no time zone offset is specified, it assumes UTC time. + +```js +// Jan 01, 1970 00:00 GMT +parseIso('1970-01-01T00:00:00') // 0 +parseIso('1970-001') // 0 +parseIso('1970-01-01') // 0 +parseIso('19700101T000000.00') // 0 +parseIso('1970-01-01T02:00+02:00') // 0 + +// Jan 02, 2000 20:10 GMT+04:00 +parseIso('2000-01-02T20:10+04:00') // 946829400000 +``` + + + +## startOf(date, period):Date + +Get a new Date at the start of the period. + +Available periods: `year`, `month`, `week`, `day`, `hour`, `minute`, `second`. + +```js +// Apr 05 2013 11:27:43 +var date = new Date(2013, 3, 5, 11, 27, 43, 123); +startOf(date, 'year'); // Jan 01 2013 00:00:00 +startOf(date, 'month'); // Apr 01 2013 00:00:00 +startOf(date, 'day'); // Apr 05 2013 00:00:00 +startOf(date, 'hour'); // Apr 05 2013 11:00:00 +``` + + + +## strftime(date, format, [l10n]):String + +Format date based on strftime format. + +Replaced tokens: + +
      +
      %a
      locale's abbreviated weekday name.
      +
      %A
      locale's full weekday name.
      +
      %b
      locale's abbreviated month name.
      +
      %B
      locale's full month name.
      +
      %c
      locale's appropriate date and time representation.
      +
      %C
      century number (the year divided by 100 and truncated +to an integer) as a decimal number [00..99].
      +
      %d
      day of the month as a decimal number [01..31].
      +
      %D
      same as %m/%d/%y.
      +
      %e
      day of the month as a decimal number [1..31]; +a single digit is preceded by a space.
      +
      %F
      The ISO 8601 date format (%Y-%m-%d)
      +
      %h
      same as %b.
      +
      %H
      hour (24-hour clock) as a decimal number [00..23].
      +
      %I
      hour (12-hour clock) as a decimal number [01..12].
      +
      %j
      day of the year as a decimal number [001..366].
      +
      %L
      zero-padded milliseconds [000..999]
      +
      %m
      month as a decimal number [01..12].
      +
      %M
      minute as a decimal number [00..59].
      +
      %n
      newline character.
      +
      %p
      locale's equivalent of either "am" or "pm"
      +
      %P
      locale's equivalent of either "AM" or "PM"
      +
      %r
      time in a.m. and +p.m. notation; in the POSIX locale this is equivalent to %I:%M:%S %p.
      +
      %R
      time in 24 hour notation (%H:%M).
      +
      %s
      seconds since Epoch (1970-01-01 00:00:00 UTC)
      +
      %S
      second as a decimal number [00..60].
      +
      %t
      tab character.
      +
      %T
      time (%H:%M:%S).
      +
      %u
      weekday as a decimal number [1..7], with 1 representing +Monday.
      +
      %U
      week number of the year (Sunday as the first day of +the week) as a decimal number [00..53].
      +
      %V
      week number of the year (Monday as the first day of the +week) as a decimal number [01..53]. If the week containing 1 January has +four or more days in the new year, then it is considered week 1. Otherwise, +it is the last week of the previous year, and the next week is week 1.
      +
      %w
      weekday as a decimal number [0..6], with 0 representing +Sunday.
      +
      %W
      week number of the year (Monday as the first day of +the week) as a decimal number [00..53]. All days in a new year preceding +the first Monday are considered to be in week 0.
      +
      %x
      locale's appropriate date representation.
      +
      %X
      locale's appropriate time representation.
      +
      %y
      year without century as a decimal number [00..99].
      +
      %Y
      year with century as a decimal number.
      +
      %Z
      timezone name or abbreviation, or by no bytes +if no timezone information exists.
      +
      %%
      is replaced by %.
      +
      + +```js +var date = new Date(2013, 3, 8, 9, 2, 4); +strftime(date, '%Y-%m-%d'); // "2013-04-08" +strftime(date, '%R'); // "09:02" +strftime(date, '%Y-%m-%dT%H:%M:%S%z'); // "2013-04-08T09:02:04+0000" +``` + +You can also set a custom locale: + +```js +var ptBr = require('mout/date/i18n/pt-BR'); +strftime(date, '%a, %d %b', ptBr); // 'Seg, 08 Abr' +strftime(date, '%A, %d %B', ptBr); // 'Segunda, 08 Abril' +``` + +To set it globally: + +```js +require('mout/date/i18n_').set( customLocaleData ); +``` + +See [date/i18n](https://github.com/mout/mout/tree/master/src/date/i18n) +for localization examples. + + + +## timezoneAbbr(date):String + +Return timezone abbreviation or similar data. + +The result will vary based on the OS/browser since some environments doesn't +provide enough info about the current locale. + +```js +// IE 7-8 +timezoneAbbr(new Date()); // "-0500" +// Chrome, FF, V8 +timezoneAbbr(new Date()); // "EST" +``` + + + +## timezoneOffset(date):String + +Return time zone as hour and minute offset from UTC (e.g. +0900). + +It's important to note that JavaScript Date object will use the system locale +info to determinate the [timezone +offset](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset) +and that daylight saving time affects the result. + +```js +// if system locale is EST +timezoneOffset(new Date()); // -0500 +``` + + + +## totalDaysInMonth(fullYear, monthIndex):Number + +Returns the amount of days in the month taking into consideration leap years +(following Gregorian calendar). + +see: [`isLeapYear()`](#isLeapYear) + +```js +totalDaysInMonth(2008, 1); // 29 (leap year) +totalDaysInMonth(2009, 1); // 28 + +// you can also pass a Date object as single argument +totalDaysInMonth( new Date(2013, 0, 1) ); // 31 +``` + + +## totalDaysInYear(fullYear):Number + +Returns the amount of days in the year taking into consideration leap years +(following Gregorian calendar). + +see: [`isLeapYear()`](#isLeapYear), [`totalDaysInMonth()`](#totalDaysInMonth) + +```js +totalDaysInYear(2008); // 366 (leap year) +totalDaysInYear(2009); // 365 + +// you can also pass a Date object as single argument +totalDaysInYear( new Date(2013, 0, 1) ); // 365 +``` + + + +## weekOfTheYear(date, [firstDayOfWeek]):Number + +Returns how many weeks elapsed since start of the year (`0..53`). + +`firstDayOfWeek` can be `0` (Sunday) or `1` (Monday). By default weeks start at +Sunday. + +It will return `0` if `date` is before the first `firstDayOfWeek` of the year. + +```js +// Tue Jan 01 2013 +weekOfTheYear( new Date(2013,0,1) ); // 0 +// Wed Jan 09 2013 +weekOfTheYear( new Date(2013,0,9) ); // 1 +// Sun Jan 01 2012 +weekOfTheYear( new Date(2012,0,1) ); // 1 +// Mon Jan 09 2012 +weekOfTheYear( new Date(2012,0,9) ); // 2 +``` + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md new file mode 100644 index 00000000..2695a025 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/function.md @@ -0,0 +1,174 @@ +# function # + +Function*(al)* utilities. + + + +## bind(fn, context, [...args]):Function + +Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + +### Arguments + + 1. `fn` (Function) : Target Function + 2. `context` (Object) : Execution context (object used as `this`) + 3. `[...args]` (*) : Arguments (0...n arguments) + +See: [`partial()`](#partial), [object/bindAll](./object.html#bindAll) + + + +## compose(...fn):Function + +Returns the composition of a list of functions, where each function consumes +the return value of the function that follows. In math terms, composing the +functions `f()`, `g()`, and `h()` produces `f(g(h()))`. + +```js +function add2(x) { return x + 2 } +function multi2(x) { return x * 2 } +map([1, 2, 3], compose(add2, multi2)); // [4, 6, 8] + +//same as +map([1, 2, 3], function(x){ + return add2( multi2(x) ); +}); +``` + + + +## debounce(fn, delay[, isAsap]):Function + +Creates a function that will delay the execution of `fn` until after `delay` +milliseconds have elapsed since the last time it was invoked. + +Subsequent calls to the debounced function will return the result of the last +`fn` call. + +```js +// sometimes less is more +var lazyRedraw = debounce(redraw, 300); +foo.on.resize.add(lazyRedraw); +``` + +In this visualization, `|` is a debounced-function call and `X` is the actual +callback execution: + + Default + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X + + Debounced with `isAsap == true`: + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X + +See: [`throttle()`](#throttle) + + +## func(name):Function + +Returns a function that calls a method with given `name` on supplied object. +Useful for iteration methods like `array/map` and `array/forEach`. + +See: [`prop()`](#prop) + +```js +// will call the method `getName()` for each `user` +var names = map(users, func('getName')); +``` + + + +## partial(fn, [...args]):Function + +Return a partially applied function supplying default arguments. + +This method is similar to [`bind`](#bind), except it does not alter the this +binding. + +### Arguments + + 1. `fn` (Function) : Target Function + 3. `[...args]` (*) : Arguments (0...n arguments) + +See: [`bind()`](#bind) + +```js +function add(a, b){ return a + b } +var add10 = partial(add, 10); +console.log( add10(2) ); // 12 +``` + + + +## prop(name):Function + +Returns a function that gets a property with given `name` from supplied object. +Useful for using in conjunction with `array/map` and/or for creating getters. + +See: [`array/pluck()`](array.html#pluck) + +```js +var users = [{name:"John", age:21}, {name:"Jane", age:25}]; +// ["John", "Jane"] +var names = map(users, prop('name')); +``` + + + +## series(...fn):Function + +Returns a function that will execute all the supplied functions in order and +passing the same parameters to all of them. Useful for combining multiple +`array/forEach` into a single one and/or for debugging. + + +```js +// call `console.log()` and `doStuff()` for each item item in the array +forEach(arr, series(console.log, doStuff)); +``` + + + +## throttle(fn, interval):Function + +Creates a function that, when executed, will only call the `fn` function at +most once per every `interval` milliseconds. + +If the throttled function is invoked more than once during the wait timeout, +`fn` will also be called on the trailing edge of the timeout. + +Subsequent calls to the throttled function will return the result of the last +`fn` call. + +```js +// sometimes less is more +var lazyRedraw = throttle(redraw, 300); +foo.on.resize.add(lazyRedraw); +``` + +In this visualization, `|` is a throttled-function call and `X` is the actual +`fn` execution: + + ||||||||||||||||||||||||| (pause) ||||||||||||||||||||||||| + X X X X X X X X X X X X + +See: [`debounce()`](#debounce) + + +## timeout(fn, millis, context, [...args]):Number + +Functions as a wrapper for `setTimeout`. Calls a the function `fn` after a given delay `millis` in milliseconds. +The function is called within the specified context. The return value can be used to clear the timeout using `clearTimeout`. + +```js +var id = timeout(doStuff, 300, this); + +clearTimeout(id); +``` + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md new file mode 100644 index 00000000..56d7879b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/lang.md @@ -0,0 +1,385 @@ +# lang # + +Language Utilities. Easier inheritance, scope handling, type checks. + + + +## clone(val):* + +Clone native types like Object, Array, RegExp, Date and primitives. + +This method will not clone values that are referenced within `val`. It will +only copy the value reference to the new value. If the value is not a plain +object but is an object, it will return the value unchanged. + +### Example + +```js +var a = { foo: 'bar' }; +var b = clone(a); +console.log(a === b); // false +console.log(a.foo === b.foo); // true + +var c = [1, 2, 3]; +var d = clone(b); +console.log(c === d); // false +console.log(c); // [1, 2, 3] +``` + +See: [`deepClone()`](#deepClone) + + + +## createObject(parent, [props]):Object + +Create Object using prototypal inheritance and setting custom properties. + +Mix between [Douglas Crockford Prototypal Inheritance](http://javascript.crockford.com/prototypal.html) and the EcmaScript 5 `Object.create()` method. + +### Arguments + + 1. `parent` (Object) : Parent Object + 2. `[props]` (Object) : Object properties + +### Example + +```js +var base = { + trace : function(){ + console.log(this.name); + } +}; + +var myObj = createObject(base, { + name : 'Lorem Ipsum' +}); + +myObject.trace(); // "Lorem Ipsum" +``` + + + +## ctorApply(constructor, args):Object + +Do `Function.prototype.apply()` on a constructor while maintaining prototype +chain. + +```js +function Person(name, surname) { + this.name = name; + this.surname = surname; +} + +Person.prototype.walk = function(){ + console.log(this.name +' is walking'); +}; + +var args = ['John', 'Doe']; + +// "similar" effect as calling `new Person("John", "Doe")` +var john = ctorApply(Person, args); +john.walk(); // "John is walking" +``` + + + +## deepClone(val, [instanceClone]):* + +Deep clone native types like Object, Array, RegExp, Date and primitives. + +The `instanceClone` function will be invoked to clone objects that are not +"plain" objects (as defined by [`isPlainObject`](#isPlainObject)) if it is +provided. If `instanceClone` is not specified, it will not attempt to clone +non-plain objects, and will copy the object reference. + +### Example + +```js +var a = {foo:'bar', obj: {a:1, b:2}}; +var b = deepClone(a); // {foo:'bar', obj: {a:1, b:2}} +console.log( a === b ); // false +console.log( a.obj === b.obj ); // false + +var c = [1, 2, [3, 4]]; +var d = deepClone(c); // [1, 2, [3, 4]] +var e = c.concat(); // [1, 2, [3, 4]] + +console.log( c[2] === d[2] ); // false +// concat doesn't do a deep clone, arrays are passed by reference +console.log( e[2] === d[2] ); // true + +function Custom() { } +function cloneCustom(x) { return new Custom(); } +var f = { test: new Custom() }; +var g = deepClone(f, cloneCustom); +g.test === f.test // false, since new Custom instance will be created +``` + +See: [`clone()`](#clone) + + + +## defaults(val, ...defaults):void + +Return first value that isn't `null` or `undefined`. + + function doSomethingAwesome(foo, bar) { + // default arguments + foo = defaults(foo, 'lorem'); + bar = defaults(bar, 123); + // ... + } + + + +## inheritPrototype(child, parent):void + +Inherit prototype from another Object. + +```js +function Foo(name){ + this.name = name; +} +Foo.prototype = { + getName : function(){ + return this.name; + } +}; + +function Bar(name){ + this.name = name; +} +//should be called before calling constructor +inheritPrototype(Bar, Foo); + +var myObj = new Bar('lorem ipsum'); +myObj.getName(); // "lorem ipsum" +``` + + +## is(x, y):Boolean + +Check if both values are identical/egal. + +```js +// wtfjs +NaN === NaN; // false +-0 === +0; // true + +is(NaN, NaN); // true +is(-0, +0); // false +is('a', 'b'); // false +``` + +See: [`isnt()`](#isnt) + + + +## isnt(x, y):Boolean + +Check if both values are not identical/egal. + +```js +// wtfjs +NaN === NaN; // false +-0 === +0; // true + +isnt(NaN, NaN); // false +isnt(-0, +0); // true +isnt('a', 'b'); // true +``` + +See: [`is()`](#is) + + + + +## isArguments(val):Boolean + +If value is an "Arguments" object. + + + +## isArray(val):Boolean + +If value is an Array. Uses native ES5 `Array.isArray()` if available. + + + +## isBoolean(val):Boolean + +If value is a Boolean. + + + +## isDate(val):Boolean + +If value is a Date. + + + +## isEmpty(val):Boolean + +Checks if Array/Object/String is empty. + + +```js +isEmpty(''); // true +isEmpty('bar'); // false +isEmpty([]); // true +isEmpty([1, 2]); // false +isEmpty({}); // true +isEmpty({a:1, b:2}); // false +``` + + +## isFinite(val):Boolean + +Checks if value is Finite. + +Note: This is not the same as native `isFinite`, which will return `true` for +booleans and empty strings. See http://es5.github.com/#x15.1.2.5. + + + +## isFunction(val):Boolean + +If value is a Function. + + + +## isKind(val, kind):Boolean + +If value is of "kind". (used internally by some of the *isSomething* checks). + +Favor the other methods since strings are commonly mistyped and also because +some "kinds" can only be accurately checked by using other methods (e.g. +`Arguments`), some of the other checks are also faster. + +```js +isKind([1,2], 'Array'); // true +isKind(3, 'Array'); // false +isKind(3, 'Number'); // true +``` + +See: [`kindOf()`](#kindOf) + + + +## isInteger(val):Boolean + +Check if value is an integer. + +```js +isInteger(123); // true +isInteger(123.45); // false +isInteger({}); // false +isInteger('foo'); // false +isInteger('123'); // false +``` + + + +## isNaN(val):Boolean + +Check if value is `NaN`. + +Note: This is not the same as native `isNaN`, which will return `true` for +`undefined` and other values. See [ES5 isNaN](http://es5.github.com/#x15.1.2.4) + + + +## isNull(val):Boolean + +If value is `null`. + + + +## isNumber(val):Boolean + +If value is a Number. + + + +## isObject(val):Boolean + +If value is an Object. + + + +## isPlainObject(val):Boolean + +If the value is an Object created by the Object constructor. + + + +## isRegExp(val):Boolean + +If value is a RegExp. + + + +## isString(val):Boolean + +If value is a String. + + + +## isUndefined(val):Boolean + +If value is `undefined`. + + + +## kindOf(val):String + +Gets kind of value (e.g. "String", "Number", "RegExp", "Null", "Date"). +Used internally by `isKind()` and most of the other *isSomething* checks. + +```js +kindOf([1,2]); // "Array" +kindOf('foo'); // "String" +kindOf(3); // "Number" +``` + +See: [`isKind()`](#isKind) + + +## toArray(val):Array + +Convert array-like object into Array or wrap value into Array. + +```js +toArray({ + "0" : "foo", + "1" : "bar", + "length" : 2 +}); // ["foo", "bar"] + +function foo(){ + return toArray(arguments); +} +foo("lorem", 123); // ["lorem", 123] + +toArray("lorem ipsum"); // ["lorem ipsum"] +toArray(window); // [window] +toArray({foo:"bar", lorem:123}); // [{foo:"bar", lorem:123}] +``` + +See: object/values() + + + +## toString(val):String + +Convert any value to its string representation. + +Will return an empty string for `undefined` or `null`, otherwise will convert +the value to its string representation. + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md new file mode 100644 index 00000000..f45be3ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/math.md @@ -0,0 +1,298 @@ +# math # + +Math utilities. + + +## ceil(val[, step]):Number + +Round value up to full steps. Similar to `Math.ceil()` but can round value +to an arbitrary *radix*. + + ceil(7.2); // 8 + ceil(7.8); // 8 + ceil(7, 5); // 10 + ceil(11, 5); // 15 + ceil(15, 5); // 15 + +### Common use cases + +Round values by increments of 5/10/1000/etc. + +See: [`round()`](#round), [`floor()`](#floor), [`countSteps()`](#countSteps) + + + +## clamp(val, min, max):Number + +Clamps value inside range. + +`clamp()` is extremely useful in cases where you need to limit a value inside +a certain range. So instead of doing a complex `if/else` to filter/process the +value you can restrict it to always be inside the desired range: + + clamp(-5, 0, 10); // 0 + clamp(7, 1, 10); // 7 + clamp(8, 1, 10); // 8 + clamp(10, 1, 10); // 10 + clamp(11, 1, 10); // 10 + +If the value is smaller than `min` it returns the `min`, if `val` is higher +than `max` it returns `max`. + +### Common use cases + +Any situation where you need to limit a number inside a range like: slider +position, image galleries (so user can't skip to an image that doesn't +exist), drag and drop, scroll boundaries, etc. + +See: [`loop()`](#loop) + + + + +## countSteps(val, step[, overflow]):Number + +Count number of full steps. + +### Arguments: + + 1. `val` (Number) : Value. + 2. `step` (Number) : Step size. + 3. `[overflow]` (Number) : Maximum number of steps, nSteps will loop if +`>=` than overflow. + + +Count steps is very useful for cases where you need to know how many "full +steps" the number *completed*. Think of it as a division that only returns +integers and ignore remainders. + + countSteps(3, 5); // 0 + countSteps(6, 5); // 1 + countSteps(12, 5); // 2 + countSteps(18, 5); // 3 + countSteps(21, 5); // 4 + +You can also set an `overflow` which will reset the *counter* before reaching +this number. + + countSteps(3, 5, 3); // 0 + countSteps(6, 5, 3); // 1 + countSteps(12, 5, 3); // 2 + countSteps(18, 5, 3); // 0 + countSteps(21, 5, 3); // 1 + +### Common use cases + +#### How many items fit inside an area: + + var containerWidth = 100; + var itemWidth = 8; + var howManyFit = countSteps(containerWidth, itemWidth); // 12 + +#### Split value into different scales or convert value from one scale to another + +From [mout/time/parseMs](time.html#parseMs): + + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + // {days:27, hours:4, minutes:26, seconds:5, milliseconds:454} + parseMs(2348765454); + + + +## floor(val[, step]):Number + +Round value down to full steps. Similar to `Math.floor()` but can round value +to an arbitrary *radix*. (formerly `snap`) + + floor(7.2); // 7 + floor(7.8); // 7 + floor(7, 5); // 5 + floor(11, 5); // 10 + floor(15, 5); // 15 + +### Common use cases + +Round values by increments of 5/10/1000/etc. + +See: [`round()`](#round), [`ceil()`](#ceil), [`countSteps()`](#countSteps) + + + +## inRange(val, min, max[, threshold]):Boolean + +Checks if value is inside the range. + + inRange(-6, 1, 10); // false + inRange( 5, 1, 10); // true + inRange(12, 1, 10); // false + +The threshold can be useful when you want granular control of what should match +and/or the precision could change at runtime or by some configuration option, +avoids the clutter of adding/subtracting the `threshold` from `mix` and `max`. + + inRange(12, 1, 10, 2); // true + inRange(13, 1, 10, 2); // false + +### Common use cases + +Anything that needs to check if value is inside a range, be it collision +detection, limiting interaction by mouse position, ignoring parts of the logic +that shouldn't happen if value isn't valid, simplify `if/else` conditions, +making code more readable, etc... + + + + +## isNear(val, target, threshold):Boolean + +Check if value is close to target. + +Similar to `inRange()` but used to check if value is close to a certain value +or match the desired value. Basically to simplify `if/else` conditions and to +make code clearer. + + isNear( 10.2, 10, 0.5); // true + isNear( 10.5, 10, 0.5); // true + isNear(10.51, 10, 0.5); // false + +### Common use cases + +Games where a certain action should happen if an *actor* is close to a target, +gravity fields, any numeric check that has some tolerance. + + + + +## lerp(ratio, start, end):Number + +Linear interpolation. + + lerp(0.5, 0, 10); // 5 + lerp(0.75, 0, 10); // 7.5 + +### Common use cases + +Linear interpolation is commonly used to create animations of elements moving +from one point to another, where you simply update the current ratio (which in +this case represents time) and get back the position of the element at that +"frame". + +The core idea of `lerp` is that you are using a number that goes from `0` to +`1` to specify a ratio inside that scale. This concept can be applied to +convert numbers from different scales easily. + +See: [`map()`](#map), [`norm()`](#norm) + + + + +## loop(val, min, max):Number + +Loops value inside range. Will return `min` if `val > max` and `max` if `val +< min`, otherwise it returns `val`. + + loop(-1, 0, 10); // 10 + loop( 1, 0, 10); // 1 + loop( 5, 0, 10); // 5 + loop( 9, 0, 10); // 9 + loop(10, 0, 10); // 10 + loop(11, 0, 10); // 0 + +Similar to [`clamp()`](#clamp) but *loops* the value inside the range when an +overflow occurs. + +### Common use cases + +Image galleries, infinite scroll, any kind of logic that requires that the +first item should be displayed after the last one or the last one should be +displayed after first if going on the opposite direction. + +See: [`clamp()`](#clamp) + + + + +## map(val, min1, max1, min2, max2):Number + +Maps a number from one scale to another. + + map(3, 0, 4, -1, 1) // 0.5 + map(3, 0, 10, 0, 100) // 30 + +### Common use cases + +Very useful to convert values from/to multiple scales. + +Let's suppose we have a slider that needs to go from `2000` to `5000` and that slider +has `300px` of width, here is how we would translate the knob position into the +current value: + + var knobX = 123; + var sliderWid = 300; + var minVal = 2000; + var maxVal = 5000; + + var curVal = map(knobX, 0, sliderWid, minVal, maxVal); // 3230 + +See: [`lerp()`](#lerp), [`norm()`](#norm) + + + + +## norm(val, min, max):Number + +Gets normalized ratio of value inside range. + + norm(50, 0, 100); // 0.5 + norm(75, 0, 100); // 0.75 + +### Common use cases + +Convert values between scales, used by [`map()`](#map) internally. Direct +opposite of [`lerp()`](#lerp). + +See: [`lerp()`](#lerp), [`map()`](#map) + + + +## round(val[, step]):Number + +Round value to full steps. Similar to `Math.round()` but allow setting an +arbitrary *radix*. + + // default + round(0.22); // 0 + round(0.49); // 0 + round(0.51); // 1 + + // custom radix + round(0.22, 0.5); // 0 + round(0.49, 0.5); // 0.5 + round(0.51, 0.5); // 0.5 + round(0.74, 0.5); // 0.5 + round(0.75, 0.5); // 1 + round(1.24, 0.5); // 1 + round(1.25, 0.5); // 1.5 + round(1.74, 0.5); // 1.5 + +### Common use cases + +Round values by increments of 0.5/5/10/1000/etc. + +See: [`floor()`](#floor), [`ceil()`](#ceil), [`countSteps()`](#countSteps) + + + +------------------------------------------------------------------------------- + +For more usage more info check the specs and source code. + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md new file mode 100644 index 00000000..8d93865b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/number.md @@ -0,0 +1,225 @@ +# number # + +Number utilities. + + +## abbreviate(val[, nDecimalDigits, dictionary]):String + +Abbreviate number to thousands (K), millions (M) or billions (B). + +The default value for `nDecimalDigits` is `1`. + +### Example + + abbreviate(123456); // "123.5K" + abbreviate(12345678); // "12.3M" + abbreviate(1234567890); // "1.2B" + +You can set the amount of decimal digits (default is `1`): + + abbreviate(543); // "0.5K" + abbreviate(543, 1); // "0.5K" + abbreviate(543, 2); // "0.54K" + abbreviate(543, 3); // "0.543K" + +You can customize the abbreviation by passing a custom "dictionary": + + var _ptbrDict = { + thousands : ' mil', + millions : ' Mi', + billions : ' Bi' + }; + function customAbbr(val) { + return abbreviate(val, 1, _ptbrDict); + } + + customAbbr(123456); // "123.5 mil" + customAbbr(12345678); // "12.3 Mi" + customAbbr(1234567890); // "1.2 Bi" + + + +## currencyFormat(val[, nDecimalDigits, decimalSeparator, thousandsSeparator]):String + +Format a number as currency. + +### Example: + + currencyFormat(1000); // "1,000.00" + currencyFormat(1000, 1); // "1,000.0" + currencyFormat(1000, 2, ',', '.'); // "1.000,00" + + + +## enforcePrecision(val, nDecimalDigits):Number + +Enforce a specific amount of decimal digits and also fix floating point +rounding issues. + +### Example: + +```js +enforcePrecision(0.615, 2); // 0.62 +enforcePrecision(0.625, 2); // 0.63 +//floating point rounding "error" (rounds to odd number) ++(0.615).toFixed(2); // 0.61 ++(0.625).toFixed(2); // 0.63 +``` + + + +## MAX_INT:Number + +Maximum 32-bit signed integer value. `Math.pow(2, 31) - 1` + +### Example: + +```js +console.log( MAX_INT ); // 2147483647 +``` + + +## MAX_UINT:Number + +Maximum 32-bit unsigned integer value. `Math.pow(2, 32) - 1` + +### Example: + +```js +console.log( MAX_UINT ); // 4294967295 +``` + + +## MIN_INT:Number + +Minimum 32-bit signed integer value. `Math.pow(2, 31) * -1`. + +### Example: + +```js +console.log( MIN_INT ); // -2147483648 +``` + + +## pad(n, minLength[, char]):String + +Add padding zeros if `n.length` < `minLength`. + +### Example: + +```js +pad(1, 5); // "00001" +pad(12, 5); // "00012" +pad(123, 5); // "00123" +pad(1234, 5); // "01234" +pad(12345, 5); // "12345" +pad(123456, 5); // "123456" + +// you can also specify the "char" used for padding +pad(12, 5, '_'); // "___12" +``` + +see: [string/lpad](./string.html#lpad) + + + +## rol(val, shift):Number + +Bitwise circular shift left. + +More info at [Wikipedia#Circular_shift](http://en.wikipedia.org/wiki/Circular_shift) + + + +## ror(val, shift):Number + +Bitwise circular shift right. + +More info at [Wikipedia#Circular_shift](http://en.wikipedia.org/wiki/Circular_shift) + + + +## sign(val):Number + +Returns `-1` if value is negative, `0` if the value is `0` and `1` if value is positive. Useful for +multiplications. + +```js +sign(-123); // -1 +sign(123); // 1 +sign(0); // 0 +``` + + + +## toInt(val):Number + +"Convert" value into an 32-bit integer. Works like `Math.floor` if `val > 0` and +`Math.ceil` if `val < 0`. + +**IMPORTANT:** val will wrap at [number/MIN_INT](#MIN_INT) and +[number/MAX_INT](#MAX_INT). + +Created because most people don't know bitwise operations and also because this +feature is commonly needed. + +[Perf tests](http://jsperf.com/vs-vs-parseint-bitwise-operators/7) + +### Example: + +```js +toInt(1.25); // 1 +toInt(0.75); // 0 +toInt(-0.55); // 0 +toInt(-5.0001) // -5 +``` + + + +## toUInt(val):Number + +"Convert" value into an 32-bit unsigned integer. + +Works like AS3#uint(). + +**IMPORTANT:** val will wrap at 2^32. + +### Example: + +```js +toUInt(1.25); // 1 +toUInt(0.75); // 0 +toUInt(-0.55); // 0 +toUInt(-5.0001); // 4294967291 +toUInt(Math.pow(2,32) - 0.5); // 4294967295 +toUInt(Math.pow(2,32) + 0.5); // 0 +``` + + +## toUInt31(val):Number + +"Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + +Useful since all bitwise operators besides `>>>` treat numbers as signed +integers. + +**IMPORTANT:** val will wrap at 2^31 and negative numbers will be treated as +`zero`. + +### Example: + +```js +toUInt31(1.25); // 1 +toUInt31(0.75); // 0 +toUInt31(-0.55); // 0 +toUInt31(-5.0001); // 0 +toUInt31(Math.pow(2,31) - 0.5); // 21474836470 +toUInt31(Math.pow(2,31) + 0.5); // 0 +``` + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md new file mode 100644 index 00000000..b4d5e483 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/object.md @@ -0,0 +1,780 @@ +# object # + +Object utilities. + + + +## bindAll(obj, [...methodNames]):void + +Bind methods of the target object to always execute on its own context +(ovewritting the original function). + +See: [function/bind](./function.html#bind) + +```js +var view = { + name: 'Lorem Ipsum', + logNameOnClick: function() { + console.log(this.name); + } +}; + +// binds all methods by default +bindAll(view); +jQuery('#docs').on('click', view.logNameOnClick); +``` + +You can also specify the list of methods that you want to bind (in case you +just want to bind a few of them). + +```js +// only the listed methods will be bound to `obj` context +bindAll(obj, 'logNameOnClick', 'doAwesomeStuffOnDrag'); +``` + + + +## contains(obj, value):Boolean + +Similar to [Array/contains](array.html#contains). Checks if Object contains +value. + +```js +var obj = { + a: 1, + b: 2, + c: 'bar' +}; +contains(obj, 2); // true +contains(obj, 'foo'); // false +``` + + + +## deepEquals(a, b, [callback]):Boolean + +Recursively tests whether two objects contain the same keys and equal values. + +`callback` specifies the equality comparison function used to compare +non-object values. It defaults to using the strict equals (`===`) operator. + +If the values are both an object, it will recurse into the objects, checking if +their keys/values are equal. It will only check the keys and values contained +by the objects; it will not check the objects' prototypes. If the either of +the values are not objects, they will be checked using the `callback` function. + +Example: + +```js +deepEquals({ a: 1 }, { a: 1 }); // true +deepEquals({ value: { a: 1 } }, { value: { a: 1 } }); // true +deepEquals({ value: { a: 1 } }, { value: { a: 2 } }); // false +deepEquals({ value: { a: 1 } }, { value: { a: 1, b: 2 } }); // false +deepEquals({}, null); // false +deepEquals(null, null); // true +deepEquals( + { a: { b: 1 } }, + { a: { b: '1' } }, + function(a, b) { return a == b; }); // true +``` + +See: [`equals()`](#equals) + + + +## deepFillIn(target, ...objects):Object + +Fill missing properties recursively. + +It's different from `deepMixIn` since it won't override any existing property. +It's also different from `merge` since it won't clone child objects during the +process. + +It returns the target object and mutates it in place. + +See: [`fillIn()`](#fillIn), [`deepMixIn()`](#deepMixIn), [`merge()`](#merge) + +```js +var base = { + foo : { + bar : 123 + }, + lorem : 'ipsum' +}; +var options = deepFillIn({foo : { baz : 45 }, lorem : 'amet'}, base); +// > {foo: {bar:123, baz : 45}, lorem : 'amet'} +``` + + + +## deepMatches(target, pattern):Boolean + +Recursively checks if object contains all properties/value pairs. When both +the target and pattern values are arrays, it checks that the target value +contain matches for all the items in the pattern array (independent of order). + +```js +var john = { + name: 'John', + age: 22, + pets: [ + { type: 'cat', name: 'Grumpy Cat' }, + { type: 'dog', name: 'Hawk' } + ] +}; + +deepMatches(john, { name: 'John' }); // true +deepMatches(john, { age: 21 }); // false +deepMatches(john, { pets: [ { type: 'cat' } ] }); // true +deepMatches(john, { pets: [ { name: 'Hawk' } ] }); // true +deepMatches(john, { pets: [ { name: 'Hairball' } ] }); // false +``` + +See [`matches()`](#matches) + + + +## deepMixIn(target, ...objects):Object + +Mixes objects into the target object, recursively mixing existing child objects +as well. + +It will only recursively mix objects if both (existing and new) values are +plain objects. + +Returns the target object. Like [`merge()`](#merge), but mutates the target +object, and does not clone child objects. + +```js +var target = { + foo: { + name: "foo", + id: 1 + } +}; + +deepMixIn(target, { foo: { id: 2 } }); +console.log(target); // { foo: { name: "foo", id: 2 } } +``` + +See: [`mixIn()`](#mixIn), [`merge()`](#merge), [`deepFillIn()`](#deepFillIn) + + + +## equals(a, b, [callback]):Boolean + +Tests whether two objects contain the same keys and values. + +`callback` specifies the equality comparison function used to compare the +values. It defaults to using the strict equals (`===`) operator. + +It will only check the keys and values contained by the objects; it will not +check the objects' prototypes. If either of the values are not objects, they +will be compared using the `callback` function. + +```js +equals({}, {}); // true +equals({ a: 1 }, { a: 1 }); // true +equals({ a: 1 }, { a: 2 }); // false +equals({ a: 1, b: 2 }, { a: 1 }); // false +equals({ a: 1 }, { a: 1, b: 2 }); // false +equals(null, null); // true +equals(null, {}); // false +equals({ a: 1 }, { a: '1' }, function(a, b) { return a == b; }); // true +``` + + + +## every(obj, callback, [thisObj]):Boolean + +Similar to [Array/every](array.html#every). Tests whether all properties in the +object pass the test implemented by the provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +every(obj, isNumber); // false +``` + + + +## fillIn(obj, ...default):Object + +Fill in missing properties in object with values from the *defaults* objects. + + var base = { + foo : 'bar', + num : 123 + }; + + fillIn({foo:'ipsum'}, base); // {foo:'ipsum', num:123} + +PS: it allows merging multiple objects at once, the first ones will take +precedence. + +See: [`mixIn()`](#mixIn), [`merge()`](#merge), [`deepFillIn()`](#deepFillIn) + + + +## filter(obj, callback, [thisObj]) + +Returns a new object containing all properties where `callback` returns true, +similar to Array/filter. It does not use properties from the object's +prototype. + +Callback receives the same arguments as `forOwn()`. + +See: [`forOwn()`](#forOwn), [`forIn()`](#forIn), [`pick()`](#pick) + +```js +var obj = { + foo: 'value', + bar: 'bar value' +}; + +// returns { bar: 'bar value' } +filter(obj, function(v) { return value.length > 5; }); + +// returns { foo: 'value' } +filter(obj, function(v, k) { return k === 'foo'; }); +``` + + + +## find(obj, callback, [thisObj]) + +Loops through all the properties in the Object and returns the first one that +passes a truth test (callback), similar to [Array/find](array.html#find). +Unlike Array/find, order of iteration is not guaranteed. + +```js +var obj = { + a: 'foo', + b: 12 +}; + +find(obj, isString); // 'foo' +find(obj, isNumber); // 12 +``` + + + +## forIn(obj, callback[, thisObj]) + +Iterate over all properties of an Object, similar to +[Array/forEach](array.html#forEach). + +It [avoids don't enum bug on IE](https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). +It **will** iterate over inherited (enumerable) properties from the prototype. + +It allows exiting the iteration early by returning `false` on the callback. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys), [`values()`](#values) + +### Callback arguments + +Callback will receive the following arguments: + + 1. Property Value (*) + 2. Key name (String) + 3. Target object (Object) + +### Example + +```js +function Foo(){ + this.foo = 1; + this.bar = 2; +} + +Foo.prototype.lorem = 4; + +var obj = new Foo(); + +var result = 0; +var keys = []; + +forIn(obj, function(val, key, o){ + result += val; + keys.push(key); +}); + +console.log(result); // 7 +console.log(keys); // ['foo', 'bar', 'lorem'] +``` + + + +## forOwn(obj, callback[, thisObj]) + +Iterate over all own properties from an Object, similar to +[Array/forEach](array.html#forEach). + +It [avoids don't enum bug on IE](https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). +Notice that it **won't** iterate over properties from the prototype. + +It allows exiting the iteration early by returning `false` on the callback. + +See: [`forIn()`](#forIn), [`keys()`](#keys), [`values()`](#values) + +### Callback arguments + +Callback will receive the following arguments: + + 1. Property Value (*) + 2. Key name (String) + 3. Target object (Object) + +### Example + +```js +function Foo(){ + this.foo = 1; + this.bar = 2; +} + +// will be ignored +Foo.prototype.lorem = 4; + +var obj = new Foo(); + +var result = 0; +var keys = []; + +forOwn(obj, function(val, key, o){ + result += val; + keys.push(key); +}); + +console.log(result); // 3 +console.log(keys); // ['foo', 'bar'] +``` + + + +## functions(obj):Array + +Returns a sorted list of all enumerable properties that have function values +(including inherited properties). + +```js +var obj = { + foo : function(){}, + bar : 'baz' +}; +functions(obj); // ['foo'] +``` + + + +## get(obj, propName):* + +Returns nested property value. Will return `undefined` if property doesn't +exist. + +See: [`set()`](#set), [`namespace()`](#namespace), [`has()`](#has) + +```js +var lorem = { + ipsum : { + dolor : { + sit : 'amet' + } + } + }; + +get(lorem, 'ipsum.dolor.sit'); // "amet" +get(lorem, 'foo.bar'); // undefined +``` + + + +## has(obj, propName):Boolean + +Checks if object contains a child property. Useful for cases where you need to +check if an object contain a *nested* property. It will get properties +inherited by the prototype. + +see: [`hasOwn()`](#hasOwn), [`get()`](#get) + +```js +var a = { + b : { + c : 123 + } + }; + +has(a, 'b.c'); // true +has(a, 'foo.c'); // false +``` + +### Common use case + +```js +if( has(a, 'foo.c') ){ // false + // ... +} + +if( a.foo.c ){ // ReferenceError: `foo` is not defined + // ... +} +``` + + + +## hasOwn(obj, propName):Boolean + +Safer `Object.hasOwnProperty`. Returns a boolean indicating whether the object +has the specified property. + +see: [`has()`](#has) + +```js +var obj = { + foo: 1, + hasOwnProperty : 'bar' +}; + +obj.hasOwnProperty('foo'); // ERROR! hasOwnProperty is not a function + +hasOwn(obj, 'foo'); // true +hasOwn(obj, 'hasOwnProperty'); // true +hasOwn(obj, 'toString'); // false +``` + + + +## keys(obj):Array + +Returns an array of all own enumerable properties found upon a given object. +It will use the native `Object.keys` if present. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`values()`](#values) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +keys(obj); // ['foo', 'bar', 'lorem'] +``` + + + +## map(obj, callback, [thisObj]):Object + +Returns a new object where the property values are the result of calling the +callback for each property in the original object, similar to Array/map. + +The callback function receives the same arguments as in `forOwn()`. + +See: [`forOwn()`](#forOwn) + +```js +var obj = { foo: 1, bar: 2 }, + data = { foo: 0, bar: 1 }; + +map(obj, function(v) { return v + 1; }); // { foo: 2, bar: 3 } +map(obj, function(v, k) { return k; }); // { foo: "foo", bar: "bar" } +map(obj, function(v, k) { return this[k]; }, data); // { foo: 0, bar: 1 } +``` + + + +## matches(obj, props):Boolean + +Checks if object contains all properties/values pairs. Useful for validation +and filtering. + +```js +var john = {age:25, hair:'long', beard:true}; +var mark = {age:27, hair:'short', beard:false}; +var hippie = {hair:'long', beard:true}; +matches(john, hippie); // true +matches(mark, hippie); // false +``` + +See [`deepMatches()`](#deepMatches) + + + +## merge(...objects):Object + +Deep merges objects. Note that objects and properties will be cloned during the +process to avoid undesired side effects. It return a new object and won't +affect source objects. + +```js +var obj1 = {a: {b: 1, c: 1, d: {e: 1, f: 1}}}; +var obj2 = {a: {b: 2, d : {f : 'yeah'} }}; + +merge(obj1, obj2); // {a: {b : 2, c : 1, d : {e : 1, f : 'yeah'}}} +``` + +See: [`deepMixIn()`](#deppMixIn), [`deepFillIn()`](#deepFillIn) + + + +## max(obj[, iterator]):* + +Returns maximum value inside object or use a custom iterator to define how +items should be compared. Similar to [Array/max](array.html#max). + +See: [`min()`](#min) + +```js +max({a: 100, b: 2, c: 1, d: 3, e: 200}); // 200 +max({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'lorem' +``` + + + +## min(obj[, iterator]):* + +Returns minimum value inside object or use a custom iterator to define how +items should be compared. Similar to [Array/min](array.html#min). + +See: [`max()`](#max) + +```js +min({a: 100, b: 2, c: 1, d: 3, e: 200}); // 1 +min({a: 'foo', b: 'lorem', c: 'amet'}, function(val){ + return val.length; +}); // 'foo' +``` + + + +## mixIn(target, ...objects):Object + +Combine properties from all the objects into first one. + +This method affects target object in place, if you want to create a new Object +pass an empty object as first parameter. + +### Arguments + + 1. `target` (Object) : Target Object. + 2. `...objects` (...Object) : Objects to be combined (0...n objects). + +### Example + +```js +var a = {foo: "bar"}; +var b = {lorem: 123}; + +mixIn({}, a, b); // {foo: "bar", lorem: 123} +console.log(a); // {foo: "bar"} + +mixIn(a, b); // {foo: "bar", lorem: 123} +console.log(a); // {foo: "bar", lorem: 123} +``` + +See: [`fillIn()`](#fillIn), [`merge()`](#merge) + + + + +## namespace(obj, propName):Object + +Creates an empty object inside namespace if not existent. Will return created +object or existing object. + +See: [`get()`](#get), [`set()`](#set) + +```js +var obj = {}; +namespace(obj, 'foo.bar'); // {} +console.log(obj); // {foo:{bar:{}}} +``` + + + +## pick(obj, ...keys):Object + +Return a copy of the object that contains only the whitelisted keys. + +See: [`filter()`](#filter) + +```js +var user = { + firstName : 'John', + lastName : 'Doe', + dob : '1985/07/23', + gender : 'male' +}; + +// can pass an array of keys as second argument +var keys = ['firstName', 'dob'] +pick(user, keys); // {firstName:"John", dob: "1985/07/23"} + +// or multiple arguments +pick(user, 'firstName', 'lastName'); // {firstName:"John", lastName: "Doe"} +``` + + + +## pluck(obj, propName):Object + +Extract an object containing property values with keys as they appear in the +passed object. + +```js +var users = { + first: { + name : 'John', + age : 21 + }, + second: { + name : 'Mary', + age : 25 + } +}; + +pluck(users, 'name'); // {first: 'John', second: 'Mary'} ); +pluck(users, 'age'); // {first: 21, second: 25} ); +``` + + + +## reduce(obj, callback, initial, [thisObj]):* + +Similar to [Array/reduce](array.html#reduce). + +Apply a function against an accumulator and each property of the object (order +is undefined) as to reduce it to a single value. + +```js +var obj = {a: 1, b: 2, c: 3, d: 4}; + +function sum(prev, cur, key, list) { + compare1.push(prev); + return prev + cur; +} + +reduce(obj, sum); // 10 +``` + + + +## reject(obj, callback, thisObj):Object + +Returns a new object containing all properties where `callback` returns true, +similar to [Array/reject](array.html#reject). It does not use properties from +the object's prototype. Opposite of [`filter()`](#filter). + +See [`filter()`](#filter) + +### Example + +```js +var obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; +reject(obj, function(x) { return (x % 2) !== 0; }); // {b: 2, d: 4} +``` + + + +## values(obj):Array + +Returns an array of all own enumerable properties values found upon a given object. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +values(obj); // [1, 2, 3] +``` + + + +## set(obj, propName, value) + +Sets a nested property value. + +See: [`get()`](#get), [`namespace()`](#namespace) + +```js +var obj = {}; +set(obj, 'foo.bar', 123); +console.log(obj.foo.bar); // 123 +console.log(obj); // {foo:{bar:123}} +``` + + + +## size(obj):Number + +Returns the count of own enumerable properties found upon a given object. + +PS: it won't return properties from the prototype. + +See: [`forOwn()`](#forOwn), [`keys()`](#keys) + +```js +var obj = { + foo : 1, + bar : 2, + lorem : 3 +}; +size(obj); // 3 +``` + + + +## some(obj, callback, [thisObj]):Boolean + +Similar to [Array/some](array.html#some). Tests whether any properties in the +object pass the test implemented by the provided callback. + +```js +var obj = { + a: 1, + b: 2, + c: 3, + d: 'string' +}; + +some(obj, isNumber); // true +``` + + + +## unset(obj, propName):Boolean + +Delete object property if existent and returns a boolean indicating succes. It +will also return `true` if property doesn't exist. + +Some properties can't be deleted, to understand why [check this +article](http://perfectionkills.com/understanding-delete/). + +See: [`set()`](#set) + +```js +var lorem = { + ipsum : { + dolor : { + sit : 'amet' + } + } + }; + +unset(lorem, 'ipsum.dolor.sit'); // true +console.log(lorem.ipsum.dolor); // {} +unset(lorem, 'foo.bar'); // true +``` diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md new file mode 100644 index 00000000..1be3c102 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/queryString.md @@ -0,0 +1,115 @@ +# queryString # + +Utilities for query string manipulation. + + + +## contains(url, paramName):Boolen + +Checks if query string contains parameter. + +### Arguments: + + 1. `url` (String) : URL or query string. + 2. `paramName` (String) : Parameter name. + +### Example: + +```js +var url = 'example.com/?lorem=ipsum'; +contains(url, 'lorem'); // true +contains(url, 'foo'); //false +``` + + + +## decode(queryStr[, shouldTypecast]):Object + +Parses query string and creates an object of keys => vals. + +Will typecast value with [`string/typecast`](string.html#typecast) by default +and decode string parameters using `decodeURIComponent()`. + +```js +var query = '?foo=bar&lorem=123'; +decode(query); // {foo: "bar", lorem: 123} +decode(query, false); // {foo: "bar", lorem: "123"} +``` + + +## encode(obj):String + +Encode object into a query string. + +Will encode parameters with `encodeURIComponent()`. + +```js +encode({foo: "bar", lorem: 123}); // "?foo=bar&lorem=123" +``` + + +## getParam(url, param[, shouldTypecast]):* + +Get query parameter value. + +Will typecast value with [`string/typecast`](string.html#typecast) by default. + +See: [`setParam()`](#setParam) + +### Arguments: + + 1. `url` (String) : Url. + 2. `param` (String) : Parameter name. + 3. `[shouldTypecast]` (Boolean) : If it should typecast value. + +### Example: + +```js +var url = 'example.com/?foo=bar&lorem=123&ipsum=false'; +getParam(url, 'dolor'); // "amet" +getParam(url, 'lorem'); // 123 +getParam(url, 'lorem', false); // "123" +``` + + +## parse(url[, shouldTypecast]):Object + +Parses URL, extracts query string and decodes it. + +It will typecast all properties of the query object unless second argument is +`false`. + +Alias to: `decode(getQuery(url))`. + +```js +var url = 'example.com/?lorem=ipsum&a=123'; +parse(url); // {lorem: "ipsum", a: 123} +parse(url, false); // {lorem: "ipsum", a: "123"} +``` + + +## getQuery(url):String + +Gets full query as string with all special chars decoded. + +```js +getQuery('example.com/?lorem=ipsum'); // "?lorem=ipsum" +``` + + +## setParam(url, paramName, value):String + +Add new query string parameter to URL or update existing value. + +See: [`getParam()`](#getParam) + +```js +setParam('?foo=bar&lorem=0', 'lorem', 'ipsum'); // '?foo=bar&lorem=ipsum' +setParam('?lorem=1', 'foo', 123); // '?lorem=1&foo=123' +``` + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md new file mode 100644 index 00000000..b058b4e0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/random.md @@ -0,0 +1,218 @@ +# random # + +Pseudo-random generators. + +mout uses `Math.random` by default on all the pseudo-random generators, if +you need a seeded random or a better algorithm see the [`random()`](#random) +documentation for instructions. + + + +## choice(...items):* + +Returns a random element from the supplied arguments or from an array if single +argument is an array. + +### Example: + +```js +choice(1, 2, 3, 4, 5); // 3 + +var arr = ['lorem', 'ipsum', 'dolor']; +choice(arr); // 'dolor' +``` + + + +## guid():String + +Generates a pseudo-random [Globally Unique Identifier](http://en.wikipedia.org/wiki/Globally_unique_identifier) (v4). + +Since the total number of GUIDs is 2122 the chance of generating the +same value twice is negligible. + +**Important:** this method uses `Math.random` by default so the UUID isn't +*safe* (sequence of outputs can be predicted in some cases), check the +[`random()`](#random) documentation for more info on how to replace the default +PRNG if you need extra safety or need *seeded* results. + +See: [`randHex()`](#randHex), [`random()`](#random) + +### Example: + +```js +guid(); // 830e9f50-ac7f-4369-a14f-ed0e62b2fa0b +guid(); // 5de3d09b-e79c-4727-932b-48c49228d508 +``` + + + +## rand([min], [max]):Number + +Gets a random number inside range or snap to min/max values. + +### Arguments: + + 1. `[min]` (Number) : Minimum value. Defaults to `number/MIN_INT`. + 2. `[max]` (Number) : Maximum value. Defaults to `number/MAX_INT`. + + +### Example: + +```js +rand(); // 448740433.55274725 +rand(); // -31797596.097682 +rand(0, 10); // 7.369723 +rand(0, 10); // 5.987042 +``` + +See: [`random()`](#random) + + + +## randBit():Number + +Returns a random "bit" (0 or 1). Useful for addition/subtraction. + +It's slightly faster than `choice(0, 1)` since implementation is simpler (not +that it will make a huge difference in most cases). + +See: [`choice()`](#choice) + +### Example: + +```js +randBit(); // 1 +randBit(); // 0 + +//same effect as +choice(0, 1); +``` + + + +## randHex([size]):String + +Returns a random hexadecimal string. + +The default `size` is `6`. + +### Example: + +```js +randHex(); // "dd8575" +randHex(); // "e6baeb" +randHex(2); // "a2" +randHex(30); // "effd7e2ad9a4a3067e30525fab983a" +``` + + + +## randInt([min], [max]):Number + +Gets a random integer inside range or snap to min/max values. + +### Arguments: + + 1. `[min]` (Number) : Minimum value. Defaults to `number/MIN_INT`. + 2. `[max]` (Number) : Maximum value. Defaults to `number/MAX_INT`. + + +### Example: + +```js +randInt(); // 448740433 +randInt(); // -31797596 +randInt(0, 10); // 7 +randInt(0, 10); // 5 +``` + + + +## randSign():Number + +Returns a random "sign" (-1 or 1). Useful for multiplications. + +It's slightly faster than `choice(-1, 1)` since implementation is simpler (not +that it will make a huge difference in most cases). + +See: [`choice()`](#choice) + +### Example: + +```js +randSign(); // -1 +randSign(); // 1 + +//same effect as +choice(-1, 1); +``` + + + +## random():Number + +Returns a random number between `0` and `1`. Same as `Math.random()`. + +```js +random(); // 0.35435103671625257 +random(); // 0.8768321881070733 +``` + +**Important:** No methods inside mout should call `Math.random()` +directly, they all use `random/random` as a proxy, that way we can +inject/replace the pseudo-random number generator if needed (ie. in case we +need a seeded random or a better algorithm than the native one). + +### Replacing the PRNG + +In some cases we might need better/different algorithms than the one provided +by `Math.random` (ie. safer, seeded). + +Because of licensing issues, file size limitations and different needs we +decided to **not** implement a custom PRNG and instead provide a easy way to +override the default behavior. - [issue #99](https://github.com/millermedeiros/amd-utils/issues/99) + +If you are using mout with a loader that supports the [AMD map +config](https://github.com/amdjs/amdjs-api/wiki/Common-Config), such as +[RequireJS](http://requirejs.org/), you can use it to replace the PRNG +(recommended approach): + +```js +requirejs.config({ + map : { + // all modules will load "my_custom_prng" instead of + // "mout/random/random" + '*' : { + 'mout/random/random' : 'my_custom_prng' + } + } +}); +``` + +You also have the option to override `random.get` in case you are using +mout on node.js or with a loader which doesn't support the map config: + +```js +// replace the PRNG +var n = 0; +random.get = function(){ + return ++n % 2? 0 : 1; // not so random :P +}; +random(); // 0 +random(); // 1 +random(); // 0 +random(); // 1 +``` + +See this [detailed explanation about PRNG in +JavaScript](http://baagoe.org/en/w/index.php/Better_random_numbers_for_javascript) +to understand the issues with the native `Math.random` and also for a list of +algorithms that could be used instead. + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md new file mode 100644 index 00000000..2b282315 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/string.md @@ -0,0 +1,594 @@ +# string # + +String utilities. + + +## camelCase(str):String + +Convert string to "camelCase" text. + +See: [`pascalCase()`](#pascalCase), [`unCamelCase()`](#unCamelCase) + +### Example + +```js +camelCase('lorem-ipsum-dolor'); // "loremIpsumDolor" +camelCase('lorem ipsum dolor'); // "loremIpsumDolor" +``` + + + +## contains(str, substring, [fromIndex]):Boolean + +Checks if string contains the given substring. + +See: [`startsWith()`](#startsWith), [`endsWith()`](#endsWith) + +### Example + +```js +contains('lorem', 'or'); // true +contains('lorem', 'bar'); // false +``` + + + +## crop(str, maxChars, [append]):String + +Truncate string at full words. Alias to `truncate(str, maxChars, append, true);`. + +See: [`truncate()`](#truncate) + +### Example + +```js +crop('lorem ipsum dolor', 10); // "lorem..." +crop('lorem ipsum dolor', 10, '+'); // "lorem+" +``` + + + +## endsWith(str, suffix):Boolean + +Checks if string ends with specified suffix. + +See: [`startsWith()`](#startsWith), [`contains()`](#contains) + +### Example + +```js +endsWith('lorem ipsum', 'lorem'); // false +endsWith('lorem ipsum', 'ipsum'); // true +``` + + + +## escapeHtml(str):String + +Escapes HTML special chars (`>`, `<`, `&`, `"`, `'`). + +See: [`unescapeHtml()`](#unescapeHtml) + +### Example + +```js +escapeHtml('lorem & "ipsum"'); // "lorem &amp; &quot;ipsum&quot;" +``` + + + +## escapeRegExp(str):String + +Escape special chars to be used as literals in RegExp constructors. + +### Example + +```js +str = escapeRegExp('[lorem.ipsum]'); // "\\[lorem\\.ipsum\\]" +reg = new RegExp(str); // /\[lorem\.ipsum\]/ +``` + + + +## escapeUnicode(str[, shouldEscapePrintable]):String + +Unicode escape chars. + +It will only escape non-printable ASCII chars unless `shouldEscapePrintable` is +set to `true`. + +See: [`unescapeUnicode()`](#unescapeUnicode) + +```js +escapeUnicode('føo bår'); +// > "f\u00f8o b\u00e5r" +escapeUnicode('føo bår', true); +// > "\u0066\u00f8\u006f\u0020\u0062\u00e5\u0072" +``` + + + +## hyphenate(str):String + +Replaces spaces with hyphens, split camelCase text, remove non-word chars, +remove accents and convert to lower case. + +See: [`slugify()`](#slugify), [`underscore()`](#underscore), +[`unhyphenate`](#unhyphenate) + +```js +hyphenate(' %# lorem ipsum ? $ dolor'); // "lorem-ipsum-dolor" +hyphenate('spéçïãl çhârs'); // "special-chars" +hyphenate('loremIpsum'); // "lorem-ipsum" +``` + + + +## interpolate(str, replacements[, syntax]):String + +String interpolation. Format/replace tokens with object properties. + +```js +var tmpl = 'Hello {{name}}!'; +interpolate(tmpl, {name: 'World'}); // "Hello World!" +interpolate(tmpl, {name: 'Lorem Ipsum'}); // "Hello Lorem Ipsum!" +``` + +It uses a mustache-like syntax by default but you can set your own format if +needed. You can also use Arrays for the replacements (since Arrays are +objects as well): + +```js +// matches everything inside "${}" +var syntax = /\$\{([^}]+)\}/g; +var tmpl = "Hello ${0}!"; +interpolate(tmpl, ['Foo Bar'], syntax); // "Hello Foo Bar!" +``` + + + +## lowerCase(str):String + +"Safer" `String.toLowerCase()`. (Used internally) + +### Example + +```js +(null).toLowerCase(); // Error! +(undefined).toLowerCase(); // Error! +lowerCase(null); // "" +lowerCase(undefined); // "" +``` + + + +## lpad(str, minLength[, char]):String + +Pad string from left with `char` if its' length is smaller than `minLen`. + +See: [`rpad()`](#rpad) + +### Example + +```js +lpad('a', 5); // " a" +lpad('a', 5, '-'); // "----a" +lpad('abc', 3, '-'); // "abc" +lpad('abc', 4, '-'); // "-abc" +``` + + + +## ltrim(str, [chars]):String + +Remove chars or white-spaces from beginning of string. + +`chars` is an array of chars to remove from the beginning of the string. If +`chars` is not specified, Unicode whitespace chars will be used instead. + +See: [`rtrim()`](#rtrim), [`trim()`](#trim) + +### Example + +```js +ltrim(' lorem ipsum '); // "lorem ipsum " +ltrim('--lorem ipsum--', ['-']); // "lorem ipsum--" +``` + + + +## makePath(...args):String + +Group arguments as path segments, if any of the args is `null` or `undefined` +it will be ignored from resulting path. It will also remove duplicate "/". + +See: [`array/join()`](array.html#join) + +### Example + +```js +makePath('lorem', 'ipsum', null, 'dolor'); // "lorem/ipsum/dolor" +makePath('foo///bar/'); // "foo/bar/" +``` + + + +## normalizeLineBreaks(str, [lineBreak]):String + +Normalize line breaks to a single format. Defaults to Unix `\n`. + +It handles DOS (`\r\n`), Mac (`\r`) and Unix (`\n`) formats. + +### Example + +```js +// "foo\nbar\nlorem\nipsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum'); + +// "foo\rbar\rlorem\ripsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum', '\r'); + +// "foo bar lorem ipsum" +normalizeLineBreaks('foo\nbar\r\nlorem\ripsum', ' '); +``` + + + +## pascalCase(str):String + +Convert string to "PascalCase" text. + +See: [`camelCase()`](#camelCase) + +### Example + +```js +pascalCase('lorem-ipsum-dolor'); // "LoremIpsumDolor" +pascalCase('lorem ipsum dolor'); // "LoremIpsumDolor" +``` + + + +## properCase(str):String + +UPPERCASE first char of each word, lowercase other chars. + +### Example + +```js +properCase('loRem iPSum'); // "Lorem Ipsum" +``` + + + +## removeNonASCII(str):String + +Remove [non-printable ASCII +chars](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). + +### Example + +```js +removeNonASCII('äÄçÇéÉêlorem-ipsumöÖÐþúÚ'); // "lorem-ipsum" +``` + + + +## removeNonWord(str):String + +Remove non-word chars. + +### Example + +```js +var str = 'lorem ~!@#$%^&*()_+`-={}[]|\\:";\'/?><., ipsum'; +removeNonWord(str); // "lorem - ipsum" +``` + + + +## repeat(str, n):String + +Repeat string n-times. + +### Example + +```js +repeat('a', 3); // "aaa" +repeat('bc', 2); // "bcbc" +repeat('a', 0); // "" +``` + + + +## replace(str, search, replacements):String + +Replace string(s) with the replacement(s) in the source. + +`search` and `replacements` can be an array, or a single item. For every item +in `search`, it will call `str.replace` with the search item and the matching +replacement in `replacements`. If `replacements` only contains one replacement, +it will be used for all the searches, otherwise it will use the replacement at +the same index as the search. + +### Example + +```js +replace('foo bar', 'foo', 'test'); // "test bar" +replace('test 1 2', ['1', '2'], 'n'); // "test n n" +replace('test 1 2', ['1', '2'], ['one', 'two']); // "test one two" +replace('123abc', [/\d/g, /[a-z]/g], ['0', '.']); // "000..." +``` + + + +## replaceAccents(str):String + +Replaces all accented chars with regular ones. + +**Important:** Only covers **Basic Latin** and **Latin-1** unicode chars. + +### Example + +```js +replaceAccents('spéçïãl çhârs'); // "special chars" +``` + + + +## rpad(str, minLength[, char]):String + +Pad string from right with `char` if its' length is smaller than `minLen`. + +See: [`lpad()`](#lpad) + +### Example + +```js +rpad('a', 5); // "a " +rpad('a', 5, '-'); // "a----" +rpad('abc', 3, '-'); // "abc" +rpad('abc', 4, '-'); // "abc-" +``` + + + +## rtrim(str, [chars]):String + +Remove chars or white-spaces from end of string. + +`chars` is an array of chars to remove from the end of the string. If +`chars` is not specified, Unicode whitespace chars will be used instead. + +See: [`trim()`](#trim), [`ltrim()`](#ltrim) + +### Example + +```js +rtrim(' lorem ipsum '); // " lorem ipsum" +rtrim('--lorem ipsum--', ['-']); // "--lorem ipsum" +``` + + + +## sentenceCase(str):String + +UPPERCASE first char of each sentence and lowercase other chars. + +### Example + +```js +var str = 'Lorem IpSum DoLOr. maeCeNnas Ullamcor.'; +sentenceCase(str); // "Lorem ipsum dolor. Maecennas ullamcor." +``` + + + +## stripHtmlTags(str):String + +Remove HTML/XML tags from string. + +### Example + +```js +var str = '

      lorem ipsum

      '; +stripHtmlTags(str); // "lorem ipsum" +``` + + + +## startsWith(str, prefix):Boolean + +Checks if string starts with specified prefix. + +See: [`endsWith()`](#endsWith), [`contains()`](#contains) + +### Example + +```js +startsWith('lorem ipsum', 'lorem'); // true +startsWith('lorem ipsum', 'ipsum'); // false +``` + + + +## slugify(str[, delimeter]):String + +Convert to lower case, remove accents, remove non-word chars and replace spaces +with the delimeter. The default delimeter is a hyphen. + +Note that this does not split camelCase text. + +See: [`hyphenate()`](#hyphenate) and [`underscore()`](#underscore) + +### Example + +```js +var str = 'loremIpsum dolor spéçïãl chârs'; +slugify(str); // "loremipsum-dolor-special-chars" +slugify(str, '_'); // "loremipsum_dolor_special_chars" +``` + + + +## trim(str, [chars]):String + +Remove chars or white-spaces from beginning and end of string. + +`chars` is an array of chars to remove from the beginning and end of the +string. If `chars` is not specified, Unicode whitespace chars will be used +instead. + +See: [`rtrim()`](#rtrim), [`ltrim()`](#ltrim) + +### Example + +```js +trim(' lorem ipsum '); // "lorem ipsum" +trim('-+-lorem ipsum-+-', ['-', '+']); // "lorem ipsum" +``` + + + +## truncate(str, maxChars, [append], [onlyFullWords]):String + +Limit number of chars. Returned string `length` will be `<= maxChars`. + +See: [`crop()`](#crop) + +### Arguments + + 1. `str` (String) : String + 2. `maxChars` (Number) : Maximum number of characters including `append.length`. + 3. `[append]` (String) : Value that should be added to the end of string. + Defaults to "...". + 4. `[onlyFullWords]` (Boolean) : If it shouldn't break words. Default is + `false`. (favor [`crop()`](#crop) since code will be clearer). + +### Example + +```js +truncate('lorem ipsum dolor', 11); // "lorem ip..." +truncate('lorem ipsum dolor', 11, '+'); // "lorem ipsu+" +truncate('lorem ipsum dolor', 11, null, true); // "lorem..." +``` + + + +## typecast(str):* + +Parses string and convert it into a native value. + +### Example + +```js +typecast('lorem ipsum'); // "lorem ipsum" +typecast('123'); // 123 +typecast('123.45'); // 123.45 +typecast('false'); // false +typecast('true'); // true +typecast('null'); // null +typecast('undefined'); // undefined +``` + + + +## unCamelCase(str, [delimiter]):String + +Add the delimiter between camelCase text and convert first char of each word to +lower case. + +The delimiter defaults to a space character. + +See: [`camelCase()`][#camelCase] + +### Example + +```js +unCamelCase('loremIpsumDolor'); // "lorem ipsum dolor" +unCamelCase('loremIpsumDolor', '-'); // "lorem-ipsum-color" +``` + + +## underscore(str):String + +Replaces spaces with underscores, split camelCase text, remove non-word chars, +remove accents and convert to lower case. + +See: [`slugify()`](#slugify), [`hyphenate()`](#hyphenate) + +```js +underscore(' %# lorem ipsum ? $ dolor'); // "lorem_ipsum_dolor" +underscore('spéçïãl çhârs'); // "special_chars" +underscore('loremIpsum'); // "lorem_ipsum" +``` + + + +## unescapeHtml(str):String + +Unescapes HTML special chars (`>`, `<`, `&`, `"`, `'`). + +See: [`escapeHtml()`](#escapeHtml) + +### Example + +```js +unescapeHtml('lorem &amp; &quot;ipsum&quot;'); // 'lorem & "ipsum"' +``` + + + +## unescapeUnicode(str):String + +Unescapes unicode char sequences. + +See: [`escapeUnicode()`](#escapeUnicode) + +```js +unescapeUnicode('\\u0066\\u00f8\\u006f\\u0020\\u0062\\u00e5\\u0072'); +// > 'føo bår' +``` + + + +## unhyphenate(str):String + +Replaces hyphens with spaces. (only hyphens between word chars) + +See : [`hyphenate()`](#hyphenate) + +### Example + +```js +unhyphenate('lorem-ipsum-dolor'); // "lorem ipsum dolor" +``` + + +## upperCase(str):String + +"Safer" `String.toUpperCase()`. (Used internally) + +### Example + +```js +(null).toUpperCase(); // Error! +(undefined).toUpperCase(); // Error! +upperCase(null); // "" +upperCase(undefined); // "" +``` + + + +## WHITE_SPACES:Array + +Constant array of all [Unicode white-space +characters](http://en.wikipedia.org/wiki/Whitespace_character). + + + +------------------------------------------------------------------------------- + +For more usage examples check specs inside `/tests` folder. Unit tests are the +best documentation you can get... + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md new file mode 100644 index 00000000..628c2a9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/doc/time.md @@ -0,0 +1,64 @@ +# time # + +Utilities for time manipulation. + + +## convert(value, sourceUnit, [destinationUnit]):Number + +Converts time between units. + +Available units: `millisecond`, `second`, `minute`, `hour`, `day`, `week`. +Abbreviations: `ms`, `s`, `m`, `h`, `d`, `w`. + +We do **not** support year and month as a time unit since their values are not +fixed. + +The default `destinationUnit` is `ms`. + +```js +convert(1, 'minute'); // 60000 +convert(2.5, 's', 'ms'); // 2500 +convert(2, 'm', 's'); // 120 +convert(500, 'ms', 's'); // 0.5 +``` + + + +## now():Number + +Returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. +Uses `Date.now()` if available. + +### Example + +```js +now(); // 1335449614650 +``` + + + +## parseMs(ms):Object + +Parse timestamp (milliseconds) into an object `{milliseconds:number, +seconds:number, minutes:number, hours:number, days:number}`. + +### Example + +```js +// {days:27, hours:4, minutes:26, seconds:5, milliseconds:454} +parseMs(2348765454); +``` + + + +## toTimeString(ms):String + +Convert timestamp (milliseconds) into a time string in the format "[H:]MM:SS". + +### Example + +```js +toTimeString(12513); // "00:12" +toTimeString(951233); // "15:51" +toTimeString(8765235); // "2:26:05" +``` diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function.js new file mode 100644 index 00000000..43a16ef4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function.js @@ -0,0 +1,18 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'bind' : require('./function/bind'), + 'compose' : require('./function/compose'), + 'debounce' : require('./function/debounce'), + 'func' : require('./function/func'), + 'makeIterator_' : require('./function/makeIterator_'), + 'partial' : require('./function/partial'), + 'prop' : require('./function/prop'), + 'series' : require('./function/series'), + 'throttle' : require('./function/throttle'), + 'timeout' : require('./function/timeout') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js new file mode 100644 index 00000000..71bc1257 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/bind.js @@ -0,0 +1,23 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + * @param {Function} fn Function. + * @param {object} context Execution context. + * @param {rest} args Arguments (0...n arguments). + * @return {Function} Wrapped Function. + */ + function bind(fn, context, args){ + var argsArr = slice(arguments, 2); //curried args + return function(){ + return fn.apply(context, argsArr.concat(slice(arguments))); + }; + } + + module.exports = bind; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js new file mode 100644 index 00000000..8cd5c5f3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/compose.js @@ -0,0 +1,23 @@ + + + /** + * Returns a function that composes multiple functions, passing results to + * each other. + */ + function compose() { + var fns = arguments; + return function(arg){ + // only cares about the first argument since the chain can only + // deal with a single return value anyway. It should start from + // the last fn. + var n = fns.length; + while (n--) { + arg = fns[n].call(this, arg); + } + return arg; + }; + } + + module.exports = compose; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js new file mode 100644 index 00000000..a0ed07f5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/debounce.js @@ -0,0 +1,29 @@ + + + /** + * Debounce callback execution + */ + function debounce(fn, threshold, isAsap){ + var timeout, result; + function debounced(){ + var args = arguments, context = this; + function delayed(){ + if (! isAsap) { + result = fn.apply(context, args); + } + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (isAsap) { + result = fn.apply(context, args); + } + timeout = setTimeout(delayed, threshold); + return result; + } + return debounced; + } + + module.exports = debounce; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js new file mode 100644 index 00000000..b81bf0a8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/func.js @@ -0,0 +1,14 @@ + + + /** + * Returns a function that call a method on the passed object + */ + function func(name){ + return function(obj){ + return obj[name](); + }; + } + + module.exports = func; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js new file mode 100644 index 00000000..767610a5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/makeIterator_.js @@ -0,0 +1,34 @@ +var prop = require('./prop'); +var deepMatches = require('../object/deepMatches'); + + /** + * Converts argument into a valid iterator. + * Used internally on most array/object/collection methods that receives a + * callback/iterator providing a shortcut syntax. + */ + function makeIterator(src, thisObj){ + switch(typeof src) { + case 'object': + // typeof null == "object" + return (src != null)? function(val, key, target){ + return deepMatches(val, src); + } : src; + case 'string': + case 'number': + return prop(src); + case 'function': + if (typeof thisObj === 'undefined') { + return src; + } else { + return function(val, i, arr){ + return src.call(thisObj, val, i, arr); + }; + } + default: + return src; + } + } + + module.exports = makeIterator; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js new file mode 100644 index 00000000..d63ff1be --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/partial.js @@ -0,0 +1,19 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Creates a partially applied function. + */ + function partial(fn, var_args){ + var argsArr = slice(arguments, 1); //curried args + return function(){ + return fn.apply(this, argsArr.concat(slice(arguments))); + }; + } + + module.exports = partial; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js new file mode 100644 index 00000000..734acb7a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/prop.js @@ -0,0 +1,14 @@ + + + /** + * Returns a function that gets a property of the passed object + */ + function prop(name){ + return function(obj){ + return obj[name]; + }; + } + + module.exports = prop; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js new file mode 100644 index 00000000..25159c2c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/series.js @@ -0,0 +1,22 @@ + + + /** + * Returns a function that will execute a list of functions in sequence + * passing the same arguments to each one. (useful for batch processing + * items during a forEach loop) + */ + function series(){ + var fns = arguments; + return function(){ + var i = 0, + n = fns.length; + while (i < n) { + fns[i].apply(this, arguments); + i += 1; + } + }; + } + + module.exports = series; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js new file mode 100644 index 00000000..619dc540 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/throttle.js @@ -0,0 +1,32 @@ +var now = require('../time/now'); + + /** + */ + function throttle(fn, delay){ + var context, timeout, result, args, + cur, diff, prev = 0; + function delayed(){ + prev = now(); + timeout = null; + result = fn.apply(context, args); + } + function throttled(){ + context = this; + args = arguments; + cur = now(); + diff = delay - (cur - prev); + if (diff <= 0) { + clearTimeout(timeout); + prev = cur; + result = fn.apply(context, args); + } else if (! timeout) { + timeout = setTimeout(delayed, diff); + } + return result; + } + return throttled; + } + + module.exports = throttle; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js new file mode 100644 index 00000000..e0d21a66 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/function/timeout.js @@ -0,0 +1,21 @@ + + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Delays the call of a function within a given context. + */ + function timeout(fn, millis, context){ + + var args = slice(arguments, 3); + + return setTimeout(function() { + fn.apply(context, args); + }, millis); + } + + module.exports = timeout; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/index.js new file mode 100644 index 00000000..32a1c639 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/index.js @@ -0,0 +1,24 @@ +/**@license + * mout v0.6.0 | http://moutjs.com | MIT license + */ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'VERSION' : '0.6.0', + 'array' : require('./array'), + 'collection' : require('./collection'), + 'date' : require('./date'), + 'function' : require('./function'), + 'lang' : require('./lang'), + 'math' : require('./math'), + 'number' : require('./number'), + 'object' : require('./object'), + 'queryString' : require('./queryString'), + 'random' : require('./random'), + 'string' : require('./string'), + 'time' : require('./time') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang.js new file mode 100644 index 00000000..b9816218 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang.js @@ -0,0 +1,36 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'clone' : require('./lang/clone'), + 'createObject' : require('./lang/createObject'), + 'ctorApply' : require('./lang/ctorApply'), + 'deepClone' : require('./lang/deepClone'), + 'defaults' : require('./lang/defaults'), + 'inheritPrototype' : require('./lang/inheritPrototype'), + 'is' : require('./lang/is'), + 'isArguments' : require('./lang/isArguments'), + 'isArray' : require('./lang/isArray'), + 'isBoolean' : require('./lang/isBoolean'), + 'isDate' : require('./lang/isDate'), + 'isEmpty' : require('./lang/isEmpty'), + 'isFinite' : require('./lang/isFinite'), + 'isFunction' : require('./lang/isFunction'), + 'isInteger' : require('./lang/isInteger'), + 'isKind' : require('./lang/isKind'), + 'isNaN' : require('./lang/isNaN'), + 'isNull' : require('./lang/isNull'), + 'isNumber' : require('./lang/isNumber'), + 'isObject' : require('./lang/isObject'), + 'isPlainObject' : require('./lang/isPlainObject'), + 'isRegExp' : require('./lang/isRegExp'), + 'isString' : require('./lang/isString'), + 'isUndefined' : require('./lang/isUndefined'), + 'isnt' : require('./lang/isnt'), + 'kindOf' : require('./lang/kindOf'), + 'toArray' : require('./lang/toArray'), + 'toString' : require('./lang/toString') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js new file mode 100644 index 00000000..33c4e949 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/clone.js @@ -0,0 +1,49 @@ +var kindOf = require('./kindOf'); +var isPlainObject = require('./isPlainObject'); +var mixIn = require('../object/mixIn'); + + /** + * Clone native types. + */ + function clone(val){ + switch (kindOf(val)) { + case 'Object': + return cloneObject(val); + case 'Array': + return cloneArray(val); + case 'RegExp': + return cloneRegExp(val); + case 'Date': + return cloneDate(val); + default: + return val; + } + } + + function cloneObject(source) { + if (isPlainObject(source)) { + return mixIn({}, source); + } else { + return source; + } + } + + function cloneRegExp(r) { + var flags = ''; + flags += r.multiline ? 'm' : ''; + flags += r.global ? 'g' : ''; + flags += r.ignorecase ? 'i' : ''; + return new RegExp(r.source, flags); + } + + function cloneDate(date) { + return new Date(+date); + } + + function cloneArray(arr) { + return arr.slice(); + } + + module.exports = clone; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js new file mode 100644 index 00000000..bbc14c1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/createObject.js @@ -0,0 +1,18 @@ +var mixIn = require('../object/mixIn'); + + /** + * Create Object using prototypal inheritance and setting custom properties. + * - Mix between Douglas Crockford Prototypal Inheritance and the EcmaScript 5 `Object.create()` method. + * @param {object} parent Parent Object. + * @param {object} [props] Object properties. + * @return {object} Created object. + */ + function createObject(parent, props){ + function F(){} + F.prototype = parent; + return mixIn(new F(), props); + + } + module.exports = createObject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js new file mode 100644 index 00000000..d68dc506 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/ctorApply.js @@ -0,0 +1,17 @@ + + + function F(){} + + /** + * Do fn.apply on a constructor. + */ + function ctorApply(ctor, args) { + F.prototype = ctor.prototype; + var instance = new F(); + ctor.apply(instance, args); + return instance; + } + + module.exports = ctorApply; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js new file mode 100644 index 00000000..25fd95f1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/deepClone.js @@ -0,0 +1,48 @@ +var clone = require('./clone'); +var forOwn = require('../object/forOwn'); +var kindOf = require('./kindOf'); +var isPlainObject = require('./isPlainObject'); + + /** + * Recursively clone native types. + */ + function deepClone(val, instanceClone) { + switch ( kindOf(val) ) { + case 'Object': + return cloneObject(val, instanceClone); + case 'Array': + return cloneArray(val, instanceClone); + default: + return clone(val); + } + } + + function cloneObject(source, instanceClone) { + if (isPlainObject(source)) { + var out = {}; + forOwn(source, function(val, key) { + this[key] = deepClone(val, instanceClone); + }, out); + return out; + } else if (instanceClone) { + return instanceClone(source); + } else { + return source; + } + } + + function cloneArray(arr, instanceClone) { + var out = [], + i = -1, + n = arr.length, + val; + while (++i < n) { + out[i] = deepClone(arr[i], instanceClone); + } + return out; + } + + module.exports = deepClone; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js new file mode 100644 index 00000000..1111b2ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/defaults.js @@ -0,0 +1,17 @@ +var toArray = require('./toArray'); +var find = require('../array/find'); + + /** + * Return first non void argument + */ + function defaults(var_args){ + return find(toArray(arguments), nonVoid); + } + + function nonVoid(val){ + return val != null; + } + + module.exports = defaults; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js new file mode 100644 index 00000000..cd8a379e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/inheritPrototype.js @@ -0,0 +1,16 @@ +var createObject = require('./createObject'); + + /** + * Inherit prototype from another Object. + * - inspired by Nicholas Zackas Solution + * @param {object} child Child object + * @param {object} parent Parent Object + */ + function inheritPrototype(child, parent){ + var p = createObject(parent.prototype); + p.constructor = child; + child.prototype = p; + } + + module.exports = inheritPrototype; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js new file mode 100644 index 00000000..4a835739 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/is.js @@ -0,0 +1,23 @@ + + + /** + * Check if both arguments are egal. + */ + function is(x, y){ + // implementation borrowed from harmony:egal spec + if (x === y) { + // 0 === -0, but they are not identical + return x !== 0 || 1 / x === 1 / y; + } + + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is a NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN("foo") => true + return x !== x && y !== y; + } + + module.exports = is; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js new file mode 100644 index 00000000..f7b08ba4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArguments.js @@ -0,0 +1,15 @@ +var isKind = require('./isKind'); + + /** + */ + var isArgs = isKind(arguments, 'Arguments')? + function(val){ + return isKind(val, 'Arguments'); + } : + function(val){ + // Arguments is an Object on IE7 + return !!(val && Object.prototype.hasOwnProperty.call(val, 'callee')); + }; + + module.exports = isArgs; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js new file mode 100644 index 00000000..262ee400 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isArray.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + var isArray = Array.isArray || function (val) { + return isKind(val, 'Array'); + }; + module.exports = isArray; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js new file mode 100644 index 00000000..86557cb9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isBoolean.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isBoolean(val) { + return isKind(val, 'Boolean'); + } + module.exports = isBoolean; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js new file mode 100644 index 00000000..4a5130f2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isDate.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isDate(val) { + return isKind(val, 'Date'); + } + module.exports = isDate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js new file mode 100644 index 00000000..0e9f77da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isEmpty.js @@ -0,0 +1,24 @@ +var forOwn = require('../object/forOwn'); +var isArray = require('./isArray'); + + function isEmpty(val){ + if (val == null) { + // typeof null == 'object' so we check it first + return false; + } else if ( typeof val === 'string' || isArray(val) ) { + return !val.length; + } else if ( typeof val === 'object' || typeof val === 'function' ) { + var result = true; + forOwn(val, function(){ + result = false; + return false; // break loop + }); + return result; + } else { + return false; + } + } + + module.exports = isEmpty; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js new file mode 100644 index 00000000..6d4006f9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFinite.js @@ -0,0 +1,21 @@ +var isNumber = require('./isNumber'); + + var global = this; + + /** + * Check if value is finite + */ + function isFinite(val){ + var is = false; + if (typeof val === 'string' && val !== '') { + is = global.isFinite( parseFloat(val) ); + } else if (isNumber(val)){ + // need to use isNumber because of Number constructor + is = global.isFinite( val ); + } + return is; + } + + module.exports = isFinite; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js new file mode 100644 index 00000000..216879f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isFunction.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isFunction(val) { + return isKind(val, 'Function'); + } + module.exports = isFunction; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js new file mode 100644 index 00000000..29f95d96 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isInteger.js @@ -0,0 +1,12 @@ +var isNumber = require('./isNumber'); + + /** + * Check if value is an integer + */ + function isInteger(val){ + return isNumber(val) && (val % 1 === 0); + } + + module.exports = isInteger; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js new file mode 100644 index 00000000..02301e04 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isKind.js @@ -0,0 +1,9 @@ +var kindOf = require('./kindOf'); + /** + * Check if value is from a specific "kind". + */ + function isKind(val, kind){ + return kindOf(val) === kind; + } + module.exports = isKind; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js new file mode 100644 index 00000000..f6efeb1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNaN.js @@ -0,0 +1,15 @@ +var isNumber = require('./isNumber'); + + /** + * Check if value is NaN for realz + */ + function isNaN(val){ + // based on the fact that NaN !== NaN + // need to check if it's a number to avoid conflicts with host objects + // also need to coerce ToNumber to avoid edge case `new Number(NaN)` + return !isNumber(val) || val != +val; + } + + module.exports = isNaN; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js new file mode 100644 index 00000000..6252f9ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNull.js @@ -0,0 +1,9 @@ + + /** + */ + function isNull(val){ + return val === null; + } + module.exports = isNull; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js new file mode 100644 index 00000000..126c1cce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isNumber.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isNumber(val) { + return isKind(val, 'Number'); + } + module.exports = isNumber; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js new file mode 100644 index 00000000..7350c891 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isObject.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isObject(val) { + return isKind(val, 'Object'); + } + module.exports = isObject; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js new file mode 100644 index 00000000..0d2d7b65 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isPlainObject.js @@ -0,0 +1,14 @@ + + + /** + * Checks if the value is created by the `Object` constructor. + */ + function isPlainObject(value) { + return (!!value + && typeof value === 'object' + && value.constructor === Object); + } + + module.exports = isPlainObject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js new file mode 100644 index 00000000..fc5459a9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isRegExp.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isRegExp(val) { + return isKind(val, 'RegExp'); + } + module.exports = isRegExp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js new file mode 100644 index 00000000..f8906584 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isString.js @@ -0,0 +1,8 @@ +var isKind = require('./isKind'); + /** + */ + function isString(val) { + return isKind(val, 'String'); + } + module.exports = isString; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js new file mode 100644 index 00000000..fb2261df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isUndefined.js @@ -0,0 +1,10 @@ + + var UNDEF; + + /** + */ + function isUndef(val){ + return val === UNDEF; + } + module.exports = isUndef; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js new file mode 100644 index 00000000..9dad58ce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/isnt.js @@ -0,0 +1,12 @@ +var is = require('./is'); + + /** + * Check if both values are not identical/egal + */ + function isnt(x, y){ + return !is(x, y); + } + + module.exports = isnt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js new file mode 100644 index 00000000..663464d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/kindOf.js @@ -0,0 +1,20 @@ + + + var _rKind = /^\[object (.*)\]$/, + _toString = Object.prototype.toString, + UNDEF; + + /** + * Gets the "kind" of value. (e.g. "String", "Number", etc) + */ + function kindOf(val) { + if (val === null) { + return 'Null'; + } else if (val === UNDEF) { + return 'Undefined'; + } else { + return _rKind.exec( _toString.call(val) )[1]; + } + } + module.exports = kindOf; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js new file mode 100644 index 00000000..e39b8734 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toArray.js @@ -0,0 +1,31 @@ +var kindOf = require('./kindOf'); + + var _win = this; + + /** + * Convert array-like object into array + */ + function toArray(val){ + var ret = [], + kind = kindOf(val), + n; + + if (val != null) { + if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) { + //string, regexp, function have .length but user probably just want + //to wrap value into an array.. + ret[ret.length] = val; + } else { + //window returns true on isObject in IE7 and may have length + //property. `typeof NodeList` returns `function` on Safari so + //we can't use it (#58) + n = val.length; + while (n--) { + ret[n] = val[n]; + } + } + } + return ret; + } + module.exports = toArray; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js new file mode 100644 index 00000000..ae5c2b0f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/lang/toString.js @@ -0,0 +1,13 @@ + + + /** + * Typecast a value to a String, using an empty string value for null or + * undefined. + */ + function toString(val){ + return val == null ? '' : val.toString(); + } + + module.exports = toString; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math.js new file mode 100644 index 00000000..c6ee889b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math.js @@ -0,0 +1,19 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'ceil' : require('./math/ceil'), + 'clamp' : require('./math/clamp'), + 'countSteps' : require('./math/countSteps'), + 'floor' : require('./math/floor'), + 'inRange' : require('./math/inRange'), + 'isNear' : require('./math/isNear'), + 'lerp' : require('./math/lerp'), + 'loop' : require('./math/loop'), + 'map' : require('./math/map'), + 'norm' : require('./math/norm'), + 'round' : require('./math/round') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js new file mode 100644 index 00000000..a279e158 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/ceil.js @@ -0,0 +1,11 @@ + + /** + * Round value up with a custom radix. + */ + function ceil(val, step){ + step = Math.abs(step || 1); + return Math.ceil(val / step) * step; + } + + module.exports = ceil; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js new file mode 100644 index 00000000..e929a9a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/clamp.js @@ -0,0 +1,9 @@ + + /** + * Clamps value inside range. + */ + function clamp(val, min, max){ + return val < min? min : (val > max? max : val); + } + module.exports = clamp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js new file mode 100644 index 00000000..60ac90c3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/countSteps.js @@ -0,0 +1,16 @@ + + /** + * Count number of full steps. + */ + function countSteps(val, step, overflow){ + val = Math.floor(val / step); + + if (overflow) { + return val % overflow; + } + + return val; + } + + module.exports = countSteps; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js new file mode 100644 index 00000000..9de50531 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/floor.js @@ -0,0 +1,10 @@ + + /** + * Floor value to full steps. + */ + function floor(val, step){ + step = Math.abs(step || 1); + return Math.floor(val / step) * step; + } + module.exports = floor; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js new file mode 100644 index 00000000..763218f8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/inRange.js @@ -0,0 +1,11 @@ + + /** + * Checks if value is inside the range. + */ + function inRange(val, min, max, threshold){ + threshold = threshold || 0; + return (val + threshold >= min && val - threshold <= max); + } + + module.exports = inRange; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js new file mode 100644 index 00000000..45486b6d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/isNear.js @@ -0,0 +1,9 @@ + + /** + * Check if value is close to target. + */ + function isNear(val, target, threshold){ + return (Math.abs(val - target) <= threshold); + } + module.exports = isNear; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js new file mode 100644 index 00000000..111e2717 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/lerp.js @@ -0,0 +1,11 @@ + + /** + * Linear interpolation. + * IMPORTANT:will return `Infinity` if numbers overflow Number.MAX_VALUE + */ + function lerp(ratio, start, end){ + return start + (end - start) * ratio; + } + + module.exports = lerp; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js new file mode 100644 index 00000000..35207c1a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/loop.js @@ -0,0 +1,10 @@ + + /** + * Loops value inside range. + */ + function loop(val, min, max){ + return val < min? max : (val > max? min : val); + } + + module.exports = loop; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js new file mode 100644 index 00000000..96c4b787 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/map.js @@ -0,0 +1,11 @@ +var lerp = require('./lerp'); +var norm = require('./norm'); + /** + * Maps a number from one scale to another. + * @example map(3, 0, 4, -1, 1) -> 0.5 + */ + function map(val, min1, max1, min2, max2){ + return lerp( norm(val, min1, max1), min2, max2 ); + } + module.exports = map; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js new file mode 100644 index 00000000..54caf78a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/norm.js @@ -0,0 +1,9 @@ + + /** + * Gets normalized ratio of value inside range. + */ + function norm(val, min, max){ + return (val - min) / (max - min); + } + module.exports = norm; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js new file mode 100644 index 00000000..d108e6cd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/math/round.js @@ -0,0 +1,12 @@ + + /** + * Round number to a specific radix + */ + function round(value, radix){ + radix = radix || 1; // default round 1 + return Math.round(value / radix) * radix; + } + + module.exports = round; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number.js new file mode 100644 index 00000000..0b6186cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number.js @@ -0,0 +1,21 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'MAX_INT' : require('./number/MAX_INT'), + 'MAX_UINT' : require('./number/MAX_UINT'), + 'MIN_INT' : require('./number/MIN_INT'), + 'abbreviate' : require('./number/abbreviate'), + 'currencyFormat' : require('./number/currencyFormat'), + 'enforcePrecision' : require('./number/enforcePrecision'), + 'pad' : require('./number/pad'), + 'rol' : require('./number/rol'), + 'ror' : require('./number/ror'), + 'sign' : require('./number/sign'), + 'toInt' : require('./number/toInt'), + 'toUInt' : require('./number/toUInt'), + 'toUInt31' : require('./number/toUInt31') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js new file mode 100644 index 00000000..1d6f0e48 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit signed integer value. (2^31 - 1) + */ + + module.exports = 2147483647; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js new file mode 100644 index 00000000..700da0f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MAX_UINT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit unsigned integet value (2^32 - 1) + */ + + module.exports = 4294967295; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js new file mode 100644 index 00000000..b34ab2ce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/MIN_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Minimum 32-bit signed integer value (-2^31). + */ + + module.exports = -2147483648; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js new file mode 100644 index 00000000..dd6716b9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/abbreviate.js @@ -0,0 +1,35 @@ +var enforcePrecision = require('./enforcePrecision'); + + var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' + }; + + /** + * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) + */ + function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals != null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; + } + + module.exports = abbreviateNumber; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js new file mode 100644 index 00000000..1cf02497 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/currencyFormat.js @@ -0,0 +1,26 @@ + + + /** + * Converts number into currency format + */ + function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) { + nDecimalDigits = nDecimalDigits == null? 2 : nDecimalDigits; + decimalSeparator = decimalSeparator == null? '.' : decimalSeparator; + thousandsSeparator = thousandsSeparator == null? ',' : thousandsSeparator; + + //can't use enforce precision since it returns a number and we are + //doing a RegExp over the string + var fixed = val.toFixed(nDecimalDigits), + //separate begin [$1], middle [$2] and decimal digits [$4] + parts = new RegExp('^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{'+ nDecimalDigits +'}))?$').exec( fixed ); + + if(parts){ //val >= 1000 || val <= -1000 + return parts[1] + parts[2].replace(/\d{3}/g, thousandsSeparator + '$&') + (parts[4] ? decimalSeparator + parts[4] : ''); + }else{ + return fixed.replace('.', decimalSeparator); + } + } + + module.exports = currencyFormat; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js new file mode 100644 index 00000000..f73a92d7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/enforcePrecision.js @@ -0,0 +1,13 @@ + + /** + * Enforce a specific amount of decimal digits and also fix floating + * point rounding issues. + * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> + * 0.61` + */ + function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); + } + module.exports = enforcePrecision; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js new file mode 100644 index 00000000..da752706 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/pad.js @@ -0,0 +1,12 @@ +var lpad = require('../string/lpad'); + + /** + * Add padding zeros if n.length < minLength. + */ + function pad(n, minLength, char){ + return lpad(''+ n, minLength, char || '0'); + } + + module.exports = pad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js new file mode 100644 index 00000000..ecd58da4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/rol.js @@ -0,0 +1,10 @@ + + /** + * Bitwise circular shift left + * http://en.wikipedia.org/wiki/Circular_shift + */ + function rol(val, shift){ + return (val << shift) | (val >> (32 - shift)); + } + module.exports = rol; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js new file mode 100644 index 00000000..2eda81da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/ror.js @@ -0,0 +1,10 @@ + + /** + * Bitwise circular shift right + * http://en.wikipedia.org/wiki/Circular_shift + */ + function ror(val, shift){ + return (val >> shift) | (val << (32 - shift)); + } + module.exports = ror; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js new file mode 100644 index 00000000..b854a4ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/sign.js @@ -0,0 +1,15 @@ + + + /** + * Get sign of the value. + */ + function sign(val) { + var num = Number(val); + if (num === 0) return num; // +0 and +0 === 0 + if (isNaN(num)) return num; // NaN + return num < 0? -1 : 1; + } + + module.exports = sign; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js new file mode 100644 index 00000000..bcefae0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toInt.js @@ -0,0 +1,15 @@ + + + /** + * "Convert" value into an 32-bit integer. + * Works like `Math.floor` if val > 0 and `Math.ceil` if val < 0. + * IMPORTANT: val will wrap at 2^31 and -2^31. + * Perf tests: http://jsperf.com/vs-vs-parseint-bitwise-operators/7 + */ + function toInt(val){ + return ~~val; + } + + module.exports = toInt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js new file mode 100644 index 00000000..5290b627 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt.js @@ -0,0 +1,13 @@ + + + /** + * "Convert" value into a 32-bit unsigned integer. + * IMPORTANT: Value will wrap at 2^32. + */ + function toUInt(val){ + return val >>> 0; + } + + module.exports = toUInt; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js new file mode 100644 index 00000000..fcc5a97c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/number/toUInt31.js @@ -0,0 +1,13 @@ +var MAX_INT = require('./MAX_INT'); + + /** + * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + * IMPORTANT: value wil wrap at 2^31, if negative will return 0. + */ + function toUInt31(val){ + return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val); + } + + module.exports = toUInt31; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object.js new file mode 100644 index 00000000..76c06424 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object.js @@ -0,0 +1,42 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'bindAll' : require('./object/bindAll'), + 'contains' : require('./object/contains'), + 'deepEquals' : require('./object/deepEquals'), + 'deepFillIn' : require('./object/deepFillIn'), + 'deepMatches' : require('./object/deepMatches'), + 'deepMixIn' : require('./object/deepMixIn'), + 'equals' : require('./object/equals'), + 'every' : require('./object/every'), + 'fillIn' : require('./object/fillIn'), + 'filter' : require('./object/filter'), + 'find' : require('./object/find'), + 'forIn' : require('./object/forIn'), + 'forOwn' : require('./object/forOwn'), + 'functions' : require('./object/functions'), + 'get' : require('./object/get'), + 'has' : require('./object/has'), + 'hasOwn' : require('./object/hasOwn'), + 'keys' : require('./object/keys'), + 'map' : require('./object/map'), + 'matches' : require('./object/matches'), + 'max' : require('./object/max'), + 'merge' : require('./object/merge'), + 'min' : require('./object/min'), + 'mixIn' : require('./object/mixIn'), + 'namespace' : require('./object/namespace'), + 'pick' : require('./object/pick'), + 'pluck' : require('./object/pluck'), + 'reduce' : require('./object/reduce'), + 'reject' : require('./object/reject'), + 'set' : require('./object/set'), + 'size' : require('./object/size'), + 'some' : require('./object/some'), + 'unset' : require('./object/unset'), + 'values' : require('./object/values') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js new file mode 100644 index 00000000..b2f27d08 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/bindAll.js @@ -0,0 +1,18 @@ +var functions = require('./functions'); +var bind = require('../function/bind'); +var forEach = require('../array/forEach'); + + /** + * Binds methods of the object to be run in it's own context. + */ + function bindAll(obj, rest_methodNames){ + var keys = arguments.length > 1? + Array.prototype.slice.call(arguments, 1) : functions(obj); + forEach(keys, function(key){ + obj[key] = bind(obj[key], obj); + }); + } + + module.exports = bindAll; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js new file mode 100644 index 00000000..8076e2c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/contains.js @@ -0,0 +1,13 @@ +var some = require('./some'); + + /** + * Check if object contains value + */ + function contains(obj, needle) { + return some(obj, function(val) { + return (val === needle); + }); + } + module.exports = contains; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js new file mode 100644 index 00000000..fcde9449 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepEquals.js @@ -0,0 +1,27 @@ +var isObject = require('../lang/isObject'); +var equals = require('./equals'); + + function defaultCompare(a, b) { + return a === b; + } + + /** + * Recursively checks for same properties and values. + */ + function deepEquals(a, b, callback){ + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + function compare(a, b){ + return deepEquals(a, b, callback); + } + + return equals(a, b, compare); + } + + module.exports = deepEquals; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js new file mode 100644 index 00000000..d27db44d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepFillIn.js @@ -0,0 +1,32 @@ +var forOwn = require('./forOwn'); +var isPlainObject = require('../lang/isPlainObject'); + + /** + * Deeply copy missing properties in the target from the defaults. + */ + function deepFillIn(target, defaults){ + var i = 0, + n = arguments.length, + obj; + + while(++i < n) { + obj = arguments[i]; + if (obj) { + forOwn(obj, function(newValue, key) { + var curValue = target[key]; + if (curValue == null) { + target[key] = newValue; + } else if (isPlainObject(curValue) + && isPlainObject(newValue)) { + deepFillIn(curValue, newValue); + } + }); + } + } + + return target; + } + + module.exports = deepFillIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js new file mode 100644 index 00000000..3366c52d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMatches.js @@ -0,0 +1,55 @@ +var forOwn = require('./forOwn'); +var isArray = require('../lang/isArray'); + + function containsMatch(array, pattern) { + var i = -1, length = array.length; + while (++i < length) { + if (deepMatches(array[i], pattern)) { + return true; + } + } + + return false; + } + + function matchArray(target, pattern) { + var i = -1, patternLength = pattern.length; + while (++i < patternLength) { + if (!containsMatch(target, pattern[i])) { + return false; + } + } + + return true; + } + + function matchObject(target, pattern) { + var result = true; + forOwn(pattern, function(val, key) { + if (!deepMatches(target[key], val)) { + // Return false to break out of forOwn early + return (result = false); + } + }); + + return result; + } + + /** + * Recursively check if the objects match. + */ + function deepMatches(target, pattern){ + if (target && typeof target === 'object') { + if (isArray(target) && isArray(pattern)) { + return matchArray(target, pattern); + } else { + return matchObject(target, pattern); + } + } else { + return target === pattern; + } + } + + module.exports = deepMatches; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js new file mode 100644 index 00000000..a97e98d0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/deepMixIn.js @@ -0,0 +1,34 @@ +var forOwn = require('./forOwn'); +var isPlainObject = require('../lang/isPlainObject'); + + /** + * Mixes objects into the target object, recursively mixing existing child + * objects. + */ + function deepMixIn(target, objects) { + var i = 0, + n = arguments.length, + obj; + + while(++i < n){ + obj = arguments[i]; + if (obj) { + forOwn(obj, copyProp, target); + } + } + + return target; + } + + function copyProp(val, key) { + var existing = this[key]; + if (isPlainObject(val) && isPlainObject(existing)) { + deepMixIn(existing, val); + } else { + this[key] = val; + } + } + + module.exports = deepMixIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js new file mode 100644 index 00000000..f50cbe4e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/equals.js @@ -0,0 +1,36 @@ +var hasOwn = require('./hasOwn'); +var every = require('./every'); +var isObject = require('../lang/isObject'); + + function defaultCompare(a, b) { + return a === b; + } + + // Makes a function to compare the object values from the specified compare + // operation callback. + function makeCompare(callback) { + return function(value, key) { + return hasOwn(this, key) && callback(value, this[key]); + }; + } + + function checkProperties(value, key) { + return hasOwn(this, key); + } + + /** + * Checks if two objects have the same keys and values. + */ + function equals(a, b, callback) { + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + return (every(a, makeCompare(callback), b) && + every(b, checkProperties, a)); + } + + module.exports = equals; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js new file mode 100644 index 00000000..01106e5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/every.js @@ -0,0 +1,23 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object every + */ + function every(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + forOwn(obj, function(val, key) { + // we consider any falsy values as "false" on purpose so shorthand + // syntax can be used to check property existence + if (!callback(val, key, obj)) { + result = false; + return false; // break + } + }); + return result; + } + + module.exports = every; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js new file mode 100644 index 00000000..80dcdf07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/fillIn.js @@ -0,0 +1,20 @@ +var forEach = require('../array/forEach'); +var forOwn = require('./forOwn'); + + /** + * Copy missing properties in the obj from the defaults. + */ + function fillIn(obj, var_defaults){ + forEach(Array.prototype.slice.call(arguments, 1), function(base){ + forOwn(base, function(val, key){ + if (obj[key] == null) { + obj[key] = val; + } + }); + }); + return obj; + } + + module.exports = fillIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js new file mode 100644 index 00000000..3a83a92f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/filter.js @@ -0,0 +1,20 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Creates a new object with all the properties where the callback returns + * true. + */ + function filterValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + output[key] = value; + } + }); + + return output; + } + module.exports = filterValues; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js new file mode 100644 index 00000000..d39c0706 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/find.js @@ -0,0 +1,21 @@ +var some = require('./some'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Returns first item that matches criteria + */ + function find(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result; + some(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + result = value; + return true; //break + } + }); + return result; + } + + module.exports = find; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js new file mode 100644 index 00000000..367f08ca --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forIn.js @@ -0,0 +1,62 @@ + + + var _hasDontEnumBug, + _dontEnums; + + function checkDontEnum(){ + _dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ]; + + _hasDontEnumBug = true; + + for (var key in {'toString': null}) { + _hasDontEnumBug = false; + } + } + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forIn(obj, fn, thisObj){ + var key, i = 0; + // no need to check if argument is a real object that way we can use + // it for arrays, functions, date, etc. + + //post-pone check till needed + if (_hasDontEnumBug == null) checkDontEnum(); + + for (key in obj) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + + if (_hasDontEnumBug) { + while (key = _dontEnums[i++]) { + // since we aren't using hasOwn check we need to make sure the + // property was overwritten + if (obj[key] !== Object.prototype[key]) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + } + } + } + + function exec(fn, obj, key, thisObj){ + return fn.call(thisObj, obj[key], key, obj); + } + + module.exports = forIn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js new file mode 100644 index 00000000..5f2dfbfc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/forOwn.js @@ -0,0 +1,19 @@ +var hasOwn = require('./hasOwn'); +var forIn = require('./forIn'); + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forOwn(obj, fn, thisObj){ + forIn(obj, function(val, key){ + if (hasOwn(obj, key)) { + return fn.call(thisObj, obj[key], key, obj); + } + }); + } + + module.exports = forOwn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js new file mode 100644 index 00000000..f5717979 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/functions.js @@ -0,0 +1,18 @@ +var forIn = require('./forIn'); + + /** + * return a list of all enumerable properties that have function values + */ + function functions(obj){ + var keys = []; + forIn(obj, function(val, key){ + if (typeof val === 'function'){ + keys.push(key); + } + }); + return keys.sort(); + } + + module.exports = functions; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js new file mode 100644 index 00000000..6673561e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/get.js @@ -0,0 +1,20 @@ + + + /** + * get "nested" object property + */ + function get(obj, prop){ + var parts = prop.split('.'), + last = parts.pop(); + + while (prop = parts.shift()) { + obj = obj[prop]; + if (typeof obj !== 'object') return; + } + + return obj[last]; + } + + module.exports = get; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js new file mode 100644 index 00000000..ca9f2289 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/has.js @@ -0,0 +1,15 @@ +var get = require('./get'); + + var UNDEF; + + /** + * Check if object has nested property. + */ + function has(obj, prop){ + return get(obj, prop) !== UNDEF; + } + + module.exports = has; + + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js new file mode 100644 index 00000000..7e3c82ae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/hasOwn.js @@ -0,0 +1,12 @@ + + + /** + * Safer Object.hasOwnProperty + */ + function hasOwn(obj, prop){ + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + module.exports = hasOwn; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js new file mode 100644 index 00000000..dd2f4f55 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/keys.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object keys + */ + var keys = Object.keys || function (obj) { + var keys = []; + forOwn(obj, function(val, key){ + keys.push(key); + }); + return keys; + }; + + module.exports = keys; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js new file mode 100644 index 00000000..dd449a78 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/map.js @@ -0,0 +1,18 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Creates a new object where all the values are the result of calling + * `callback`. + */ + function mapValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(val, key, obj) { + output[key] = callback(val, key, obj); + }); + + return output; + } + module.exports = mapValues; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js new file mode 100644 index 00000000..6074faa2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/matches.js @@ -0,0 +1,20 @@ +var forOwn = require('./forOwn'); + + /** + * checks if a object contains all given properties/values + */ + function matches(target, props){ + // can't use "object/every" because of circular dependency + var result = true; + forOwn(props, function(val, key){ + if (target[key] !== val) { + // break loop at first difference + return (result = false); + } + }); + return result; + } + + module.exports = matches; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js new file mode 100644 index 00000000..3e8e92c7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/max.js @@ -0,0 +1,12 @@ +var arrMax = require('../array/max'); +var values = require('./values'); + + /** + * Returns maximum value inside object. + */ + function max(obj, compareFn) { + return arrMax(values(obj), compareFn); + } + + module.exports = max; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js new file mode 100644 index 00000000..6961f608 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/merge.js @@ -0,0 +1,40 @@ +var hasOwn = require('./hasOwn'); +var deepClone = require('../lang/deepClone'); +var isObject = require('../lang/isObject'); + + /** + * Deep merge objects. + */ + function merge() { + var i = 1, + key, val, obj, target; + + // make sure we don't modify source element and it's properties + // objects are passed by reference + target = deepClone( arguments[0] ); + + while (obj = arguments[i++]) { + for (key in obj) { + if ( ! hasOwn(obj, key) ) { + continue; + } + + val = obj[key]; + + if ( isObject(val) && isObject(target[key]) ){ + // inception, deep merge objects + target[key] = merge(target[key], val); + } else { + // make sure arrays, regexp, date, objects are cloned + target[key] = deepClone(val); + } + + } + } + + return target; + } + + module.exports = merge; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js new file mode 100644 index 00000000..e1e66976 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/min.js @@ -0,0 +1,12 @@ +var arrMin = require('../array/min'); +var values = require('./values'); + + /** + * Returns minimum value inside object. + */ + function min(obj, iterator) { + return arrMin(values(obj), iterator); + } + + module.exports = min; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js new file mode 100644 index 00000000..55ec8fd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/mixIn.js @@ -0,0 +1,28 @@ +var forOwn = require('./forOwn'); + + /** + * Combine properties from all the objects into first one. + * - This method affects target object in place, if you want to create a new Object pass an empty object as first param. + * @param {object} target Target Object + * @param {...object} objects Objects to be combined (0...n objects). + * @return {object} Target Object. + */ + function mixIn(target, objects){ + var i = 0, + n = arguments.length, + obj; + while(++i < n){ + obj = arguments[i]; + if (obj != null) { + forOwn(obj, copyProp, target); + } + } + return target; + } + + function copyProp(val, key){ + this[key] = val; + } + + module.exports = mixIn; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js new file mode 100644 index 00000000..c6e79f63 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/namespace.js @@ -0,0 +1,19 @@ +var forEach = require('../array/forEach'); + + /** + * Create nested object if non-existent + */ + function namespace(obj, path){ + if (!path) return obj; + forEach(path.split('.'), function(key){ + if (!obj[key]) { + obj[key] = {}; + } + obj = obj[key]; + }); + return obj; + } + + module.exports = namespace; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js new file mode 100644 index 00000000..74e56f98 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pick.js @@ -0,0 +1,18 @@ + + + /** + * Return a copy of the object, filtered to only have values for the whitelisted keys. + */ + function pick(obj, var_keys){ + var keys = typeof arguments[1] !== 'string'? arguments[1] : Array.prototype.slice.call(arguments, 1), + out = {}, + i = 0, key; + while (key = keys[i++]) { + out[key] = obj[key]; + } + return out; + } + + module.exports = pick; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js new file mode 100644 index 00000000..e844df47 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/pluck.js @@ -0,0 +1,13 @@ +var map = require('./map'); +var prop = require('../function/prop'); + + /** + * Extract a list of property values. + */ + function pluck(obj, propName){ + return map(obj, prop(propName)); + } + + module.exports = pluck; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js new file mode 100644 index 00000000..6f19a3a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reduce.js @@ -0,0 +1,29 @@ +var forOwn = require('./forOwn'); +var size = require('./size'); + + /** + * Object reduce + */ + function reduce(obj, callback, memo, thisObj) { + var initial = arguments.length > 2; + + if (!size(obj) && !initial) { + throw new Error('reduce of empty object with no initial value'); + } + + forOwn(obj, function(value, key, list) { + if (!initial) { + memo = value; + initial = true; + } + else { + memo = callback.call(thisObj, memo, value, key, list); + } + }); + + return memo; + } + + module.exports = reduce; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js new file mode 100644 index 00000000..74643795 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/reject.js @@ -0,0 +1,16 @@ +var filter = require('./filter'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object reject + */ + function reject(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + return filter(obj, function(value, index, obj) { + return !callback(value, index, obj); + }, thisObj); + } + + module.exports = reject; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js new file mode 100644 index 00000000..9b3cdc48 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/set.js @@ -0,0 +1,17 @@ +var namespace = require('./namespace'); + + /** + * set "nested" object property + */ + function set(obj, prop, val){ + var parts = (/^(.+)\.(.+)$/).exec(prop); + if (parts){ + namespace(obj, parts[1])[parts[2]] = val; + } else { + obj[prop] = val; + } + } + + module.exports = set; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js new file mode 100644 index 00000000..97885953 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/size.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object size + */ + function size(obj) { + var count = 0; + forOwn(obj, function(){ + count++; + }); + return count; + } + + module.exports = size; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js new file mode 100644 index 00000000..384c6f3c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/some.js @@ -0,0 +1,21 @@ +var forOwn = require('./forOwn'); +var makeIterator = require('../function/makeIterator_'); + + /** + * Object some + */ + function some(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + forOwn(obj, function(val, key) { + if (callback(val, key, obj)) { + result = true; + return false; // break + } + }); + return result; + } + + module.exports = some; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js new file mode 100644 index 00000000..343bca0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/unset.js @@ -0,0 +1,23 @@ +var has = require('./has'); + + /** + * Unset object property. + */ + function unset(obj, prop){ + if (has(obj, prop)) { + var parts = prop.split('.'), + last = parts.pop(); + while (prop = parts.shift()) { + obj = obj[prop]; + } + return (delete obj[last]); + + } else { + // if property doesn't exist treat as deleted + return true; + } + } + + module.exports = unset; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js new file mode 100644 index 00000000..265a6938 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/object/values.js @@ -0,0 +1,16 @@ +var forOwn = require('./forOwn'); + + /** + * Get object values + */ + function values(obj) { + var vals = []; + forOwn(obj, function(val, key){ + vals.push(val); + }); + return vals; + } + + module.exports = values; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/package.json new file mode 100644 index 00000000..76eadf21 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/package.json @@ -0,0 +1,123 @@ +{ + "name": "mout", + "description": "Modular Utilities", + "version": "0.6.0", + "homepage": "http://moutjs.com/", + "contributors": [ + { + "name": "Adam Nowotny" + }, + { + "name": "André Cruz", + "email": "amdfcruz@gmail.com" + }, + { + "name": "Conrad Zimmerman", + "url": "http://www.conradz.com" + }, + { + "name": "Friedemann Altrock", + "email": "frodenius@gmail.com" + }, + { + "name": "Jarrod Overson", + "url": "http://jarrodoverson.com" + }, + { + "name": "Miller Medeiros", + "email": "contact@millermedeiros.com", + "url": "http://blog.millermedeiros.com" + }, + { + "name": "Zach Shipley" + } + ], + "keywords": [ + "utilities", + "functional", + "amd-utils", + "stdlib" + ], + "repository": { + "type": "git", + "url": "git://github.com/mout/mout.git" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], + "bugs": { + "url": "https://github.com/mout/mout/issues/" + }, + "main": "./index.js", + "scripts": { + "prepublish": "node build cjs .", + "pretest": "node build pkg", + "test": "node node_modules/istanbul/lib/cli test tests/runner.js --hook-run-in-context" + }, + "directories": { + "doc": "./doc" + }, + "devDependencies": { + "istanbul": "~0.1.27", + "jasmine-node": "~1.2.2", + "requirejs": "2.x", + "nodefy": "*", + "mdoc": "~0.3.2", + "handlebars": "~1.0.6", + "commander": "~1.0.5", + "rocambole": "~0.2.3" + }, + "testling": { + "preprocess": "node build testling", + "browsers": { + "ie": [ + 7, + 8, + 9, + 10 + ], + "firefox": [ + 17, + "nightly" + ], + "chrome": [ + 23, + "canary" + ], + "opera": [ + 12, + "next" + ], + "safari": [ + 5.1, + 6 + ], + "iphone": [ + 6 + ], + "ipad": [ + 6 + ] + }, + "scripts": [ + "tests/lib/jasmine/jasmine.js", + "tests/lib/jasmine/jasmine.async.js", + "tests/lib/jasmine/jasmine-tap.js", + "tests/lib/requirejs/require.js", + "tests/testling/src.js", + "tests/testling/specs.js", + "tests/runner.js" + ] + }, + "readme": "![mout](http://moutjs.com/logo.png \"Modular JavaScript Utilties\")\n\nhttp://moutjs.com/\n\n[![Build Status](https://travis-ci.org/mout/mout.png?branch=master)](https://travis-ci.org/mout/mout)\n\nAll code is library agnostic and consist mostly of helper methods that aren't\ndirectly related with the DOM, the purpose of this library isn't to replace\nDojo, jQuery, YUI, Mootools, etc, but to provide modular solutions for common\nproblems that aren't solved by most of them. Consider it as a crossbrowser\nJavaScript standard library.\n\n\n\n## Main goals ##\n\n - increase code reuse;\n - be clear (code should be clean/readable);\n - be easy to debug;\n - be easy to maintain;\n - follow best practices;\n - follow standards when possible;\n - **don't convert JavaScript into another language!**\n - be compatible with other frameworks;\n - be modular;\n - have unit tests for all modules;\n - work on multiple environments (IE7+, modern browsers, node.js);\n\n\n\n## What shouldn't be here ##\n\n - UI components;\n - CSS selector engine;\n - Event system - pub/sub;\n - Template engine;\n - Anything that isn't generic enough to be on a standard library;\n - Anything that could be a separate library and/or isn't a modular utility...\n\n\n\n## API Documentation ##\n\nOnline documentation can be found at http://moutjs.com/ or inside the\n`doc` folder.\n\n\n\n## FAQ / Wiki / IRC ##\n\nFor more info about project structure, design decisions, tips, how to\ncontribute, build system, etc, please check the [project\nwiki](https://github.com/mout/mout/wiki).\n\nWe also have an IRC channel [#moutjs on\nirc.freenode.net](http://webchat.freenode.net/?channels=moutjs)\n\n\n\n## License ##\n\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n\n", + "readmeFilename": "README.md", + "_id": "mout@0.6.0", + "dist": { + "shasum": "d2f7a6e5a796040bf7b6259a41b46705f49d271d" + }, + "_from": "mout@~0.6.0", + "_resolved": "https://registry.npmjs.org/mout/-/mout-0.6.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js new file mode 100644 index 00000000..22685a7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString.js @@ -0,0 +1,15 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'contains' : require('./queryString/contains'), + 'decode' : require('./queryString/decode'), + 'encode' : require('./queryString/encode'), + 'getParam' : require('./queryString/getParam'), + 'getQuery' : require('./queryString/getQuery'), + 'parse' : require('./queryString/parse'), + 'setParam' : require('./queryString/setParam') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js new file mode 100644 index 00000000..da678cf4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/contains.js @@ -0,0 +1,12 @@ +var getQuery = require('./getQuery'); + + /** + * Checks if query string contains parameter. + */ + function contains(url, paramName) { + var regex = new RegExp('(\\?|&)'+ paramName +'=', 'g'); //matches `?param=` or `¶m=` + return regex.test(getQuery(url)); + } + + module.exports = contains; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js new file mode 100644 index 00000000..7e689990 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/decode.js @@ -0,0 +1,21 @@ +var typecast = require('../string/typecast'); +var isString = require('../lang/isString'); + + /** + * Decode query string into an object of keys => vals. + */ + function decode(queryStr, shouldTypecast) { + var queryArr = (queryStr || '').replace('?', '').split('&'), + n = queryArr.length, + obj = {}, + item, val; + while (n--) { + item = queryArr[n].split('='); + val = shouldTypecast === false? item[1] : typecast(item[1]); + obj[item[0]] = isString(val)? decodeURIComponent(val) : val; + } + return obj; + } + + module.exports = decode; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js new file mode 100644 index 00000000..6d2b12f8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/encode.js @@ -0,0 +1,15 @@ +var forOwn = require('../object/forOwn'); + + /** + * Encode object into a query string. + */ + function encode(obj){ + var query = []; + forOwn(obj, function(val, key){ + query.push( key +'='+ encodeURIComponent(val) ); + }); + return (query.length)? '?'+ query.join('&') : ''; + } + + module.exports = encode; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js new file mode 100644 index 00000000..f149c3ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getParam.js @@ -0,0 +1,15 @@ +var typecast = require('../string/typecast'); +var getQuery = require('./getQuery'); + + /** + * Get query parameter value. + */ + function getParam(url, param, shouldTypecast){ + var regexp = new RegExp('(\\?|&)'+ param + '=([^&]*)'), //matches `?param=value` or `¶m=value`, value = $2 + result = regexp.exec( getQuery(url) ), + val = (result && result[2])? result[2] : null; + return shouldTypecast === false? val : typecast(val); + } + + module.exports = getParam; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js new file mode 100644 index 00000000..5194af2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/getQuery.js @@ -0,0 +1,13 @@ + + + /** + * Gets full query as string with all special chars decoded. + */ + function getQuery(url) { + url = url.replace(/#.*/, ''); //removes hash (to avoid getting hash query) + var queryString = /\?[a-zA-Z0-9\=\&\%\$\-\_\.\+\!\*\'\(\)\,]+/.exec(url); //valid chars according to: http://www.ietf.org/rfc/rfc1738.txt + return (queryString)? decodeURIComponent(queryString[0]) : ''; + } + + module.exports = getQuery; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js new file mode 100644 index 00000000..532906c0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/parse.js @@ -0,0 +1,13 @@ +var decode = require('./decode'); +var getQuery = require('./getQuery'); + + /** + * Get query string, parses and decodes it. + */ + function parse(url, shouldTypecast) { + return decode(getQuery(url), shouldTypecast); + } + + module.exports = parse; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js new file mode 100644 index 00000000..052a9ba6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/queryString/setParam.js @@ -0,0 +1,28 @@ + + + /** + * Set query string parameter value + */ + function setParam(url, paramName, value){ + url = url || ''; + + var re = new RegExp('(\\?|&)'+ paramName +'=[^&]*' ); + var param = paramName +'='+ encodeURIComponent( value ); + + if ( re.test(url) ) { + return url.replace(re, '$1'+ param); + } else { + if (url.indexOf('?') === -1) { + url += '?'; + } + if (url.indexOf('=') !== -1) { + url += '&'; + } + return url + param; + } + + } + + module.exports = setParam; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random.js new file mode 100644 index 00000000..d9267f01 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random.js @@ -0,0 +1,16 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'choice' : require('./random/choice'), + 'guid' : require('./random/guid'), + 'rand' : require('./random/rand'), + 'randBit' : require('./random/randBit'), + 'randHex' : require('./random/randHex'), + 'randInt' : require('./random/randInt'), + 'randSign' : require('./random/randSign'), + 'random' : require('./random/random') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js new file mode 100644 index 00000000..51aa82a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/choice.js @@ -0,0 +1,15 @@ +var randInt = require('./randInt'); +var isArray = require('../lang/isArray'); + + /** + * Returns a random element from the supplied arguments + * or from the array (if single argument is an array). + */ + function choice(items) { + var target = (arguments.length === 1 && isArray(items))? items : arguments; + return target[ randInt(0, target.length - 1) ]; + } + + module.exports = choice; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js new file mode 100644 index 00000000..41f6eddc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/guid.js @@ -0,0 +1,24 @@ +var randHex = require('./randHex'); +var choice = require('./choice'); + + /** + * Returns pseudo-random guid (UUID v4) + * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random + * by default and sequences can be predicted in some cases. See the + * "random/random" documentation for more info about it and how to replace + * the default PRNG. + */ + function guid() { + return ( + randHex(8)+'-'+ + randHex(4)+'-'+ + // v4 UUID always contain "4" at this position to specify it was + // randomly generated + '4' + randHex(3) +'-'+ + // v4 UUID always contain chars [a,b,8,9] at this position + choice(8, 9, 'a', 'b') + randHex(3)+'-'+ + randHex(12) + ); + } + module.exports = guid; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js new file mode 100644 index 00000000..782dec88 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/rand.js @@ -0,0 +1,15 @@ +var random = require('./random'); +var MIN_INT = require('../number/MIN_INT'); +var MAX_INT = require('../number/MAX_INT'); + + /** + * Returns random number inside range + */ + function rand(min, max){ + min = min == null? MIN_INT : min; + max = max == null? MAX_INT : max; + return min + (max - min) * random(); + } + + module.exports = rand; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js new file mode 100644 index 00000000..bd20b4a0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randBit.js @@ -0,0 +1,11 @@ +var random = require('./random'); + + /** + * Returns random bit (0 or 1) + */ + function randomBit() { + return random() > 0.5? 1 : 0; + } + + module.exports = randomBit; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js new file mode 100644 index 00000000..d8d711c3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randHex.js @@ -0,0 +1,19 @@ +var choice = require('./choice'); + + var _chars = '0123456789abcdef'.split(''); + + /** + * Returns a random hexadecimal string + */ + function randHex(size){ + size = size && size > 0? size : 6; + var str = ''; + while (size--) { + str += choice(_chars); + } + return str; + } + + module.exports = randHex; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js new file mode 100644 index 00000000..e237d964 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randInt.js @@ -0,0 +1,18 @@ +var MIN_INT = require('../number/MIN_INT'); +var MAX_INT = require('../number/MAX_INT'); +var rand = require('./rand'); + + /** + * Gets random integer inside range or snap to min/max values. + */ + function randInt(min, max){ + min = min == null? MIN_INT : ~~min; + max = max == null? MAX_INT : ~~max; + // can't be max + 0.5 otherwise it will round up if `rand` + // returns `max` causing it to overflow range. + // -0.5 and + 0.49 are required to avoid bias caused by rounding + return Math.round( rand(min - 0.5, max + 0.499999999999) ); + } + + module.exports = randInt; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js new file mode 100644 index 00000000..5a9fed76 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/randSign.js @@ -0,0 +1,11 @@ +var random = require('./random'); + + /** + * Returns random sign (-1 or 1) + */ + function randomSign() { + return random() > 0.5? 1 : -1; + } + + module.exports = randomSign; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js new file mode 100644 index 00000000..670a3cc4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/random/random.js @@ -0,0 +1,18 @@ + + + /** + * Just a wrapper to Math.random. No methods inside mout/random should call + * Math.random() directly so we can inject the pseudo-random number + * generator if needed (ie. in case we need a seeded random or a better + * algorithm than the native one) + */ + function random(){ + return random.get(); + } + + // we expose the method so it can be swapped if needed + random.get = Math.random; + + module.exports = random; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js new file mode 100644 index 00000000..7bcc961b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array.js @@ -0,0 +1,46 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'append' : require('./array/append'), + 'collect' : require('./array/collect'), + 'combine' : require('./array/combine'), + 'compact' : require('./array/compact'), + 'contains' : require('./array/contains'), + 'difference' : require('./array/difference'), + 'every' : require('./array/every'), + 'filter' : require('./array/filter'), + 'find' : require('./array/find'), + 'findIndex' : require('./array/findIndex'), + 'flatten' : require('./array/flatten'), + 'forEach' : require('./array/forEach'), + 'indexOf' : require('./array/indexOf'), + 'insert' : require('./array/insert'), + 'intersection' : require('./array/intersection'), + 'invoke' : require('./array/invoke'), + 'join' : require('./array/join'), + 'lastIndexOf' : require('./array/lastIndexOf'), + 'map' : require('./array/map'), + 'max' : require('./array/max'), + 'min' : require('./array/min'), + 'pick' : require('./array/pick'), + 'pluck' : require('./array/pluck'), + 'range' : require('./array/range'), + 'reduce' : require('./array/reduce'), + 'reduceRight' : require('./array/reduceRight'), + 'reject' : require('./array/reject'), + 'remove' : require('./array/remove'), + 'removeAll' : require('./array/removeAll'), + 'shuffle' : require('./array/shuffle'), + 'some' : require('./array/some'), + 'sort' : require('./array/sort'), + 'split' : require('./array/split'), + 'toLookup' : require('./array/toLookup'), + 'union' : require('./array/union'), + 'unique' : require('./array/unique'), + 'xor' : require('./array/xor'), + 'zip' : require('./array/zip') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js new file mode 100644 index 00000000..549d8754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/append.js @@ -0,0 +1,21 @@ +define(function () { + + /** + * Appends an array to the end of another. + * The first array will be modified. + */ + function append(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var pad = arr1.length, + i = -1, + len = arr2.length; + while (++i < len) { + arr1[pad + i] = arr2[i]; + } + return arr1; + } + return append; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js new file mode 100644 index 00000000..8f60cda2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/collect.js @@ -0,0 +1,26 @@ +define(['./append', '../function/makeIterator_'], function (append, makeIterator) { + + /** + * Maps the items in the array and concatenates the result arrays. + */ + function collect(arr, callback, thisObj){ + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + var value = callback(arr[i], i, arr); + if (value != null) { + append(results, value); + } + } + + return results; + } + + return collect; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js new file mode 100644 index 00000000..22efb860 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/combine.js @@ -0,0 +1,22 @@ +define(['./indexOf'], function (indexOf) { + + /** + * Combines an array with all the items of another. + * Does not allow duplicates and is case and type sensitive. + */ + function combine(arr1, arr2) { + if (arr2 == null) { + return arr1; + } + + var i = -1, len = arr2.length; + while (++i < len) { + if (indexOf(arr1, arr2[i]) === -1) { + arr1.push(arr2[i]); + } + } + + return arr1; + } + return combine; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js new file mode 100644 index 00000000..02a81098 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/compact.js @@ -0,0 +1,13 @@ +define(['./filter'], function (filter) { + + /** + * Remove all null/undefined items from array. + */ + function compact(arr) { + return filter(arr, function(val){ + return (val != null); + }); + } + + return compact; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js new file mode 100644 index 00000000..fca4f7cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/contains.js @@ -0,0 +1,10 @@ +define(['./indexOf'], function (indexOf) { + + /** + * If array contains values. + */ + function contains(arr, val) { + return indexOf(arr, val) !== -1; + } + return contains; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js new file mode 100644 index 00000000..819bda3e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/difference.js @@ -0,0 +1,19 @@ +define(['./unique', './filter', './some', './contains'], function (unique, filter, some, contains) { + + + /** + * Return a new Array with elements that aren't present in the other Arrays. + */ + function difference(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return !some(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + return difference; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js new file mode 100644 index 00000000..78ba46d3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/every.js @@ -0,0 +1,27 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Array every + */ + function every(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (!callback(arr[i], i, arr) ) { + result = false; + break; + } + } + + return result; + } + + return every; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js new file mode 100644 index 00000000..52cf685a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/filter.js @@ -0,0 +1,26 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Array filter + */ + function filter(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + return filter; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js new file mode 100644 index 00000000..3957dcd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/find.js @@ -0,0 +1,13 @@ +define(['./findIndex'], function (findIndex) { + + /** + * Returns first item that matches criteria + */ + function find(arr, iterator, thisObj){ + var idx = findIndex(arr, iterator, thisObj); + return idx >= 0? arr[idx] : void(0); + } + + return find; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js new file mode 100644 index 00000000..59dfeeb9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/findIndex.js @@ -0,0 +1,23 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Returns the index of the first item that matches criteria + */ + function findIndex(arr, iterator, thisObj){ + iterator = makeIterator(iterator, thisObj); + if (arr == null) { + return -1; + } + + var i = -1, len = arr.length; + while (++i < len) { + if (iterator(arr[i], i, arr)) { + return i; + } + } + + return -1; + } + + return findIndex; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js new file mode 100644 index 00000000..42e87f43 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/flatten.js @@ -0,0 +1,42 @@ +define(['../lang/isArray', './append'], function (isArray, append) { + + /* + * Helper function to flatten to a destination array. + * Used to remove the need to create intermediate arrays while flattening. + */ + function flattenTo(arr, result, level) { + if (arr == null) { + return result; + } else if (level === 0) { + append(result, arr); + return result; + } + + var value, + i = -1, + len = arr.length; + while (++i < len) { + value = arr[i]; + if (isArray(value)) { + flattenTo(value, result, level - 1); + } else { + result.push(value); + } + } + return result; + } + + /** + * Recursively flattens an array. + * A new array containing all the elements is returned. + * If `shallow` is true, it will only flatten one level. + */ + function flatten(arr, level) { + level = level == null? -1 : level; + return flattenTo(arr, [], level); + } + + return flatten; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js new file mode 100644 index 00000000..0e045868 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/forEach.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Array forEach + */ + function forEach(arr, callback, thisObj) { + if (arr == null) { + return; + } + var i = -1, + len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback.call(thisObj, arr[i], i, arr) === false ) { + break; + } + } + } + + return forEach; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js new file mode 100644 index 00000000..0e75f99b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/indexOf.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Array.indexOf + */ + function indexOf(arr, item, fromIndex) { + fromIndex = fromIndex || 0; + if (arr == null) { + return -1; + } + + var len = arr.length, + i = fromIndex < 0 ? len + fromIndex : fromIndex; + while (i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[i] === item) { + return i; + } + + i++; + } + + return -1; + } + + return indexOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js new file mode 100644 index 00000000..d8d831f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/insert.js @@ -0,0 +1,14 @@ +define(['./difference', '../lang/toArray'], function (difference, toArray) { + + /** + * Insert item into array if not already present. + */ + function insert(arr, rest_items) { + var diff = difference(toArray(arguments).slice(1), arr); + if (diff.length) { + Array.prototype.push.apply(arr, diff); + } + return arr.length; + } + return insert; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js new file mode 100644 index 00000000..64e6ee97 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/intersection.js @@ -0,0 +1,20 @@ +define(['./unique', './filter', './every', './contains'], function (unique, filter, every, contains) { + + + /** + * Return a new Array with elements common to all Arrays. + * - based on underscore.js implementation + */ + function intersection(arr) { + var arrs = Array.prototype.slice.call(arguments, 1), + result = filter(unique(arr), function(needle){ + return every(arrs, function(haystack){ + return contains(haystack, needle); + }); + }); + return result; + } + + return intersection; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js new file mode 100644 index 00000000..a2e78b39 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/invoke.js @@ -0,0 +1,23 @@ +define(['./forEach'], function (forEach) { + + /** + * Call `methodName` on each item of the array passing custom arguments if + * needed. + */ + function invoke(arr, methodName, var_args){ + if (arr == null) { + return arr; + } + + var args = Array.prototype.slice.call(arguments, 2); + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + value[methodName].apply(value, args); + } + + return arr; + } + + return invoke; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js new file mode 100644 index 00000000..2c618d29 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/join.js @@ -0,0 +1,17 @@ +define(['./filter'], function(filter) { + + function isValidString(val) { + return (val != null && val !== ''); + } + + /** + * Joins strings with the specified separator inserted between each value. + * Null values and empty strings will be excluded. + */ + function join(items, separator) { + separator = separator || ''; + return filter(items, isValidString).join(separator); + } + + return join; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js new file mode 100644 index 00000000..931235f4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/lastIndexOf.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Array lastIndexOf + */ + function lastIndexOf(arr, item, fromIndex) { + if (arr == null) { + return -1; + } + + var len = arr.length; + fromIndex = (fromIndex == null || fromIndex >= len)? len - 1 : fromIndex; + fromIndex = (fromIndex < 0)? len + fromIndex : fromIndex; + + while (fromIndex >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if (arr[fromIndex] === item) { + return fromIndex; + } + fromIndex--; + } + + return -1; + } + + return lastIndexOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js new file mode 100644 index 00000000..1580b481 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/map.js @@ -0,0 +1,22 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Array map + */ + function map(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null){ + return results; + } + + var i = -1, len = arr.length; + while (++i < len) { + results[i] = callback(arr[i], i, arr); + } + + return results; + } + + return map; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js new file mode 100644 index 00000000..a7326c89 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/max.js @@ -0,0 +1,34 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Return maximum value inside array + */ + function max(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return Infinity; + } else if (arr.length && !iterator) { + return Math.max.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = -Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp > compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + return max; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js new file mode 100644 index 00000000..41644480 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/min.js @@ -0,0 +1,34 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * Return minimum value inside array + */ + function min(arr, iterator, thisObj){ + if (arr == null || !arr.length) { + return -Infinity; + } else if (arr.length && !iterator) { + return Math.min.apply(Math, arr); + } else { + iterator = makeIterator(iterator, thisObj); + var result, + compare = Infinity, + value, + temp; + + var i = -1, len = arr.length; + while (++i < len) { + value = arr[i]; + temp = iterator(value, i, arr); + if (temp < compare) { + compare = temp; + result = value; + } + } + + return result; + } + } + + return min; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js new file mode 100644 index 00000000..97d7f595 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pick.js @@ -0,0 +1,14 @@ +define(['../random/randInt'], function (randInt) { + + /** + * Remove a random item from the Array and return it + */ + function pick(arr){ + if (arr == null || !arr.length) return; + var idx = randInt(0, arr.length - 1); + return arr.splice(idx, 1)[0]; + } + + return pick; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js new file mode 100644 index 00000000..c908856e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/pluck.js @@ -0,0 +1,12 @@ +define(['./map'], function (map) { + + /** + * Extract a list of property values. + */ + function pluck(arr, propName){ + return map(arr, propName); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js new file mode 100644 index 00000000..148ebf96 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/range.js @@ -0,0 +1,27 @@ +define(['../math/countSteps'], function (countSteps) { + + /** + * Returns an Array of numbers inside range. + */ + function range(start, stop, step) { + if (stop == null) { + stop = start; + start = 0; + } + step = step || 1; + + var result = [], + nSteps = countSteps(stop - start, step), + i = start; + + while (i <= stop) { + result.push(i); + i += step; + } + + return result; + } + + return range; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js new file mode 100644 index 00000000..88aacfd5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduce.js @@ -0,0 +1,33 @@ +define(['./forEach'], function (forEach) { + + /** + * Array reduce + */ + function reduce(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2, + result = initVal; + + if (arr == null || !arr.length) { + if (!hasInit) { + throw new Error('reduce of empty array with no initial value'); + } else { + return initVal; + } + } + + var i = -1, len = arr.length; + while (++i < len) { + if (!hasInit) { + result = arr[i]; + hasInit = true; + } else { + result = fn(result, arr[i], i, arr); + } + } + + return result; + } + + return reduce; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js new file mode 100644 index 00000000..ddae0e7f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reduceRight.js @@ -0,0 +1,34 @@ +define(function () { + + /** + * Array reduceRight + */ + function reduceRight(arr, fn, initVal) { + // check for args.length since initVal might be "undefined" see #gh-57 + var hasInit = arguments.length > 2; + + if (arr == null || !arr.length) { + if (hasInit) { + return initVal; + } else { + throw new Error('reduce of empty array with no initial value'); + } + } + + var i = arr.length, result = initVal, value; + while (--i >= 0) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + value = arr[i]; + if (!hasInit) { + result = value; + hasInit = true; + } else { + result = fn(result, value, i, arr); + } + } + return result; + } + + return reduceRight; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js new file mode 100644 index 00000000..db105dde --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/reject.js @@ -0,0 +1,25 @@ +define(['./forEach', '../function/makeIterator_'], function(forEach, makeIterator) { + + /** + * Array reject + */ + function reject(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var results = []; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + value = arr[i]; + if (!callback(value, i, arr)) { + results.push(value); + } + } + + return results; + } + + return reject; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js new file mode 100644 index 00000000..dec9134d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/remove.js @@ -0,0 +1,13 @@ +define(['./indexOf'], function(indexOf){ + + /** + * Remove a single item from the array. + * (it won't remove duplicates, just a single item) + */ + function remove(arr, item){ + var idx = indexOf(arr, item); + if (idx !== -1) arr.splice(idx, 1); + } + + return remove; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js new file mode 100644 index 00000000..e81022b8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/removeAll.js @@ -0,0 +1,15 @@ +define(['./indexOf'], function(indexOf){ + + /** + * Remove all instances of an item from array. + */ + function removeAll(arr, item){ + var idx = indexOf(arr, item); + while (idx !== -1) { + arr.splice(idx, 1); + idx = indexOf(arr, item, idx); + } + } + + return removeAll; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js new file mode 100644 index 00000000..f5a60972 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/shuffle.js @@ -0,0 +1,28 @@ +define(['../random/randInt', './forEach'], function (randInt, forEach) { + + /** + * Shuffle array items. + */ + function shuffle(arr) { + var results = [], + rnd; + if (arr == null) { + return results; + } + + var i = -1, len = arr.length, value; + while (++i < len) { + if (!i) { + results[0] = arr[0]; + } else { + rnd = randInt(0, i); + results[i] = results[rnd]; + results[rnd] = arr[i]; + } + } + + return results; + } + + return shuffle; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js new file mode 100644 index 00000000..e46a9781 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/some.js @@ -0,0 +1,27 @@ +define(['../function/makeIterator_'], function (makeIterator) { + + /** + * Array some + */ + function some(arr, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length; + while (++i < len) { + // we iterate over sparse items since there is no way to make it + // work properly on IE 7-8. see #64 + if ( callback(arr[i], i, arr) ) { + result = true; + break; + } + } + + return result; + } + + return some; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js new file mode 100644 index 00000000..4c194042 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/sort.js @@ -0,0 +1,55 @@ +define(function () { + + /** + * Merge sort (http://en.wikipedia.org/wiki/Merge_sort) + */ + function mergeSort(arr, compareFn) { + if (arr == null) { + return []; + } else if (arr.length < 2) { + return arr; + } + + if (compareFn == null) { + compareFn = defaultCompare; + } + + var mid, left, right; + + mid = ~~(arr.length / 2); + left = mergeSort( arr.slice(0, mid), compareFn ); + right = mergeSort( arr.slice(mid, arr.length), compareFn ); + + return merge(left, right, compareFn); + } + + function defaultCompare(a, b) { + return a < b ? -1 : (a > b? 1 : 0); + } + + function merge(left, right, compareFn) { + var result = []; + + while (left.length && right.length) { + if (compareFn(left[0], right[0]) <= 0) { + // if 0 it should preserve same order (stable) + result.push(left.shift()); + } else { + result.push(right.shift()); + } + } + + if (left.length) { + result.push.apply(result, left); + } + + if (right.length) { + result.push.apply(result, right); + } + + return result; + } + + return mergeSort; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js new file mode 100644 index 00000000..a17275eb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/split.js @@ -0,0 +1,35 @@ +define(function() { + + /** + * Split array into a fixed number of segments. + */ + function split(array, segments) { + segments = segments || 2; + var results = []; + if (array == null) { + return results; + } + + var minLength = Math.floor(array.length / segments), + remainder = array.length % segments, + i = 0, + len = array.length, + segmentIndex = 0, + segmentLength; + + while (i < len) { + segmentLength = minLength; + if (segmentIndex < remainder) { + segmentLength++; + } + + results.push(array.slice(i, i + segmentLength)); + + segmentIndex++; + i += segmentLength; + } + + return results; + } + return split; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js new file mode 100644 index 00000000..aac8fd1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/toLookup.js @@ -0,0 +1,28 @@ +define(['../lang/isFunction'], function (isFunction) { + + /** + * Creates an object that holds a lookup for the objects in the array. + */ + function toLookup(arr, key) { + var result = {}; + if (arr == null) { + return result; + } + + var i = -1, len = arr.length, value; + if (isFunction(key)) { + while (++i < len) { + value = arr[i]; + result[key(value)] = value; + } + } else { + while (++i < len) { + value = arr[i]; + result[value[key]] = value; + } + } + + return result; + } + return toLookup; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js new file mode 100644 index 00000000..5f9922e5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/union.js @@ -0,0 +1,18 @@ +define(['./unique', './append'], function (unique, append) { + + /** + * Concat multiple arrays and remove duplicates + */ + function union(arrs) { + var results = []; + var i = -1, len = arguments.length; + while (++i < len) { + append(results, arguments[i]); + } + + return unique(results); + } + + return union; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js new file mode 100644 index 00000000..c4bd23b4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/unique.js @@ -0,0 +1,16 @@ +define(['./indexOf', './filter'], function(indexOf, filter){ + + /** + * @return {array} Array of unique items + */ + function unique(arr){ + return filter(arr, isUnique); + } + + function isUnique(item, i, arr){ + return indexOf(arr, item, i+1) === -1; + } + + return unique; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js new file mode 100644 index 00000000..7df89d9c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/xor.js @@ -0,0 +1,24 @@ +define(['./unique', './filter', './contains'], function (unique, filter, contains) { + + + /** + * Exclusive OR. Returns items that are present in a single array. + * - like ptyhon's `symmetric_difference` + */ + function xor(arr1, arr2) { + arr1 = unique(arr1); + arr2 = unique(arr2); + + var a1 = filter(arr1, function(item){ + return !contains(arr2, item); + }), + a2 = filter(arr2, function(item){ + return !contains(arr1, item); + }); + + return a1.concat(a2); + } + + return xor; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js new file mode 100644 index 00000000..374cd282 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/array/zip.js @@ -0,0 +1,27 @@ +define(['./max', './pluck', './map'], function (max, pluck, map) { + + function getLength(arr) { + return arr == null ? 0 : arr.length; + } + + /** + * Merges together the values of each of the arrays with the values at the + * corresponding position. + */ + function zip(arr){ + var len = arr ? max(map(arguments, getLength)) : 0, + results = [], + i = -1, + item; + while (++i < len) { + results.push(map(arguments, function(item) { + return item == null ? undefined : item[i]; + })); + } + + return results; + } + + return zip; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js new file mode 100644 index 00000000..386e6da9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection.js @@ -0,0 +1,22 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'contains' : require('./collection/contains'), + 'every' : require('./collection/every'), + 'filter' : require('./collection/filter'), + 'find' : require('./collection/find'), + 'forEach' : require('./collection/forEach'), + 'make_' : require('./collection/make_'), + 'map' : require('./collection/map'), + 'max' : require('./collection/max'), + 'min' : require('./collection/min'), + 'pluck' : require('./collection/pluck'), + 'reduce' : require('./collection/reduce'), + 'reject' : require('./collection/reject'), + 'size' : require('./collection/size'), + 'some' : require('./collection/some') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js new file mode 100644 index 00000000..192167e8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/contains.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/contains', '../object/contains'], function (make, arrContains, objContains) { + + /** + */ + return make(arrContains, objContains); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js new file mode 100644 index 00000000..6317f503 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/every.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/every', '../object/every'], function (make, arrEvery, objEvery) { + + /** + */ + return make(arrEvery, objEvery); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js new file mode 100644 index 00000000..4e7fadc8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/filter.js @@ -0,0 +1,22 @@ +define(['./forEach', '../function/makeIterator_'], function (forEach, makeIterator) { + + /** + * filter collection values, returns array. + */ + function filter(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + var results = []; + if (!list) { + return results; + } + forEach(list, function(value, index, list) { + if (iterator(value, index, list)) { + results[results.length] = value; + } + }); + return results; + } + + return filter; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js new file mode 100644 index 00000000..681f9414 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/find.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/find', '../object/find'], function(make, arrFind, objFind) { + + /** + * Find value that returns true on iterator check. + */ + return make(arrFind, objFind); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js new file mode 100644 index 00000000..3b39d3ed --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/forEach.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/forEach', '../object/forOwn'], function (make, arrForEach, objForEach) { + + /** + */ + return make(arrForEach, objForEach); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js new file mode 100644 index 00000000..312e0564 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/make_.js @@ -0,0 +1,19 @@ +define(function(){ + + /** + * internal method used to create other collection modules. + */ + function makeCollectionMethod(arrMethod, objMethod, defaultReturn) { + return function(){ + var args = Array.prototype.slice.call(arguments); + if (args[0] == null) { + return defaultReturn; + } + // array-like is treated as array + return (typeof args[0].length === 'number')? arrMethod.apply(null, args) : objMethod.apply(null, args); + }; + } + + return makeCollectionMethod; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js new file mode 100644 index 00000000..96e24987 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/map.js @@ -0,0 +1,20 @@ +define(['../lang/isObject', '../object/values', '../array/map', '../function/makeIterator_'], function (isObject, values, arrMap, makeIterator) { + + /** + * Map collection values, returns Array. + */ + function map(list, callback, thisObj) { + callback = makeIterator(callback, thisObj); + // list.length to check array-like object, if not array-like + // we simply map all the object values + if( isObject(list) && list.length == null ){ + list = values(list); + } + return arrMap(list, function (val, key, list) { + return callback(val, key, list); + }); + } + + return map; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js new file mode 100644 index 00000000..de9a6da5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/max.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/max', '../object/max'], function (make, arrMax, objMax) { + + /** + * Get maximum value inside collection + */ + return make(arrMax, objMax); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js new file mode 100644 index 00000000..f0c239a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/min.js @@ -0,0 +1,8 @@ +define(['./make_', '../array/min', '../object/min'], function (make, arrMin, objMin) { + + /** + * Get minimum value inside collection. + */ + return make(arrMin, objMin); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js new file mode 100644 index 00000000..ef784a7a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/pluck.js @@ -0,0 +1,14 @@ +define(['./map'], function (map) { + + /** + * Extract a list of property values. + */ + function pluck(list, key) { + return map(list, function(value) { + return value[key]; + }); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js new file mode 100644 index 00000000..bd05d43d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reduce.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/reduce', '../object/reduce'], function (make, arrReduce, objReduce) { + + /** + */ + return make(arrReduce, objReduce); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js new file mode 100644 index 00000000..581adfdc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/reject.js @@ -0,0 +1,15 @@ +define(['./filter', '../function/makeIterator_'], function (filter, makeIterator) { + + /** + * Inverse or collection/filter + */ + function reject(list, iterator, thisObj) { + iterator = makeIterator(iterator, thisObj); + return filter(list, function(value, index, list) { + return !iterator(value, index, list); + }, thisObj); + } + + return reject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js new file mode 100644 index 00000000..4e5ab419 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/size.js @@ -0,0 +1,18 @@ +define(['../lang/isArray', '../object/size'], function (isArray, objSize) { + + /** + * Get collection size + */ + function size(list) { + if (!list) { + return 0; + } + if (isArray(list)) { + return list.length; + } + return objSize(list); + } + + return size; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js new file mode 100644 index 00000000..c0aebee2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/collection/some.js @@ -0,0 +1,7 @@ +define(['./make_', '../array/some', '../object/some'], function (make, arrSome, objSome) { + + /** + */ + return make(arrSome, objSome); + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js new file mode 100644 index 00000000..4d449150 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date.js @@ -0,0 +1,21 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'dayOfTheYear' : require('./date/dayOfTheYear'), + 'diff' : require('./date/diff'), + 'i18n_' : require('./date/i18n_'), + 'isLeapYear' : require('./date/isLeapYear'), + 'isSame' : require('./date/isSame'), + 'parseIso' : require('./date/parseIso'), + 'startOf' : require('./date/startOf'), + 'strftime' : require('./date/strftime'), + 'timezoneAbbr' : require('./date/timezoneAbbr'), + 'timezoneOffset' : require('./date/timezoneOffset'), + 'totalDaysInMonth' : require('./date/totalDaysInMonth'), + 'totalDaysInYear' : require('./date/totalDaysInYear'), + 'weekOfTheYear' : require('./date/weekOfTheYear') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js new file mode 100644 index 00000000..dc77ae1b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/dayOfTheYear.js @@ -0,0 +1,13 @@ +define(['../lang/isDate'], function (isDate) { + + /** + * return the day of the year (1..366) + */ + function dayOfTheYear(date){ + return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - + Date.UTC(date.getFullYear(), 0, 1)) / 86400000 + 1; + } + + return dayOfTheYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js new file mode 100644 index 00000000..667165fe --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/diff.js @@ -0,0 +1,128 @@ +define(['./totalDaysInMonth', './totalDaysInYear', '../time/convert'], function(totalDaysInMonth, totalDaysInYear, convert){ + + /** + * calculate the difference between dates (range) + */ + function diff(start, end, unitName){ + // sort the dates to make it easier to process (specially year/month) + if (start > end) { + var swap = start; + start = end; + end = swap; + } + + var output; + + if (unitName === 'month') { + output = getMonthsDiff(start, end); + } else if (unitName === 'year'){ + output = getYearsDiff(start, end); + } else if (unitName != null) { + if (unitName === 'day') { + // ignore timezone difference because of daylight savings time + start = toUtc(start); + end = toUtc(end); + } + output = convert(end - start, 'ms', unitName); + } else { + output = end - start; + } + + return output; + } + + + function toUtc(d){ + // we ignore timezone differences on purpose because of daylight + // savings time, otherwise it would return fractional days/weeks even + // if a full day elapsed. eg: + // Wed Feb 12 2014 00:00:00 GMT-0200 (BRST) + // Sun Feb 16 2014 00:00:00 GMT-0300 (BRT) + // diff should be 4 days and not 4.041666666666667 + return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), + d.getHours(), d.getMinutes(), d.getSeconds(), + d.getMilliseconds()); + } + + + function getMonthsDiff(start, end){ + return getElapsedMonths(start, end) + + getElapsedYears(start, end) * 12 + + getFractionalMonth(start, end); + } + + + function getYearsDiff(start, end){ + var elapsedYears = getElapsedYears(start, end); + return elapsedYears + getFractionalYear(start, end, elapsedYears); + } + + + function getElapsedMonths(start, end){ + var monthDiff = end.getMonth() - start.getMonth(); + if (monthDiff < 0) { + monthDiff += 12; + } + // less than a full month + if (start.getDate() > end.getDate()) { + monthDiff -= 1; + } + return monthDiff; + } + + + function getElapsedYears(start, end){ + var yearDiff = end.getFullYear() - start.getFullYear(); + // less than a full year + if (start.getMonth() > end.getMonth()) { + yearDiff -= 1; + } + return yearDiff; + } + + + function getFractionalMonth(start, end){ + var fractionalDiff = 0; + var startDay = start.getDate(); + var endDay = end.getDate(); + + if (startDay !== endDay) { + var startTotalDays = totalDaysInMonth(start); + var endTotalDays = totalDaysInMonth(end); + var totalDays; + var daysElapsed; + + if (startDay > endDay) { + // eg: Jan 29 - Feb 27 (29 days elapsed but not a full month) + var baseDay = startTotalDays - startDay; + daysElapsed = endDay + baseDay; + // total days should be relative to 1st day of next month if + // startDay > endTotalDays + totalDays = (startDay > endTotalDays)? + endTotalDays + baseDay + 1 : startDay + baseDay; + } else { + // fractional is only based on endMonth eg: Jan 12 - Feb 18 + // (6 fractional days, 28 days until next full month) + daysElapsed = endDay - startDay; + totalDays = endTotalDays; + } + + fractionalDiff = daysElapsed / totalDays; + } + + return fractionalDiff; + } + + + function getFractionalYear(start, end, elapsedYears){ + var base = elapsedYears? + new Date(end.getFullYear(), start.getMonth(), start.getDate()) : + start; + var elapsedDays = diff(base, end, 'day'); + return elapsedDays / totalDaysInYear(end); + } + + + return diff; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js new file mode 100644 index 00000000..5e640c22 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/en-US.js @@ -0,0 +1,61 @@ +define(function(){ + // en-US (English, United States) + return { + "am" : "AM", + "pm" : "PM", + + "x": "%m/%d/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %I:%M:%S %p %Z", + + "months" : [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + + "months_abbr" : [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ], + + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + + "days_abbr" : [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ] + }; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js new file mode 100644 index 00000000..47256dd2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n/pt-BR.js @@ -0,0 +1,61 @@ +define(function(){ + // pt-BR (Brazillian Portuguese) + return { + "am" : "", + "pm" : "", + + "x": "%d/%m/%y", + "X": "%H:%M:%S", + "c": "%a %d %b %Y %H:%M:%S %Z", + + "months" : [ + "Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro" + ], + + "months_abbr" : [ + "Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez" + ], + + "days" : [ + "Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sábado" + ], + + "days_abbr" : [ + "Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sáb" + ] + }; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js new file mode 100644 index 00000000..c04ce885 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/i18n_.js @@ -0,0 +1,13 @@ +define(['../object/mixIn', './i18n/en-US'], function(mixIn, enUS){ + + // we also use mixIn to make sure we don't affect the original locale + var activeLocale = mixIn({}, enUS, { + // we expose a "set" method to allow overriding the global locale + set : function(localeData){ + mixIn(activeLocale, localeData); + } + }); + + return activeLocale; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js new file mode 100644 index 00000000..e400b43d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isLeapYear.js @@ -0,0 +1,15 @@ +define(['../lang/isDate'], function (isDate) { + + /** + * checks if it's a leap year + */ + function isLeapYear(fullYear){ + if (isDate(fullYear)) { + fullYear = fullYear.getFullYear(); + } + return fullYear % 400 === 0 || (fullYear % 100 !== 0 && fullYear % 4 === 0); + } + + return isLeapYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js new file mode 100644 index 00000000..f30531fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/isSame.js @@ -0,0 +1,16 @@ +define(['./startOf'], function (startOf) { + + /** + * Check if date is "same" with optional period + */ + function isSame(date1, date2, period){ + if (period) { + date1 = startOf(date1, period); + date2 = startOf(date2, period); + } + return Number(date1) === Number(date2); + } + + return isSame; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js new file mode 100644 index 00000000..9a2aacb0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/parseIso.js @@ -0,0 +1,146 @@ +define(['../array/some'], function (some) { + + var datePatterns = [ + /^([0-9]{4})$/, // YYYY + /^([0-9]{4})-([0-9]{2})$/, // YYYY-MM (YYYYMM not allowed) + /^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/ // YYYY-MM-DD or YYYYMMDD + ]; + var ORD_DATE = /^([0-9]{4})-?([0-9]{3})$/; // YYYY-DDD + + var timePatterns = [ + /^([0-9]{2}(?:\.[0-9]*)?)$/, // HH.hh + /^([0-9]{2}):?([0-9]{2}(?:\.[0-9]*)?)$/, // HH:MM.mm + /^([0-9]{2}):?([0-9]{2}):?([0-9]{2}(\.[0-9]*)?)$/ // HH:MM:SS.ss + ]; + + var DATE_TIME = /^(.+)T(.+)$/; + var TIME_ZONE = /^(.+)([+\-])([0-9]{2}):?([0-9]{2})$/; + + function matchAll(str, patterns) { + var match; + var found = some(patterns, function(pattern) { + return !!(match = pattern.exec(str)); + }); + + return found ? match : null; + } + + function getDate(year, month, day) { + var date = new Date(Date.UTC(year, month, day)); + + // Explicitly set year to avoid Date.UTC making dates < 100 relative to + // 1900 + date.setUTCFullYear(year); + + var valid = + date.getUTCFullYear() === year && + date.getUTCMonth() === month && + date.getUTCDate() === day; + return valid ? +date : NaN; + } + + function parseOrdinalDate(str) { + var match = ORD_DATE.exec(str); + if (match ) { + var year = +match[1], + day = +match[2], + date = new Date(Date.UTC(year, 0, day)); + + if (date.getUTCFullYear() === year) { + return +date; + } + } + + return NaN; + } + + function parseDate(str) { + var match, year, month, day; + + var match = matchAll(str, datePatterns); + if (match === null) { + // Ordinal dates are verified differently. + return parseOrdinalDate(str); + } + + year = (match[1] === void 0) ? 0 : +match[1]; + month = (match[2] === void 0) ? 0 : +match[2] - 1; + day = (match[3] === void 0) ? 1 : +match[3]; + + return getDate(year, month, day); + } + + function getTime(hr, min, sec) { + var valid = + (hr < 24 && hr >= 0 && + min < 60 && min >= 0 && + sec < 60 && min >= 0) || + (hr === 24 && min === 0 && sec === 0); + if (!valid) { + return NaN; + } + + return ((hr * 60 + min) * 60 + sec) * 1000; + } + + function parseOffset(str) { + var match; + if (str.charAt(str.length - 1) === 'Z') { + str = str.substring(0, str.length - 1); + } else if ((match = TIME_ZONE.exec(str))) { + var match = TIME_ZONE.exec(str); + if (match) { + var hours = +match[3], + minutes = (match[4] === void 0) ? 0 : +match[4], + offset = getTime(hours, minutes, 0); + + if (match[2] === '-') { + offset *= -1; + } + + return { offset: offset, time: match[1] }; + } + } + + // No time zone specified, assume UTC + return { offset: 0, time: str }; + } + + function parseTime(str) { + var match; + var offset = parseOffset(str); + + str = offset.time; + offset = offset.offset; + if (isNaN(offset)) { + return NaN; + } + + match = matchAll(str, timePatterns); + if (match === null) { + return NaN; + } + + var hours = (match[1] === void 0) ? 0 : +match[1], + minutes = (match[2] === void 0) ? 0 : +match[2], + seconds = (match[3] === void 0) ? 0 : +match[3]; + + return getTime(hours, minutes, seconds) - offset; + } + + /** + * Parse an ISO8601 formatted date string, and return a Date object. + */ + function parseISO8601(str){ + var match = DATE_TIME.exec(str); + if (!match) { + // No time specified + return parseDate(str); + } + + return parseDate(match[1]) + parseTime(match[2]); + } + + return parseISO8601; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js new file mode 100644 index 00000000..747f114d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/startOf.js @@ -0,0 +1,54 @@ +define(['../lang/clone'], function (clone) { + + /** + * get a new Date object representing start of period + */ + function startOf(date, period){ + date = clone(date); + + // intentionally removed "break" from switch since start of + // month/year/etc should also reset the following periods + switch (period) { + case 'year': + date.setMonth(0); + /* falls through */ + case 'month': + date.setDate(1); + /* falls through */ + case 'week': + case 'day': + date.setHours(0); + /* falls through */ + case 'hour': + date.setMinutes(0); + /* falls through */ + case 'minute': + date.setSeconds(0); + /* falls through */ + case 'second': + date.setMilliseconds(0); + break; + default: + throw new Error('"'+ period +'" is not a valid period'); + } + + // week is the only case that should reset the weekDay and maybe even + // overflow to previous month + if (period === 'week') { + var weekDay = date.getDay(); + var baseDate = date.getDate(); + if (weekDay) { + if (weekDay >= baseDate) { + //start of the week is on previous month + date.setDate(0); + } + date.setDate(date.getDate() - date.getDay()); + } + } + + return date; + } + + return startOf; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js new file mode 100644 index 00000000..dd782505 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/strftime.js @@ -0,0 +1,113 @@ +define(['../number/pad', './i18n_', './dayOfTheYear', './timezoneOffset', './timezoneAbbr', './weekOfTheYear'], function (pad, i18n, dayOfTheYear, timezoneOffset, timezoneAbbr, weekOfTheYear) { + + var _combinations = { + 'D': '%m/%d/%y', + 'F': '%Y-%m-%d', + 'r': '%I:%M:%S %p', + 'R': '%H:%M', + 'T': '%H:%M:%S', + 'x': 'locale', + 'X': 'locale', + 'c': 'locale' + }; + + + /** + * format date based on strftime format + */ + function strftime(date, format, localeData){ + localeData = localeData || i18n; + var reToken = /%([a-z%])/gi; + + function makeIterator(fn) { + return function(match, token){ + return fn(date, token, localeData); + }; + } + + return format + .replace(reToken, makeIterator(expandCombinations)) + .replace(reToken, makeIterator(convertToken)); + } + + + function expandCombinations(date, token, l10n){ + if (token in _combinations) { + var expanded = _combinations[token]; + return expanded === 'locale'? l10n[token] : expanded; + } else { + return '%'+ token; + } + } + + + function convertToken(date, token, l10n){ + switch (token){ + case 'a': + return l10n.days_abbr[date.getDay()]; + case 'A': + return l10n.days[date.getDay()]; + case 'h': + case 'b': + return l10n.months_abbr[date.getMonth()]; + case 'B': + return l10n.months[date.getMonth()]; + case 'C': + return pad(Math.floor(date.getFullYear() / 100), 2); + case 'd': + return pad(date.getDate(), 2); + case 'e': + return pad(date.getDate(), 2, ' '); + case 'H': + return pad(date.getHours(), 2); + case 'I': + return pad(date.getHours() % 12, 2); + case 'j': + return pad(dayOfTheYear(date), 3); + case 'L': + return pad(date.getMilliseconds(), 3); + case 'm': + return pad(date.getMonth() + 1, 2); + case 'M': + return pad(date.getMinutes(), 2); + case 'n': + return '\n'; + case 'p': + return date.getHours() >= 12? l10n.pm : l10n.am; + case 'P': + return convertToken(date, 'p', l10n).toLowerCase(); + case 's': + return date.getTime() / 1000; + case 'S': + return pad(date.getSeconds(), 2); + case 't': + return '\t'; + case 'u': + var day = date.getDay(); + return day === 0? 7 : day; + case 'U': + return pad(weekOfTheYear(date), 2); + case 'w': + return date.getDay(); + case 'W': + return pad(weekOfTheYear(date, 1), 2); + case 'y': + return pad(date.getFullYear() % 100, 2); + case 'Y': + return pad(date.getFullYear(), 4); + case 'z': + return timezoneOffset(date); + case 'Z': + return timezoneAbbr(date); + case '%': + return '%'; + default: + // keep unrecognized tokens + return '%'+ token; + } + } + + + return strftime; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js new file mode 100644 index 00000000..225a6856 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneAbbr.js @@ -0,0 +1,17 @@ +define(['./timezoneOffset'], function(timezoneOffset) { + + /** + * Abbreviated time zone name or similar information. + */ + function timezoneAbbr(date){ + // Date.toString gives different results depending on the + // browser/system so we fallback to timezone offset + // chrome: 'Mon Apr 08 2013 09:02:04 GMT-0300 (BRT)' + // IE: 'Mon Apr 8 09:02:04 UTC-0300 2013' + var tz = /\(([A-Z]{3,4})\)/.exec(date.toString()); + return tz? tz[1] : timezoneOffset(date); + } + + return timezoneAbbr; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js new file mode 100644 index 00000000..ca06705d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/timezoneOffset.js @@ -0,0 +1,16 @@ +define(['../number/pad'], function (pad) { + + /** + * time zone as hour and minute offset from UTC (e.g. +0900) + */ + function timezoneOffset(date){ + var offset = date.getTimezoneOffset(); + var abs = Math.abs(offset); + var h = pad(Math.floor(abs / 60), 2); + var m = pad(abs % 60, 2); + return (offset > 0? '-' : '+') + h + m; + } + + return timezoneOffset; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js new file mode 100644 index 00000000..98f7e9d1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInMonth.js @@ -0,0 +1,24 @@ +define(['../lang/isDate', './isLeapYear'], function (isDate, isLeapYear) { + + var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + /** + * returns the total amount of days in the month (considering leap years) + */ + function totalDaysInMonth(fullYear, monthIndex){ + if (isDate(fullYear)) { + var date = fullYear; + year = date.getFullYear(); + monthIndex = date.getMonth(); + } + + if (monthIndex === 1 && isLeapYear(fullYear)) { + return 29; + } else { + return DAYS_IN_MONTH[monthIndex]; + } + } + + return totalDaysInMonth; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js new file mode 100644 index 00000000..e9036b42 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/totalDaysInYear.js @@ -0,0 +1,13 @@ +define(['./isLeapYear'], function (isLeapYear) { + + /** + * return the amount of days in the year following the gregorian calendar + * and leap years + */ + function totalDaysInYear(fullYear){ + return isLeapYear(fullYear)? 366 : 365; + } + + return totalDaysInYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js new file mode 100644 index 00000000..8dabc458 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/date/weekOfTheYear.js @@ -0,0 +1,16 @@ +define(['./dayOfTheYear'], function (dayOfTheYear) { + + /** + * Return the week of the year based on given firstDayOfWeek + */ + function weekOfTheYear(date, firstDayOfWeek){ + firstDayOfWeek = firstDayOfWeek == null? 0 : firstDayOfWeek; + var doy = dayOfTheYear(date); + var dow = (7 + date.getDay() - firstDayOfWeek) % 7; + var relativeWeekDay = 6 - firstDayOfWeek - dow; + return Math.floor((doy + relativeWeekDay) / 7); + } + + return weekOfTheYear; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js new file mode 100644 index 00000000..23f4fd74 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function.js @@ -0,0 +1,18 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'bind' : require('./function/bind'), + 'compose' : require('./function/compose'), + 'debounce' : require('./function/debounce'), + 'func' : require('./function/func'), + 'makeIterator_' : require('./function/makeIterator_'), + 'partial' : require('./function/partial'), + 'prop' : require('./function/prop'), + 'series' : require('./function/series'), + 'throttle' : require('./function/throttle'), + 'timeout' : require('./function/timeout') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js new file mode 100644 index 00000000..09e5e20a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/bind.js @@ -0,0 +1,23 @@ +define(function(){ + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection. + * @param {Function} fn Function. + * @param {object} context Execution context. + * @param {rest} args Arguments (0...n arguments). + * @return {Function} Wrapped Function. + */ + function bind(fn, context, args){ + var argsArr = slice(arguments, 2); //curried args + return function(){ + return fn.apply(context, argsArr.concat(slice(arguments))); + }; + } + + return bind; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js new file mode 100644 index 00000000..d8b228fa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/compose.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Returns a function that composes multiple functions, passing results to + * each other. + */ + function compose() { + var fns = arguments; + return function(arg){ + // only cares about the first argument since the chain can only + // deal with a single return value anyway. It should start from + // the last fn. + var n = fns.length; + while (n--) { + arg = fns[n].call(this, arg); + } + return arg; + }; + } + + return compose; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js new file mode 100644 index 00000000..21644ecc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/debounce.js @@ -0,0 +1,29 @@ +define(function () { + + /** + * Debounce callback execution + */ + function debounce(fn, threshold, isAsap){ + var timeout, result; + function debounced(){ + var args = arguments, context = this; + function delayed(){ + if (! isAsap) { + result = fn.apply(context, args); + } + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (isAsap) { + result = fn.apply(context, args); + } + timeout = setTimeout(delayed, threshold); + return result; + } + return debounced; + } + + return debounce; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js new file mode 100644 index 00000000..b920e00e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/func.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Returns a function that call a method on the passed object + */ + function func(name){ + return function(obj){ + return obj[name](); + }; + } + + return func; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js new file mode 100644 index 00000000..deb6e137 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/makeIterator_.js @@ -0,0 +1,33 @@ +define(['./prop', '../object/deepMatches'], function(prop, deepMatches) { + + /** + * Converts argument into a valid iterator. + * Used internally on most array/object/collection methods that receives a + * callback/iterator providing a shortcut syntax. + */ + function makeIterator(src, thisObj){ + switch(typeof src) { + case 'object': + // typeof null == "object" + return (src != null)? function(val, key, target){ + return deepMatches(val, src); + } : src; + case 'string': + case 'number': + return prop(src); + case 'function': + if (typeof thisObj === 'undefined') { + return src; + } else { + return function(val, i, arr){ + return src.call(thisObj, val, i, arr); + }; + } + default: + return src; + } + } + + return makeIterator; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js new file mode 100644 index 00000000..ad730746 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/partial.js @@ -0,0 +1,19 @@ +define(function () { + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Creates a partially applied function. + */ + function partial(fn, var_args){ + var argsArr = slice(arguments, 1); //curried args + return function(){ + return fn.apply(this, argsArr.concat(slice(arguments))); + }; + } + + return partial; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js new file mode 100644 index 00000000..c9df78ca --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/prop.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Returns a function that gets a property of the passed object + */ + function prop(name){ + return function(obj){ + return obj[name]; + }; + } + + return prop; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js new file mode 100644 index 00000000..c8856a27 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/series.js @@ -0,0 +1,22 @@ +define(function () { + + /** + * Returns a function that will execute a list of functions in sequence + * passing the same arguments to each one. (useful for batch processing + * items during a forEach loop) + */ + function series(){ + var fns = arguments; + return function(){ + var i = 0, + n = fns.length; + while (i < n) { + fns[i].apply(this, arguments); + i += 1; + } + }; + } + + return series; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js new file mode 100644 index 00000000..8ce3929a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/throttle.js @@ -0,0 +1,32 @@ +define(['../time/now'], function (now) { + + /** + */ + function throttle(fn, delay){ + var context, timeout, result, args, + cur, diff, prev = 0; + function delayed(){ + prev = now(); + timeout = null; + result = fn.apply(context, args); + } + function throttled(){ + context = this; + args = arguments; + cur = now(); + diff = delay - (cur - prev); + if (diff <= 0) { + clearTimeout(timeout); + prev = cur; + result = fn.apply(context, args); + } else if (! timeout) { + timeout = setTimeout(delayed, diff); + } + return result; + } + return throttled; + } + + return throttle; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js new file mode 100644 index 00000000..15388bdd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/function/timeout.js @@ -0,0 +1,21 @@ +define(function () { + + function slice(arr, offset){ + return Array.prototype.slice.call(arr, offset || 0); + } + + /** + * Delays the call of a function within a given context. + */ + function timeout(fn, millis, context){ + + var args = slice(arguments, 3); + + return setTimeout(function() { + fn.apply(context, args); + }, millis); + } + + return timeout; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js new file mode 100644 index 00000000..744bb119 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/index.js @@ -0,0 +1,24 @@ +/**@license + * mout v0.6.0 | http://moutjs.com | MIT license + */ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'VERSION' : '0.6.0', + 'array' : require('./array'), + 'collection' : require('./collection'), + 'date' : require('./date'), + 'function' : require('./function'), + 'lang' : require('./lang'), + 'math' : require('./math'), + 'number' : require('./number'), + 'object' : require('./object'), + 'queryString' : require('./queryString'), + 'random' : require('./random'), + 'string' : require('./string'), + 'time' : require('./time') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js new file mode 100644 index 00000000..de16b597 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang.js @@ -0,0 +1,36 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'clone' : require('./lang/clone'), + 'createObject' : require('./lang/createObject'), + 'ctorApply' : require('./lang/ctorApply'), + 'deepClone' : require('./lang/deepClone'), + 'defaults' : require('./lang/defaults'), + 'inheritPrototype' : require('./lang/inheritPrototype'), + 'is' : require('./lang/is'), + 'isArguments' : require('./lang/isArguments'), + 'isArray' : require('./lang/isArray'), + 'isBoolean' : require('./lang/isBoolean'), + 'isDate' : require('./lang/isDate'), + 'isEmpty' : require('./lang/isEmpty'), + 'isFinite' : require('./lang/isFinite'), + 'isFunction' : require('./lang/isFunction'), + 'isInteger' : require('./lang/isInteger'), + 'isKind' : require('./lang/isKind'), + 'isNaN' : require('./lang/isNaN'), + 'isNull' : require('./lang/isNull'), + 'isNumber' : require('./lang/isNumber'), + 'isObject' : require('./lang/isObject'), + 'isPlainObject' : require('./lang/isPlainObject'), + 'isRegExp' : require('./lang/isRegExp'), + 'isString' : require('./lang/isString'), + 'isUndefined' : require('./lang/isUndefined'), + 'isnt' : require('./lang/isnt'), + 'kindOf' : require('./lang/kindOf'), + 'toArray' : require('./lang/toArray'), + 'toString' : require('./lang/toString') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js new file mode 100644 index 00000000..468489a1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/clone.js @@ -0,0 +1,47 @@ +define(['./kindOf', './isPlainObject', '../object/mixIn'], function (kindOf, isPlainObject, mixIn) { + + /** + * Clone native types. + */ + function clone(val){ + switch (kindOf(val)) { + case 'Object': + return cloneObject(val); + case 'Array': + return cloneArray(val); + case 'RegExp': + return cloneRegExp(val); + case 'Date': + return cloneDate(val); + default: + return val; + } + } + + function cloneObject(source) { + if (isPlainObject(source)) { + return mixIn({}, source); + } else { + return source; + } + } + + function cloneRegExp(r) { + var flags = ''; + flags += r.multiline ? 'm' : ''; + flags += r.global ? 'g' : ''; + flags += r.ignorecase ? 'i' : ''; + return new RegExp(r.source, flags); + } + + function cloneDate(date) { + return new Date(+date); + } + + function cloneArray(arr) { + return arr.slice(); + } + + return clone; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js new file mode 100644 index 00000000..f7661500 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/createObject.js @@ -0,0 +1,18 @@ +define(['../object/mixIn'], function(mixIn){ + + /** + * Create Object using prototypal inheritance and setting custom properties. + * - Mix between Douglas Crockford Prototypal Inheritance and the EcmaScript 5 `Object.create()` method. + * @param {object} parent Parent Object. + * @param {object} [props] Object properties. + * @return {object} Created object. + */ + function createObject(parent, props){ + function F(){} + F.prototype = parent; + return mixIn(new F(), props); + + } + return createObject; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js new file mode 100644 index 00000000..a9ac1c54 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/ctorApply.js @@ -0,0 +1,17 @@ +define(function () { + + function F(){} + + /** + * Do fn.apply on a constructor. + */ + function ctorApply(ctor, args) { + F.prototype = ctor.prototype; + var instance = new F(); + ctor.apply(instance, args); + return instance; + } + + return ctorApply; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js new file mode 100644 index 00000000..d45c10aa --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/deepClone.js @@ -0,0 +1,45 @@ +define(['./clone', '../object/forOwn', './kindOf', './isPlainObject'], function (clone, forOwn, kindOf, isPlainObject) { + + /** + * Recursively clone native types. + */ + function deepClone(val, instanceClone) { + switch ( kindOf(val) ) { + case 'Object': + return cloneObject(val, instanceClone); + case 'Array': + return cloneArray(val, instanceClone); + default: + return clone(val); + } + } + + function cloneObject(source, instanceClone) { + if (isPlainObject(source)) { + var out = {}; + forOwn(source, function(val, key) { + this[key] = deepClone(val, instanceClone); + }, out); + return out; + } else if (instanceClone) { + return instanceClone(source); + } else { + return source; + } + } + + function cloneArray(arr, instanceClone) { + var out = [], + i = -1, + n = arr.length, + val; + while (++i < n) { + out[i] = deepClone(arr[i], instanceClone); + } + return out; + } + + return deepClone; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js new file mode 100644 index 00000000..5156b1bb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/defaults.js @@ -0,0 +1,16 @@ +define(['./toArray', '../array/find'], function (toArray, find) { + + /** + * Return first non void argument + */ + function defaults(var_args){ + return find(toArray(arguments), nonVoid); + } + + function nonVoid(val){ + return val != null; + } + + return defaults; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js new file mode 100644 index 00000000..c1fda3a7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/inheritPrototype.js @@ -0,0 +1,16 @@ +define(['./createObject'], function(createObject){ + + /** + * Inherit prototype from another Object. + * - inspired by Nicholas Zackas Solution + * @param {object} child Child object + * @param {object} parent Parent Object + */ + function inheritPrototype(child, parent){ + var p = createObject(parent.prototype); + p.constructor = child; + child.prototype = p; + } + + return inheritPrototype; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js new file mode 100644 index 00000000..261a2077 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/is.js @@ -0,0 +1,23 @@ +define(function () { + + /** + * Check if both arguments are egal. + */ + function is(x, y){ + // implementation borrowed from harmony:egal spec + if (x === y) { + // 0 === -0, but they are not identical + return x !== 0 || 1 / x === 1 / y; + } + + // NaN !== NaN, but they are identical. + // NaNs are the only non-reflexive value, i.e., if x !== x, + // then x is a NaN. + // isNaN is broken: it converts its argument to number, so + // isNaN("foo") => true + return x !== x && y !== y; + } + + return is; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js new file mode 100644 index 00000000..f889ee8e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArguments.js @@ -0,0 +1,15 @@ +define(['./isKind'], function (isKind) { + + /** + */ + var isArgs = isKind(arguments, 'Arguments')? + function(val){ + return isKind(val, 'Arguments'); + } : + function(val){ + // Arguments is an Object on IE7 + return !!(val && Object.prototype.hasOwnProperty.call(val, 'callee')); + }; + + return isArgs; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js new file mode 100644 index 00000000..886e2aa5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isArray.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + var isArray = Array.isArray || function (val) { + return isKind(val, 'Array'); + }; + return isArray; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js new file mode 100644 index 00000000..1ca27a69 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isBoolean.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isBoolean(val) { + return isKind(val, 'Boolean'); + } + return isBoolean; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js new file mode 100644 index 00000000..2708d676 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isDate.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isDate(val) { + return isKind(val, 'Date'); + } + return isDate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js new file mode 100644 index 00000000..4cc3d2db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isEmpty.js @@ -0,0 +1,23 @@ +define(['../object/forOwn', './isArray'], function (forOwn, isArray) { + + function isEmpty(val){ + if (val == null) { + // typeof null == 'object' so we check it first + return false; + } else if ( typeof val === 'string' || isArray(val) ) { + return !val.length; + } else if ( typeof val === 'object' || typeof val === 'function' ) { + var result = true; + forOwn(val, function(){ + result = false; + return false; // break loop + }); + return result; + } else { + return false; + } + } + + return isEmpty; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js new file mode 100644 index 00000000..5a982f4b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFinite.js @@ -0,0 +1,21 @@ +define(['./isNumber'], function (isNumber) { + + var global = this; + + /** + * Check if value is finite + */ + function isFinite(val){ + var is = false; + if (typeof val === 'string' && val !== '') { + is = global.isFinite( parseFloat(val) ); + } else if (isNumber(val)){ + // need to use isNumber because of Number constructor + is = global.isFinite( val ); + } + return is; + } + + return isFinite; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js new file mode 100644 index 00000000..ff5df7f0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isFunction.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isFunction(val) { + return isKind(val, 'Function'); + } + return isFunction; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js new file mode 100644 index 00000000..1931f516 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isInteger.js @@ -0,0 +1,12 @@ +define(['./isNumber'], function (isNumber) { + + /** + * Check if value is an integer + */ + function isInteger(val){ + return isNumber(val) && (val % 1 === 0); + } + + return isInteger; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js new file mode 100644 index 00000000..6937a12f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isKind.js @@ -0,0 +1,9 @@ +define(['./kindOf'], function (kindOf) { + /** + * Check if value is from a specific "kind". + */ + function isKind(val, kind){ + return kindOf(val) === kind; + } + return isKind; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js new file mode 100644 index 00000000..9467a3c8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNaN.js @@ -0,0 +1,15 @@ +define(['./isNumber'], function (isNumber) { + + /** + * Check if value is NaN for realz + */ + function isNaN(val){ + // based on the fact that NaN !== NaN + // need to check if it's a number to avoid conflicts with host objects + // also need to coerce ToNumber to avoid edge case `new Number(NaN)` + return !isNumber(val) || val != +val; + } + + return isNaN; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js new file mode 100644 index 00000000..506e05ea --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNull.js @@ -0,0 +1,9 @@ +define(function () { + /** + */ + function isNull(val){ + return val === null; + } + return isNull; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js new file mode 100644 index 00000000..9a832c5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isNumber.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isNumber(val) { + return isKind(val, 'Number'); + } + return isNumber; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js new file mode 100644 index 00000000..0befb063 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isObject.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isObject(val) { + return isKind(val, 'Object'); + } + return isObject; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js new file mode 100644 index 00000000..6c5854fd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isPlainObject.js @@ -0,0 +1,14 @@ +define(function () { + + /** + * Checks if the value is created by the `Object` constructor. + */ + function isPlainObject(value) { + return (!!value + && typeof value === 'object' + && value.constructor === Object); + } + + return isPlainObject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js new file mode 100644 index 00000000..d78a03da --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isRegExp.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isRegExp(val) { + return isKind(val, 'RegExp'); + } + return isRegExp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js new file mode 100644 index 00000000..8a42fe01 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isString.js @@ -0,0 +1,8 @@ +define(['./isKind'], function (isKind) { + /** + */ + function isString(val) { + return isKind(val, 'String'); + } + return isString; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js new file mode 100644 index 00000000..c57b28eb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isUndefined.js @@ -0,0 +1,10 @@ +define(function () { + var UNDEF; + + /** + */ + function isUndef(val){ + return val === UNDEF; + } + return isUndef; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js new file mode 100644 index 00000000..d4336222 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/isnt.js @@ -0,0 +1,12 @@ +define(['./is'], function (is) { + + /** + * Check if both values are not identical/egal + */ + function isnt(x, y){ + return !is(x, y); + } + + return isnt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js new file mode 100644 index 00000000..97d21d15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/kindOf.js @@ -0,0 +1,20 @@ +define(function () { + + var _rKind = /^\[object (.*)\]$/, + _toString = Object.prototype.toString, + UNDEF; + + /** + * Gets the "kind" of value. (e.g. "String", "Number", etc) + */ + function kindOf(val) { + if (val === null) { + return 'Null'; + } else if (val === UNDEF) { + return 'Undefined'; + } else { + return _rKind.exec( _toString.call(val) )[1]; + } + } + return kindOf; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js new file mode 100644 index 00000000..552916f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toArray.js @@ -0,0 +1,31 @@ +define(['./kindOf'], function (kindOf) { + + var _win = this; + + /** + * Convert array-like object into array + */ + function toArray(val){ + var ret = [], + kind = kindOf(val), + n; + + if (val != null) { + if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) { + //string, regexp, function have .length but user probably just want + //to wrap value into an array.. + ret[ret.length] = val; + } else { + //window returns true on isObject in IE7 and may have length + //property. `typeof NodeList` returns `function` on Safari so + //we can't use it (#58) + n = val.length; + while (n--) { + ret[n] = val[n]; + } + } + } + return ret; + } + return toArray; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js new file mode 100644 index 00000000..c28b89af --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/lang/toString.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * Typecast a value to a String, using an empty string value for null or + * undefined. + */ + function toString(val){ + return val == null ? '' : val.toString(); + } + + return toString; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js new file mode 100644 index 00000000..e2ba8705 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math.js @@ -0,0 +1,19 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'ceil' : require('./math/ceil'), + 'clamp' : require('./math/clamp'), + 'countSteps' : require('./math/countSteps'), + 'floor' : require('./math/floor'), + 'inRange' : require('./math/inRange'), + 'isNear' : require('./math/isNear'), + 'lerp' : require('./math/lerp'), + 'loop' : require('./math/loop'), + 'map' : require('./math/map'), + 'norm' : require('./math/norm'), + 'round' : require('./math/round') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js new file mode 100644 index 00000000..d73b0581 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/ceil.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Round value up with a custom radix. + */ + function ceil(val, step){ + step = Math.abs(step || 1); + return Math.ceil(val / step) * step; + } + + return ceil; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js new file mode 100644 index 00000000..fb5a1484 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/clamp.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Clamps value inside range. + */ + function clamp(val, min, max){ + return val < min? min : (val > max? max : val); + } + return clamp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js new file mode 100644 index 00000000..0ecb32f6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/countSteps.js @@ -0,0 +1,16 @@ +define(function(){ + /** + * Count number of full steps. + */ + function countSteps(val, step, overflow){ + val = Math.floor(val / step); + + if (overflow) { + return val % overflow; + } + + return val; + } + + return countSteps; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js new file mode 100644 index 00000000..8a4456b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/floor.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Floor value to full steps. + */ + function floor(val, step){ + step = Math.abs(step || 1); + return Math.floor(val / step) * step; + } + return floor; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js new file mode 100644 index 00000000..0c890536 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/inRange.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Checks if value is inside the range. + */ + function inRange(val, min, max, threshold){ + threshold = threshold || 0; + return (val + threshold >= min && val - threshold <= max); + } + + return inRange; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js new file mode 100644 index 00000000..b308a0b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/isNear.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Check if value is close to target. + */ + function isNear(val, target, threshold){ + return (Math.abs(val - target) <= threshold); + } + return isNear; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js new file mode 100644 index 00000000..26b99d04 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/lerp.js @@ -0,0 +1,11 @@ +define(function(){ + /** + * Linear interpolation. + * IMPORTANT:will return `Infinity` if numbers overflow Number.MAX_VALUE + */ + function lerp(ratio, start, end){ + return start + (end - start) * ratio; + } + + return lerp; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js new file mode 100644 index 00000000..c735ecf6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/loop.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Loops value inside range. + */ + function loop(val, min, max){ + return val < min? max : (val > max? min : val); + } + + return loop; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js new file mode 100644 index 00000000..bf7dc5d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/map.js @@ -0,0 +1,10 @@ +define(['./lerp', './norm'], function(lerp, norm){ + /** + * Maps a number from one scale to another. + * @example map(3, 0, 4, -1, 1) -> 0.5 + */ + function map(val, min1, max1, min2, max2){ + return lerp( norm(val, min1, max1), min2, max2 ); + } + return map; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js new file mode 100644 index 00000000..fccae20e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/norm.js @@ -0,0 +1,9 @@ +define(function(){ + /** + * Gets normalized ratio of value inside range. + */ + function norm(val, min, max){ + return (val - min) / (max - min); + } + return norm; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js new file mode 100644 index 00000000..b43e4ac2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/math/round.js @@ -0,0 +1,12 @@ +define(function () { + /** + * Round number to a specific radix + */ + function round(value, radix){ + radix = radix || 1; // default round 1 + return Math.round(value / radix) * radix; + } + + return round; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js new file mode 100644 index 00000000..cb52fc75 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number.js @@ -0,0 +1,21 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'MAX_INT' : require('./number/MAX_INT'), + 'MAX_UINT' : require('./number/MAX_UINT'), + 'MIN_INT' : require('./number/MIN_INT'), + 'abbreviate' : require('./number/abbreviate'), + 'currencyFormat' : require('./number/currencyFormat'), + 'enforcePrecision' : require('./number/enforcePrecision'), + 'pad' : require('./number/pad'), + 'rol' : require('./number/rol'), + 'ror' : require('./number/ror'), + 'sign' : require('./number/sign'), + 'toInt' : require('./number/toInt'), + 'toUInt' : require('./number/toUInt'), + 'toUInt31' : require('./number/toUInt31') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js new file mode 100644 index 00000000..23a6e1a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit signed integer value. (2^31 - 1) + */ +define(function(){ + return 2147483647; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js new file mode 100644 index 00000000..a035096c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MAX_UINT.js @@ -0,0 +1,6 @@ +/** + * @constant Maximum 32-bit unsigned integet value (2^32 - 1) + */ +define(function(){ + return 4294967295; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js new file mode 100644 index 00000000..9b3e9781 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/MIN_INT.js @@ -0,0 +1,6 @@ +/** + * @constant Minimum 32-bit signed integer value (-2^31). + */ +define(function(){ + return -2147483648; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js new file mode 100644 index 00000000..7e7405ad --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/abbreviate.js @@ -0,0 +1,35 @@ +define(['./enforcePrecision'], function (enforcePrecision) { + + var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' + }; + + /** + * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) + */ + function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals != null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; + } + + return abbreviateNumber; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js new file mode 100644 index 00000000..dcde8fc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/currencyFormat.js @@ -0,0 +1,26 @@ +define(function () { + + /** + * Converts number into currency format + */ + function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) { + nDecimalDigits = nDecimalDigits == null? 2 : nDecimalDigits; + decimalSeparator = decimalSeparator == null? '.' : decimalSeparator; + thousandsSeparator = thousandsSeparator == null? ',' : thousandsSeparator; + + //can't use enforce precision since it returns a number and we are + //doing a RegExp over the string + var fixed = val.toFixed(nDecimalDigits), + //separate begin [$1], middle [$2] and decimal digits [$4] + parts = new RegExp('^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{'+ nDecimalDigits +'}))?$').exec( fixed ); + + if(parts){ //val >= 1000 || val <= -1000 + return parts[1] + parts[2].replace(/\d{3}/g, thousandsSeparator + '$&') + (parts[4] ? decimalSeparator + parts[4] : ''); + }else{ + return fixed.replace('.', decimalSeparator); + } + } + + return currencyFormat; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js new file mode 100644 index 00000000..84554d0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/enforcePrecision.js @@ -0,0 +1,13 @@ +define(function(){ + /** + * Enforce a specific amount of decimal digits and also fix floating + * point rounding issues. + * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> + * 0.61` + */ + function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); + } + return enforcePrecision; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js new file mode 100644 index 00000000..3b2c062a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/pad.js @@ -0,0 +1,12 @@ +define(['../string/lpad'], function(lpad){ + + /** + * Add padding zeros if n.length < minLength. + */ + function pad(n, minLength, char){ + return lpad(''+ n, minLength, char || '0'); + } + + return pad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js new file mode 100644 index 00000000..a148f444 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/rol.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Bitwise circular shift left + * http://en.wikipedia.org/wiki/Circular_shift + */ + function rol(val, shift){ + return (val << shift) | (val >> (32 - shift)); + } + return rol; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js new file mode 100644 index 00000000..b5c66f92 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/ror.js @@ -0,0 +1,10 @@ +define(function(){ + /** + * Bitwise circular shift right + * http://en.wikipedia.org/wiki/Circular_shift + */ + function ror(val, shift){ + return (val >> shift) | (val << (32 - shift)); + } + return ror; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js new file mode 100644 index 00000000..dfc131d5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/sign.js @@ -0,0 +1,15 @@ +define(function () { + + /** + * Get sign of the value. + */ + function sign(val) { + var num = Number(val); + if (num === 0) return num; // +0 and +0 === 0 + if (isNaN(num)) return num; // NaN + return num < 0? -1 : 1; + } + + return sign; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js new file mode 100644 index 00000000..1e9b4c0b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toInt.js @@ -0,0 +1,15 @@ +define(function(){ + + /** + * "Convert" value into an 32-bit integer. + * Works like `Math.floor` if val > 0 and `Math.ceil` if val < 0. + * IMPORTANT: val will wrap at 2^31 and -2^31. + * Perf tests: http://jsperf.com/vs-vs-parseint-bitwise-operators/7 + */ + function toInt(val){ + return ~~val; + } + + return toInt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js new file mode 100644 index 00000000..d5b25b2c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * "Convert" value into a 32-bit unsigned integer. + * IMPORTANT: Value will wrap at 2^32. + */ + function toUInt(val){ + return val >>> 0; + } + + return toUInt; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js new file mode 100644 index 00000000..9785a054 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/number/toUInt31.js @@ -0,0 +1,13 @@ +define(['./MAX_INT'], function(MAX_INT){ + + /** + * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign). + * IMPORTANT: value wil wrap at 2^31, if negative will return 0. + */ + function toUInt31(val){ + return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val); + } + + return toUInt31; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js new file mode 100644 index 00000000..343e7826 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object.js @@ -0,0 +1,42 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'bindAll' : require('./object/bindAll'), + 'contains' : require('./object/contains'), + 'deepEquals' : require('./object/deepEquals'), + 'deepFillIn' : require('./object/deepFillIn'), + 'deepMatches' : require('./object/deepMatches'), + 'deepMixIn' : require('./object/deepMixIn'), + 'equals' : require('./object/equals'), + 'every' : require('./object/every'), + 'fillIn' : require('./object/fillIn'), + 'filter' : require('./object/filter'), + 'find' : require('./object/find'), + 'forIn' : require('./object/forIn'), + 'forOwn' : require('./object/forOwn'), + 'functions' : require('./object/functions'), + 'get' : require('./object/get'), + 'has' : require('./object/has'), + 'hasOwn' : require('./object/hasOwn'), + 'keys' : require('./object/keys'), + 'map' : require('./object/map'), + 'matches' : require('./object/matches'), + 'max' : require('./object/max'), + 'merge' : require('./object/merge'), + 'min' : require('./object/min'), + 'mixIn' : require('./object/mixIn'), + 'namespace' : require('./object/namespace'), + 'pick' : require('./object/pick'), + 'pluck' : require('./object/pluck'), + 'reduce' : require('./object/reduce'), + 'reject' : require('./object/reject'), + 'set' : require('./object/set'), + 'size' : require('./object/size'), + 'some' : require('./object/some'), + 'unset' : require('./object/unset'), + 'values' : require('./object/values') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js new file mode 100644 index 00000000..b131ed15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/bindAll.js @@ -0,0 +1,16 @@ +define(['./functions', '../function/bind', '../array/forEach'], function (functions, bind, forEach) { + + /** + * Binds methods of the object to be run in it's own context. + */ + function bindAll(obj, rest_methodNames){ + var keys = arguments.length > 1? + Array.prototype.slice.call(arguments, 1) : functions(obj); + forEach(keys, function(key){ + obj[key] = bind(obj[key], obj); + }); + } + + return bindAll; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js new file mode 100644 index 00000000..297e8986 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/contains.js @@ -0,0 +1,13 @@ +define(['./some'], function (some) { + + /** + * Check if object contains value + */ + function contains(obj, needle) { + return some(obj, function(val) { + return (val === needle); + }); + } + return contains; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js new file mode 100644 index 00000000..8b7d5d15 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepEquals.js @@ -0,0 +1,26 @@ +define(['../lang/isObject', './equals'], function (isObject, equals) { + + function defaultCompare(a, b) { + return a === b; + } + + /** + * Recursively checks for same properties and values. + */ + function deepEquals(a, b, callback){ + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + function compare(a, b){ + return deepEquals(a, b, callback); + } + + return equals(a, b, compare); + } + + return deepEquals; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js new file mode 100644 index 00000000..84ba154a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepFillIn.js @@ -0,0 +1,31 @@ +define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { + + /** + * Deeply copy missing properties in the target from the defaults. + */ + function deepFillIn(target, defaults){ + var i = 0, + n = arguments.length, + obj; + + while(++i < n) { + obj = arguments[i]; + if (obj) { + forOwn(obj, function(newValue, key) { + var curValue = target[key]; + if (curValue == null) { + target[key] = newValue; + } else if (isPlainObject(curValue) + && isPlainObject(newValue)) { + deepFillIn(curValue, newValue); + } + }); + } + } + + return target; + } + + return deepFillIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js new file mode 100644 index 00000000..2eae6297 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMatches.js @@ -0,0 +1,54 @@ +define(['./forOwn', '../lang/isArray'], function(forOwn, isArray) { + + function containsMatch(array, pattern) { + var i = -1, length = array.length; + while (++i < length) { + if (deepMatches(array[i], pattern)) { + return true; + } + } + + return false; + } + + function matchArray(target, pattern) { + var i = -1, patternLength = pattern.length; + while (++i < patternLength) { + if (!containsMatch(target, pattern[i])) { + return false; + } + } + + return true; + } + + function matchObject(target, pattern) { + var result = true; + forOwn(pattern, function(val, key) { + if (!deepMatches(target[key], val)) { + // Return false to break out of forOwn early + return (result = false); + } + }); + + return result; + } + + /** + * Recursively check if the objects match. + */ + function deepMatches(target, pattern){ + if (target && typeof target === 'object') { + if (isArray(target) && isArray(pattern)) { + return matchArray(target, pattern); + } else { + return matchObject(target, pattern); + } + } else { + return target === pattern; + } + } + + return deepMatches; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js new file mode 100644 index 00000000..1b4178ef --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/deepMixIn.js @@ -0,0 +1,33 @@ +define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { + + /** + * Mixes objects into the target object, recursively mixing existing child + * objects. + */ + function deepMixIn(target, objects) { + var i = 0, + n = arguments.length, + obj; + + while(++i < n){ + obj = arguments[i]; + if (obj) { + forOwn(obj, copyProp, target); + } + } + + return target; + } + + function copyProp(val, key) { + var existing = this[key]; + if (isPlainObject(val) && isPlainObject(existing)) { + deepMixIn(existing, val); + } else { + this[key] = val; + } + } + + return deepMixIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js new file mode 100644 index 00000000..596cb952 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/equals.js @@ -0,0 +1,34 @@ +define(['./hasOwn', './every', '../lang/isObject'], function(hasOwn, every, isObject) { + + function defaultCompare(a, b) { + return a === b; + } + + // Makes a function to compare the object values from the specified compare + // operation callback. + function makeCompare(callback) { + return function(value, key) { + return hasOwn(this, key) && callback(value, this[key]); + }; + } + + function checkProperties(value, key) { + return hasOwn(this, key); + } + + /** + * Checks if two objects have the same keys and values. + */ + function equals(a, b, callback) { + callback = callback || defaultCompare; + + if (!isObject(a) || !isObject(b)) { + return callback(a, b); + } + + return (every(a, makeCompare(callback), b) && + every(b, checkProperties, a)); + } + + return equals; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js new file mode 100644 index 00000000..52983a5e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/every.js @@ -0,0 +1,22 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Object every + */ + function every(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = true; + forOwn(obj, function(val, key) { + // we consider any falsy values as "false" on purpose so shorthand + // syntax can be used to check property existence + if (!callback(val, key, obj)) { + result = false; + return false; // break + } + }); + return result; + } + + return every; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js new file mode 100644 index 00000000..0845d3c2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/fillIn.js @@ -0,0 +1,19 @@ +define(['../array/forEach', './forOwn'], function (forEach, forOwn) { + + /** + * Copy missing properties in the obj from the defaults. + */ + function fillIn(obj, var_defaults){ + forEach(Array.prototype.slice.call(arguments, 1), function(base){ + forOwn(base, function(val, key){ + if (obj[key] == null) { + obj[key] = val; + } + }); + }); + return obj; + } + + return fillIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js new file mode 100644 index 00000000..f213b915 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/filter.js @@ -0,0 +1,19 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Creates a new object with all the properties where the callback returns + * true. + */ + function filterValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + output[key] = value; + } + }); + + return output; + } + return filterValues; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js new file mode 100644 index 00000000..47e6b09d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/find.js @@ -0,0 +1,20 @@ +define(['./some', '../function/makeIterator_'], function(some, makeIterator) { + + /** + * Returns first item that matches criteria + */ + function find(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result; + some(obj, function(value, key, obj) { + if (callback(value, key, obj)) { + result = value; + return true; //break + } + }); + return result; + } + + return find; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js new file mode 100644 index 00000000..2058e9cb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forIn.js @@ -0,0 +1,62 @@ +define(function () { + + var _hasDontEnumBug, + _dontEnums; + + function checkDontEnum(){ + _dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ]; + + _hasDontEnumBug = true; + + for (var key in {'toString': null}) { + _hasDontEnumBug = false; + } + } + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forIn(obj, fn, thisObj){ + var key, i = 0; + // no need to check if argument is a real object that way we can use + // it for arrays, functions, date, etc. + + //post-pone check till needed + if (_hasDontEnumBug == null) checkDontEnum(); + + for (key in obj) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + + if (_hasDontEnumBug) { + while (key = _dontEnums[i++]) { + // since we aren't using hasOwn check we need to make sure the + // property was overwritten + if (obj[key] !== Object.prototype[key]) { + if (exec(fn, obj, key, thisObj) === false) { + break; + } + } + } + } + } + + function exec(fn, obj, key, thisObj){ + return fn.call(thisObj, obj[key], key, obj); + } + + return forIn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js new file mode 100644 index 00000000..b40cbaf1 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/forOwn.js @@ -0,0 +1,18 @@ +define(['./hasOwn', './forIn'], function (hasOwn, forIn) { + + /** + * Similar to Array/forEach but works over object properties and fixes Don't + * Enum bug on IE. + * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + */ + function forOwn(obj, fn, thisObj){ + forIn(obj, function(val, key){ + if (hasOwn(obj, key)) { + return fn.call(thisObj, obj[key], key, obj); + } + }); + } + + return forOwn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js new file mode 100644 index 00000000..60fee3dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/functions.js @@ -0,0 +1,18 @@ +define(['./forIn'], function (forIn) { + + /** + * return a list of all enumerable properties that have function values + */ + function functions(obj){ + var keys = []; + forIn(obj, function(val, key){ + if (typeof val === 'function'){ + keys.push(key); + } + }); + return keys.sort(); + } + + return functions; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js new file mode 100644 index 00000000..ca80b059 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/get.js @@ -0,0 +1,20 @@ +define(function () { + + /** + * get "nested" object property + */ + function get(obj, prop){ + var parts = prop.split('.'), + last = parts.pop(); + + while (prop = parts.shift()) { + obj = obj[prop]; + if (typeof obj !== 'object') return; + } + + return obj[last]; + } + + return get; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js new file mode 100644 index 00000000..cc29817f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/has.js @@ -0,0 +1,15 @@ +define(['./get'], function (get) { + + var UNDEF; + + /** + * Check if object has nested property. + */ + function has(obj, prop){ + return get(obj, prop) !== UNDEF; + } + + return has; + +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js new file mode 100644 index 00000000..5c53bcf2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/hasOwn.js @@ -0,0 +1,12 @@ +define(function () { + + /** + * Safer Object.hasOwnProperty + */ + function hasOwn(obj, prop){ + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + return hasOwn; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js new file mode 100644 index 00000000..ed7c4f91 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/keys.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object keys + */ + var keys = Object.keys || function (obj) { + var keys = []; + forOwn(obj, function(val, key){ + keys.push(key); + }); + return keys; + }; + + return keys; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js new file mode 100644 index 00000000..2958f6b0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/map.js @@ -0,0 +1,17 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Creates a new object where all the values are the result of calling + * `callback`. + */ + function mapValues(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var output = {}; + forOwn(obj, function(val, key, obj) { + output[key] = callback(val, key, obj); + }); + + return output; + } + return mapValues; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js new file mode 100644 index 00000000..73ff427c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/matches.js @@ -0,0 +1,20 @@ +define(['./forOwn'], function (forOwn) { + + /** + * checks if a object contains all given properties/values + */ + function matches(target, props){ + // can't use "object/every" because of circular dependency + var result = true; + forOwn(props, function(val, key){ + if (target[key] !== val) { + // break loop at first difference + return (result = false); + } + }); + return result; + } + + return matches; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js new file mode 100644 index 00000000..ef311dcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/max.js @@ -0,0 +1,11 @@ +define(['../array/max', './values'], function(arrMax, values) { + + /** + * Returns maximum value inside object. + */ + function max(obj, compareFn) { + return arrMax(values(obj), compareFn); + } + + return max; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js new file mode 100644 index 00000000..d7cfedec --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/merge.js @@ -0,0 +1,38 @@ +define(['./hasOwn', '../lang/deepClone', '../lang/isObject'], function (hasOwn, deepClone, isObject) { + + /** + * Deep merge objects. + */ + function merge() { + var i = 1, + key, val, obj, target; + + // make sure we don't modify source element and it's properties + // objects are passed by reference + target = deepClone( arguments[0] ); + + while (obj = arguments[i++]) { + for (key in obj) { + if ( ! hasOwn(obj, key) ) { + continue; + } + + val = obj[key]; + + if ( isObject(val) && isObject(target[key]) ){ + // inception, deep merge objects + target[key] = merge(target[key], val); + } else { + // make sure arrays, regexp, date, objects are cloned + target[key] = deepClone(val); + } + + } + } + + return target; + } + + return merge; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js new file mode 100644 index 00000000..9fb4c1a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/min.js @@ -0,0 +1,11 @@ +define(['../array/min', './values'], function(arrMin, values) { + + /** + * Returns minimum value inside object. + */ + function min(obj, iterator) { + return arrMin(values(obj), iterator); + } + + return min; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js new file mode 100644 index 00000000..6210b7e7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/mixIn.js @@ -0,0 +1,28 @@ +define(['./forOwn'], function(forOwn){ + + /** + * Combine properties from all the objects into first one. + * - This method affects target object in place, if you want to create a new Object pass an empty object as first param. + * @param {object} target Target Object + * @param {...object} objects Objects to be combined (0...n objects). + * @return {object} Target Object. + */ + function mixIn(target, objects){ + var i = 0, + n = arguments.length, + obj; + while(++i < n){ + obj = arguments[i]; + if (obj != null) { + forOwn(obj, copyProp, target); + } + } + return target; + } + + function copyProp(val, key){ + this[key] = val; + } + + return mixIn; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js new file mode 100644 index 00000000..7ed65db8 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/namespace.js @@ -0,0 +1,19 @@ +define(['../array/forEach'], function (forEach) { + + /** + * Create nested object if non-existent + */ + function namespace(obj, path){ + if (!path) return obj; + forEach(path.split('.'), function(key){ + if (!obj[key]) { + obj[key] = {}; + } + obj = obj[key]; + }); + return obj; + } + + return namespace; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js new file mode 100644 index 00000000..76e22bfc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pick.js @@ -0,0 +1,18 @@ +define(function(){ + + /** + * Return a copy of the object, filtered to only have values for the whitelisted keys. + */ + function pick(obj, var_keys){ + var keys = typeof arguments[1] !== 'string'? arguments[1] : Array.prototype.slice.call(arguments, 1), + out = {}, + i = 0, key; + while (key = keys[i++]) { + out[key] = obj[key]; + } + return out; + } + + return pick; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js new file mode 100644 index 00000000..d47744bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/pluck.js @@ -0,0 +1,12 @@ +define(['./map', '../function/prop'], function (map, prop) { + + /** + * Extract a list of property values. + */ + function pluck(obj, propName){ + return map(obj, prop(propName)); + } + + return pluck; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js new file mode 100644 index 00000000..d3a57788 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reduce.js @@ -0,0 +1,28 @@ +define(['./forOwn', './size'], function(forOwn, size) { + + /** + * Object reduce + */ + function reduce(obj, callback, memo, thisObj) { + var initial = arguments.length > 2; + + if (!size(obj) && !initial) { + throw new Error('reduce of empty object with no initial value'); + } + + forOwn(obj, function(value, key, list) { + if (!initial) { + memo = value; + initial = true; + } + else { + memo = callback.call(thisObj, memo, value, key, list); + } + }); + + return memo; + } + + return reduce; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js new file mode 100644 index 00000000..84296428 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/reject.js @@ -0,0 +1,15 @@ +define(['./filter', '../function/makeIterator_'], function (filter, makeIterator) { + + /** + * Object reject + */ + function reject(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + return filter(obj, function(value, index, obj) { + return !callback(value, index, obj); + }, thisObj); + } + + return reject; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js new file mode 100644 index 00000000..b8fa25a3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/set.js @@ -0,0 +1,17 @@ +define(['./namespace'], function (namespace) { + + /** + * set "nested" object property + */ + function set(obj, prop, val){ + var parts = (/^(.+)\.(.+)$/).exec(prop); + if (parts){ + namespace(obj, parts[1])[parts[2]] = val; + } else { + obj[prop] = val; + } + } + + return set; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js new file mode 100644 index 00000000..c6e377cf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/size.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object size + */ + function size(obj) { + var count = 0; + forOwn(obj, function(){ + count++; + }); + return count; + } + + return size; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js new file mode 100644 index 00000000..1bd6fdae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/some.js @@ -0,0 +1,20 @@ +define(['./forOwn', '../function/makeIterator_'], function(forOwn, makeIterator) { + + /** + * Object some + */ + function some(obj, callback, thisObj) { + callback = makeIterator(callback, thisObj); + var result = false; + forOwn(obj, function(val, key) { + if (callback(val, key, obj)) { + result = true; + return false; // break + } + }); + return result; + } + + return some; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js new file mode 100644 index 00000000..787fc19a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/unset.js @@ -0,0 +1,23 @@ +define(['./has'], function (has) { + + /** + * Unset object property. + */ + function unset(obj, prop){ + if (has(obj, prop)) { + var parts = prop.split('.'), + last = parts.pop(); + while (prop = parts.shift()) { + obj = obj[prop]; + } + return (delete obj[last]); + + } else { + // if property doesn't exist treat as deleted + return true; + } + } + + return unset; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js new file mode 100644 index 00000000..b311fd09 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/object/values.js @@ -0,0 +1,16 @@ +define(['./forOwn'], function (forOwn) { + + /** + * Get object values + */ + function values(obj) { + var vals = []; + forOwn(obj, function(val, key){ + vals.push(val); + }); + return vals; + } + + return values; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js new file mode 100644 index 00000000..44346127 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString.js @@ -0,0 +1,15 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'contains' : require('./queryString/contains'), + 'decode' : require('./queryString/decode'), + 'encode' : require('./queryString/encode'), + 'getParam' : require('./queryString/getParam'), + 'getQuery' : require('./queryString/getQuery'), + 'parse' : require('./queryString/parse'), + 'setParam' : require('./queryString/setParam') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js new file mode 100644 index 00000000..a6d11cce --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/contains.js @@ -0,0 +1,12 @@ +define(['./getQuery'], function (getQuery) { + + /** + * Checks if query string contains parameter. + */ + function contains(url, paramName) { + var regex = new RegExp('(\\?|&)'+ paramName +'=', 'g'); //matches `?param=` or `¶m=` + return regex.test(getQuery(url)); + } + + return contains; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js new file mode 100644 index 00000000..02bc1609 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/decode.js @@ -0,0 +1,20 @@ +define(['../string/typecast', '../lang/isString'], function (typecast, isString) { + + /** + * Decode query string into an object of keys => vals. + */ + function decode(queryStr, shouldTypecast) { + var queryArr = (queryStr || '').replace('?', '').split('&'), + n = queryArr.length, + obj = {}, + item, val; + while (n--) { + item = queryArr[n].split('='); + val = shouldTypecast === false? item[1] : typecast(item[1]); + obj[item[0]] = isString(val)? decodeURIComponent(val) : val; + } + return obj; + } + + return decode; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js new file mode 100644 index 00000000..bd72a5b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/encode.js @@ -0,0 +1,15 @@ +define(['../object/forOwn'], function (forOwn) { + + /** + * Encode object into a query string. + */ + function encode(obj){ + var query = []; + forOwn(obj, function(val, key){ + query.push( key +'='+ encodeURIComponent(val) ); + }); + return (query.length)? '?'+ query.join('&') : ''; + } + + return encode; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js new file mode 100644 index 00000000..d9813724 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getParam.js @@ -0,0 +1,14 @@ +define(['../string/typecast', './getQuery'], function (typecast, getQuery) { + + /** + * Get query parameter value. + */ + function getParam(url, param, shouldTypecast){ + var regexp = new RegExp('(\\?|&)'+ param + '=([^&]*)'), //matches `?param=value` or `¶m=value`, value = $2 + result = regexp.exec( getQuery(url) ), + val = (result && result[2])? result[2] : null; + return shouldTypecast === false? val : typecast(val); + } + + return getParam; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js new file mode 100644 index 00000000..aa3d99f3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/getQuery.js @@ -0,0 +1,13 @@ +define(function () { + + /** + * Gets full query as string with all special chars decoded. + */ + function getQuery(url) { + url = url.replace(/#.*/, ''); //removes hash (to avoid getting hash query) + var queryString = /\?[a-zA-Z0-9\=\&\%\$\-\_\.\+\!\*\'\(\)\,]+/.exec(url); //valid chars according to: http://www.ietf.org/rfc/rfc1738.txt + return (queryString)? decodeURIComponent(queryString[0]) : ''; + } + + return getQuery; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js new file mode 100644 index 00000000..ac153e3f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/parse.js @@ -0,0 +1,12 @@ +define(['./decode', './getQuery'], function (decode, getQuery) { + + /** + * Get query string, parses and decodes it. + */ + function parse(url, shouldTypecast) { + return decode(getQuery(url), shouldTypecast); + } + + return parse; +}); + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js new file mode 100644 index 00000000..97081aa7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/queryString/setParam.js @@ -0,0 +1,28 @@ +define(function () { + + /** + * Set query string parameter value + */ + function setParam(url, paramName, value){ + url = url || ''; + + var re = new RegExp('(\\?|&)'+ paramName +'=[^&]*' ); + var param = paramName +'='+ encodeURIComponent( value ); + + if ( re.test(url) ) { + return url.replace(re, '$1'+ param); + } else { + if (url.indexOf('?') === -1) { + url += '?'; + } + if (url.indexOf('=') !== -1) { + url += '&'; + } + return url + param; + } + + } + + return setParam; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js new file mode 100644 index 00000000..b2641ee3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random.js @@ -0,0 +1,16 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'choice' : require('./random/choice'), + 'guid' : require('./random/guid'), + 'rand' : require('./random/rand'), + 'randBit' : require('./random/randBit'), + 'randHex' : require('./random/randHex'), + 'randInt' : require('./random/randInt'), + 'randSign' : require('./random/randSign'), + 'random' : require('./random/random') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js new file mode 100644 index 00000000..0d0c38df --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/choice.js @@ -0,0 +1,14 @@ +define(['./randInt', '../lang/isArray'], function (randInt, isArray) { + + /** + * Returns a random element from the supplied arguments + * or from the array (if single argument is an array). + */ + function choice(items) { + var target = (arguments.length === 1 && isArray(items))? items : arguments; + return target[ randInt(0, target.length - 1) ]; + } + + return choice; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js new file mode 100644 index 00000000..82f3a2db --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/guid.js @@ -0,0 +1,23 @@ +define(['./randHex', './choice'], function (randHex, choice) { + + /** + * Returns pseudo-random guid (UUID v4) + * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random + * by default and sequences can be predicted in some cases. See the + * "random/random" documentation for more info about it and how to replace + * the default PRNG. + */ + function guid() { + return ( + randHex(8)+'-'+ + randHex(4)+'-'+ + // v4 UUID always contain "4" at this position to specify it was + // randomly generated + '4' + randHex(3) +'-'+ + // v4 UUID always contain chars [a,b,8,9] at this position + choice(8, 9, 'a', 'b') + randHex(3)+'-'+ + randHex(12) + ); + } + return guid; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js new file mode 100644 index 00000000..b8c231dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/rand.js @@ -0,0 +1,13 @@ +define(['./random', '../number/MIN_INT', '../number/MAX_INT'], function(random, MIN_INT, MAX_INT){ + + /** + * Returns random number inside range + */ + function rand(min, max){ + min = min == null? MIN_INT : min; + max = max == null? MAX_INT : max; + return min + (max - min) * random(); + } + + return rand; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js new file mode 100644 index 00000000..b3422d2d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randBit.js @@ -0,0 +1,11 @@ +define(['./random'], function (random) { + + /** + * Returns random bit (0 or 1) + */ + function randomBit() { + return random() > 0.5? 1 : 0; + } + + return randomBit; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js new file mode 100644 index 00000000..6e9bf1c5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randHex.js @@ -0,0 +1,19 @@ +define(['./choice'], function (choice) { + + var _chars = '0123456789abcdef'.split(''); + + /** + * Returns a random hexadecimal string + */ + function randHex(size){ + size = size && size > 0? size : 6; + var str = ''; + while (size--) { + str += choice(_chars); + } + return str; + } + + return randHex; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js new file mode 100644 index 00000000..1750e9de --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randInt.js @@ -0,0 +1,16 @@ +define(['../number/MIN_INT', '../number/MAX_INT', './rand'], function(MIN_INT, MAX_INT, rand){ + + /** + * Gets random integer inside range or snap to min/max values. + */ + function randInt(min, max){ + min = min == null? MIN_INT : ~~min; + max = max == null? MAX_INT : ~~max; + // can't be max + 0.5 otherwise it will round up if `rand` + // returns `max` causing it to overflow range. + // -0.5 and + 0.49 are required to avoid bias caused by rounding + return Math.round( rand(min - 0.5, max + 0.499999999999) ); + } + + return randInt; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js new file mode 100644 index 00000000..4141cdf6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/randSign.js @@ -0,0 +1,11 @@ +define(['./random'], function (random) { + + /** + * Returns random sign (-1 or 1) + */ + function randomSign() { + return random() > 0.5? 1 : -1; + } + + return randomSign; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js new file mode 100644 index 00000000..4270822e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/random/random.js @@ -0,0 +1,18 @@ +define(function () { + + /** + * Just a wrapper to Math.random. No methods inside mout/random should call + * Math.random() directly so we can inject the pseudo-random number + * generator if needed (ie. in case we need a seeded random or a better + * algorithm than the native one) + */ + function random(){ + return random.get(); + } + + // we expose the method so it can be swapped if needed + random.get = Math.random; + + return random; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js new file mode 100644 index 00000000..3f5fd804 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string.js @@ -0,0 +1,45 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'WHITE_SPACES' : require('./string/WHITE_SPACES'), + 'camelCase' : require('./string/camelCase'), + 'contains' : require('./string/contains'), + 'crop' : require('./string/crop'), + 'endsWith' : require('./string/endsWith'), + 'escapeHtml' : require('./string/escapeHtml'), + 'escapeRegExp' : require('./string/escapeRegExp'), + 'escapeUnicode' : require('./string/escapeUnicode'), + 'hyphenate' : require('./string/hyphenate'), + 'interpolate' : require('./string/interpolate'), + 'lowerCase' : require('./string/lowerCase'), + 'lpad' : require('./string/lpad'), + 'ltrim' : require('./string/ltrim'), + 'makePath' : require('./string/makePath'), + 'normalizeLineBreaks' : require('./string/normalizeLineBreaks'), + 'pascalCase' : require('./string/pascalCase'), + 'properCase' : require('./string/properCase'), + 'removeNonASCII' : require('./string/removeNonASCII'), + 'removeNonWord' : require('./string/removeNonWord'), + 'repeat' : require('./string/repeat'), + 'replace' : require('./string/replace'), + 'replaceAccents' : require('./string/replaceAccents'), + 'rpad' : require('./string/rpad'), + 'rtrim' : require('./string/rtrim'), + 'sentenceCase' : require('./string/sentenceCase'), + 'slugify' : require('./string/slugify'), + 'startsWith' : require('./string/startsWith'), + 'stripHtmlTags' : require('./string/stripHtmlTags'), + 'trim' : require('./string/trim'), + 'truncate' : require('./string/truncate'), + 'typecast' : require('./string/typecast'), + 'unCamelCase' : require('./string/unCamelCase'), + 'underscore' : require('./string/underscore'), + 'unescapeHtml' : require('./string/unescapeHtml'), + 'unescapeUnicode' : require('./string/unescapeUnicode'), + 'unhyphenate' : require('./string/unhyphenate'), + 'upperCase' : require('./string/upperCase') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js new file mode 100644 index 00000000..e830d86d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/WHITE_SPACES.js @@ -0,0 +1,12 @@ +define(function() { + /** + * Contains all Unicode white-spaces. Taken from + * http://en.wikipedia.org/wiki/Whitespace_character. + */ + return [ + ' ', '\n', '\r', '\t', '\f', '\v', '\u00A0', '\u1680', '\u180E', + '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', + '\u2007', '\u2008', '\u2009', '\u200A', '\u2028', '\u2029', '\u202F', + '\u205F', '\u3000' + ]; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js new file mode 100644 index 00000000..02e6c04d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/camelCase.js @@ -0,0 +1,16 @@ +define(['../lang/toString', './replaceAccents', './removeNonWord', './upperCase', './lowerCase'], function(toString, replaceAccents, removeNonWord, upperCase, lowerCase){ + /** + * Convert string to camelCase text. + */ + function camelCase(str){ + str = toString(str); + str = replaceAccents(str); + str = removeNonWord(str) + .replace(/[\-_]/g, ' ') //convert all hyphens and underscores to spaces + .replace(/\s[a-z]/g, upperCase) //convert first char of each word to UPPERCASE + .replace(/\s+/g, '') //remove spaces + .replace(/^[A-Z]/g, lowerCase); //convert first char to lowercase + return str; + } + return camelCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js new file mode 100644 index 00000000..825b5a5f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/contains.js @@ -0,0 +1,14 @@ +define(['../lang/toString'], function(toString) { + + /** + * Searches for a given substring + */ + function contains(str, substring, fromIndex){ + str = toString(str); + substring = toString(substring); + return str.indexOf(substring, fromIndex) !== -1; + } + + return contains; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js new file mode 100644 index 00000000..3c073f05 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/crop.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './truncate'], function (toString, truncate) { + /** + * Truncate string at full words. + */ + function crop(str, maxChars, append) { + str = toString(str); + return truncate(str, maxChars, append, true); + } + + return crop; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js new file mode 100644 index 00000000..31a73f20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/endsWith.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function(toString) { + /** + * Checks if string ends with specified suffix. + */ + function endsWith(str, suffix) { + str = toString(str); + suffix = toString(suffix); + + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + + return endsWith; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js new file mode 100644 index 00000000..de34b61b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeHtml.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function(toString) { + + /** + * Escapes a string for insertion into HTML. + */ + function escapeHtml(str){ + str = toString(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + return str; + } + + return escapeHtml; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js new file mode 100644 index 00000000..32facac0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeRegExp.js @@ -0,0 +1,15 @@ +define(['../lang/toString'], function(toString) { + + var ESCAPE_CHARS = /[\\.+*?\^$\[\](){}\/'#]/g; + + /** + * Escape RegExp string chars. + */ + function escapeRegExp(str) { + str = toString(str); + return str.replace(ESCAPE_CHARS,'\\$&'); + } + + return escapeRegExp; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js new file mode 100644 index 00000000..bd5e8c4c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/escapeUnicode.js @@ -0,0 +1,21 @@ +define(['../lang/toString'], function(toString) { + + /** + * Escape string into unicode sequences + */ + function escapeUnicode(str, shouldEscapePrintable){ + str = toString(str); + return str.replace(/[\s\S]/g, function(ch){ + // skip printable ASCII chars if we should not escape them + if (!shouldEscapePrintable && (/[\x20-\x7E]/).test(ch)) { + return ch; + } + // we use "000" and slice(-4) for brevity, need to pad zeros, + // unicode escape always have 4 chars after "\u" + return '\\u'+ ('000'+ ch.charCodeAt(0).toString(16)).slice(-4); + }); + } + + return escapeUnicode; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js new file mode 100644 index 00000000..679c405c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/hyphenate.js @@ -0,0 +1,12 @@ +define(['../lang/toString', './slugify', './unCamelCase'], function(toString, slugify, unCamelCase){ + /** + * Replaces spaces with hyphens, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function hyphenate(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "-"); + } + + return hyphenate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js new file mode 100644 index 00000000..ecb8ba80 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/interpolate.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function(toString) { + + var stache = /\{\{(\w+)\}\}/g; //mustache-like + + /** + * String interpolation + */ + function interpolate(template, replacements, syntax){ + template = toString(template); + var replaceFn = function(match, prop){ + return (prop in replacements)? toString(replacements[prop]) : ''; + }; + return template.replace(syntax || stache, replaceFn); + } + + return interpolate; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js new file mode 100644 index 00000000..b045d69c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lowerCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * "Safer" String.toLowerCase() + */ + function lowerCase(str){ + str = toString(str); + return str.toLowerCase(); + } + + return lowerCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js new file mode 100644 index 00000000..ea4f5fbf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/lpad.js @@ -0,0 +1,16 @@ +define(['../lang/toString', './repeat'], function(toString, repeat) { + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function lpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + + return ((str.length < minLen) + ? repeat(ch, minLen - str.length) + str : str); + } + + return lpad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js new file mode 100644 index 00000000..477df953 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/ltrim.js @@ -0,0 +1,33 @@ +define(['../lang/toString', './WHITE_SPACES'], function(toString, WHITE_SPACES){ + /** + * Remove chars from beginning of string. + */ + function ltrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var start = 0, + len = str.length, + charLen = chars.length, + found = true, + i, c; + + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + + return (start >= len) ? '' : str.substr(start, len); + } + + return ltrim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js new file mode 100644 index 00000000..7aa7baba --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/makePath.js @@ -0,0 +1,13 @@ +define(['../array/join'], function(join){ + + /** + * Group arguments as path segments, if any of the args is `null` or an + * empty string it will be ignored from resulting path. + */ + function makePath(var_args){ + var result = join(Array.prototype.slice.call(arguments), '/'); + return result.replace(/\/{2,}/g, '/'); + } + + return makePath; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js new file mode 100644 index 00000000..44e4194f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/normalizeLineBreaks.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function (toString) { + + /** + * Convert line-breaks from DOS/MAC to a single standard (UNIX by default) + */ + function normalizeLineBreaks(str, lineEnd) { + str = toString(str); + lineEnd = lineEnd || '\n'; + + return str + .replace(/\r\n/g, lineEnd) // DOS + .replace(/\r/g, lineEnd) // Mac + .replace(/\n/g, lineEnd); // Unix + } + + return normalizeLineBreaks; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js new file mode 100644 index 00000000..ead9ead4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/pascalCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './camelCase', './upperCase'], function(toString, camelCase, upperCase){ + /** + * camelCase + UPPERCASE first char + */ + function pascalCase(str){ + str = toString(str); + return camelCase(str).replace(/^[a-z]/, upperCase); + } + + return pascalCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js new file mode 100644 index 00000000..2987b507 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/properCase.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './lowerCase', './upperCase'], function(toString, lowerCase, upperCase){ + /** + * UPPERCASE first char of each word. + */ + function properCase(str){ + str = toString(str); + return lowerCase(str).replace(/^\w|\s\w/g, upperCase); + } + + return properCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js new file mode 100644 index 00000000..4905869d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonASCII.js @@ -0,0 +1,14 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove non-printable ASCII chars + */ + function removeNonASCII(str){ + str = toString(str); + + // Matches non-printable ASCII chars - + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + return str.replace(/[^\x20-\x7E]/g, ''); + } + + return removeNonASCII; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js new file mode 100644 index 00000000..2b1a2040 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/removeNonWord.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove non-word chars. + */ + function removeNonWord(str){ + str = toString(str); + return str.replace(/[^0-9a-zA-Z\xC0-\xFF \-_]/g, ''); + } + + return removeNonWord; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js new file mode 100644 index 00000000..02f5659f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/repeat.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function(toString){ + + /** + * Repeat string n times + */ + function repeat(str, n){ + str = toString(str); + return (new Array(n + 1)).join(str); + } + + return repeat; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js new file mode 100644 index 00000000..8b762fdc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replace.js @@ -0,0 +1,32 @@ +define(['../lang/toString', '../lang/toArray'], function (toString, toArray) { + + /** + * Replace string(s) with the replacement(s) in the source. + */ + function replace(str, search, replacements) { + str = toString(str); + search = toArray(search); + replacements = toArray(replacements); + + var searchLength = search.length, + replacementsLength = replacements.length; + + if (replacementsLength !== 1 && searchLength !== replacementsLength) { + throw new Error('Unequal number of searches and replacements'); + } + + var i = -1; + while (++i < searchLength) { + // Use the first replacement for all searches if only one + // replacement is provided + str = str.replace( + search[i], + replacements[(replacementsLength === 1) ? 0 : i]); + } + + return str; + } + + return replace; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js new file mode 100644 index 00000000..3a63f55a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/replaceAccents.js @@ -0,0 +1,36 @@ +define(['../lang/toString'], function(toString){ + /** + * Replaces all accented chars with regular ones + */ + function replaceAccents(str){ + str = toString(str); + + // verifies if the String has accents and replace them + if (str.search(/[\xC0-\xFF]/g) > -1) { + str = str + .replace(/[\xC0-\xC5]/g, "A") + .replace(/[\xC6]/g, "AE") + .replace(/[\xC7]/g, "C") + .replace(/[\xC8-\xCB]/g, "E") + .replace(/[\xCC-\xCF]/g, "I") + .replace(/[\xD0]/g, "D") + .replace(/[\xD1]/g, "N") + .replace(/[\xD2-\xD6\xD8]/g, "O") + .replace(/[\xD9-\xDC]/g, "U") + .replace(/[\xDD]/g, "Y") + .replace(/[\xDE]/g, "P") + .replace(/[\xE0-\xE5]/g, "a") + .replace(/[\xE6]/g, "ae") + .replace(/[\xE7]/g, "c") + .replace(/[\xE8-\xEB]/g, "e") + .replace(/[\xEC-\xEF]/g, "i") + .replace(/[\xF1]/g, "n") + .replace(/[\xF2-\xF6\xF8]/g, "o") + .replace(/[\xF9-\xFC]/g, "u") + .replace(/[\xFE]/g, "p") + .replace(/[\xFD\xFF]/g, "y"); + } + return str; + } + return replaceAccents; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js new file mode 100644 index 00000000..2efd9c88 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rpad.js @@ -0,0 +1,14 @@ +define(['../lang/toString', './repeat'], function (toString, repeat) { + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function rpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + return (str.length < minLen)? str + repeat(ch, minLen - str.length) : str; + } + + return rpad; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js new file mode 100644 index 00000000..a4cc282d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/rtrim.js @@ -0,0 +1,32 @@ +define(['../lang/toString', './WHITE_SPACES'], function(toString, WHITE_SPACES){ + /** + * Remove chars from end of string. + */ + function rtrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var end = str.length - 1, + charLen = chars.length, + found = true, + i, c; + + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + + return (end >= 0) ? str.substring(0, end + 1) : ''; + } + + return rtrim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js new file mode 100644 index 00000000..cfe45af5 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/sentenceCase.js @@ -0,0 +1,13 @@ +define(['../lang/toString', './lowerCase', './upperCase'], function(toString, lowerCase, upperCase){ + /** + * UPPERCASE first char of each sentence and lowercase other chars. + */ + function sentenceCase(str){ + str = toString(str); + + // Replace first char of each sentence (new line or after '.\s+') to + // UPPERCASE + return lowerCase(str).replace(/(^\w)|\.\s+(\w)/gm, upperCase); + } + return sentenceCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js new file mode 100644 index 00000000..c6d68c7e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/slugify.js @@ -0,0 +1,21 @@ +define(['../lang/toString', './replaceAccents', './removeNonWord', './trim'], function(toString, replaceAccents, removeNonWord, trim){ + /** + * Convert to lower case, remove accents, remove non-word chars and + * replace spaces with the specified delimeter. + * Does not split camelCase text. + */ + function slugify(str, delimeter){ + str = toString(str); + + if (delimeter == null) { + delimeter = "-"; + } + str = replaceAccents(str); + str = removeNonWord(str); + str = trim(str) //should come after removeNonWord + .replace(/ +/g, delimeter) //replace spaces with delimeter + .toLowerCase(); + return str; + } + return slugify; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js new file mode 100644 index 00000000..88ae5453 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/startsWith.js @@ -0,0 +1,13 @@ +define(['../lang/toString'], function (toString) { + /** + * Checks if string starts with specified prefix. + */ + function startsWith(str, prefix) { + str = toString(str); + prefix = toString(prefix); + + return str.indexOf(prefix) === 0; + } + + return startsWith; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js new file mode 100644 index 00000000..e8da956d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/stripHtmlTags.js @@ -0,0 +1,11 @@ +define(['../lang/toString'], function(toString){ + /** + * Remove HTML tags from string. + */ + function stripHtmlTags(str){ + str = toString(str); + + return str.replace(/<[^>]*>/g, ''); + } + return stripHtmlTags; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js new file mode 100644 index 00000000..55526041 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/trim.js @@ -0,0 +1,12 @@ +define(['../lang/toString', './WHITE_SPACES', './ltrim', './rtrim'], function(toString, WHITE_SPACES, ltrim, rtrim){ + /** + * Remove white-spaces from beginning and end of string. + */ + function trim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + return ltrim(rtrim(str, chars), chars); + } + + return trim; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js new file mode 100644 index 00000000..34000d9f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/truncate.js @@ -0,0 +1,20 @@ +define(['../lang/toString', './trim'], function(toString, trim){ + /** + * Limit number of chars. + */ + function truncate(str, maxChars, append, onlyFullWords){ + str = toString(str); + append = append || '...'; + maxChars = onlyFullWords? maxChars + 1 : maxChars; + + str = trim(str); + if(str.length <= maxChars){ + return str; + } + str = str.substr(0, maxChars - append.length); + //crop at last space or remove trailing whitespace + str = onlyFullWords? str.substr(0, str.lastIndexOf(' ')) : trim(str); + return str + append; + } + return truncate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js new file mode 100644 index 00000000..a7c83153 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/typecast.js @@ -0,0 +1,29 @@ +define(function () { + + var UNDEF; + + /** + * Parses string and convert it into a native value. + */ + function typecast(val) { + var r; + if ( val === null || val === 'null' ) { + r = null; + } else if ( val === 'true' ) { + r = true; + } else if ( val === 'false' ) { + r = false; + } else if ( val === UNDEF || val === 'undefined' ) { + r = UNDEF; + } else if ( val === '' || isNaN(val) ) { + //isNaN('') returns false + r = val; + } else { + //parseFloat(null || '') returns NaN + r = parseFloat(val); + } + return r; + } + + return typecast; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js new file mode 100644 index 00000000..eeef39b6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unCamelCase.js @@ -0,0 +1,23 @@ +define(['../lang/toString'], function(toString){ + + var CAMEL_CASE_BORDER = /([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g; + + /** + * Add space between camelCase text. + */ + function unCamelCase(str, delimiter){ + if (delimiter == null) { + delimiter = ' '; + } + + function join(str, c1, c2) { + return c1 + delimiter + c2; + } + + str = toString(str); + str = str.replace(CAMEL_CASE_BORDER, join); + str = str.toLowerCase(); //add space between camelCase text + return str; + } + return unCamelCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js new file mode 100644 index 00000000..75dd4649 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/underscore.js @@ -0,0 +1,11 @@ +define(['../lang/toString', './slugify', './unCamelCase'], function(toString, slugify, unCamelCase){ + /** + * Replaces spaces with underscores, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function underscore(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "_"); + } + return underscore; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js new file mode 100644 index 00000000..173c69c2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeHtml.js @@ -0,0 +1,18 @@ +define(['../lang/toString'], function (toString) { + + /** + * Unescapes HTML special chars + */ + function unescapeHtml(str){ + str = toString(str) + .replace(/&/g , '&') + .replace(/</g , '<') + .replace(/>/g , '>') + .replace(/'/g , "'") + .replace(/"/g, '"'); + return str; + } + + return unescapeHtml; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js new file mode 100644 index 00000000..d4a7ba1d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unescapeUnicode.js @@ -0,0 +1,16 @@ +define(['../lang/toString'], function(toString) { + + /** + * Unescape unicode char sequences + */ + function unescapeUnicode(str){ + str = toString(str); + return str.replace(/\\u[0-9a-f]{4}/g, function(ch){ + var code = parseInt(ch.slice(2), 16); + return String.fromCharCode(code); + }); + } + + return unescapeUnicode; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js new file mode 100644 index 00000000..6ac2fa4c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/unhyphenate.js @@ -0,0 +1,10 @@ +define(['../lang/toString'], function(toString){ + /** + * Replaces hyphens with spaces. (only hyphens between word chars) + */ + function unhyphenate(str){ + str = toString(str); + return str.replace(/(\w)(-)(\w)/g, '$1 $3'); + } + return unhyphenate; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js new file mode 100644 index 00000000..8b2073e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/string/upperCase.js @@ -0,0 +1,10 @@ +define(['../lang/toString'], function(toString){ + /** + * "Safer" String.toUpperCase() + */ + function upperCase(str){ + str = toString(str); + return str.toUpperCase(); + } + return upperCase; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js new file mode 100644 index 00000000..67c90685 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time.js @@ -0,0 +1,12 @@ +define(function(require){ + +//automatically generated, do not edit! +//run `node build` instead +return { + 'convert' : require('./time/convert'), + 'now' : require('./time/now'), + 'parseMs' : require('./time/parseMs'), + 'toTimeString' : require('./time/toTimeString') +}; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js new file mode 100644 index 00000000..2de0cf2e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/convert.js @@ -0,0 +1,41 @@ +define(function () { + + /** + * convert time into another unit + */ + function convert(val, sourceUnitName, destinationUnitName){ + destinationUnitName = destinationUnitName || 'ms'; + return (val * getUnit(sourceUnitName)) / getUnit(destinationUnitName); + } + + + //TODO: maybe extract to a separate module + function getUnit(unitName){ + switch(unitName){ + case 'ms': + case 'millisecond': + return 1; + case 's': + case 'second': + return 1000; + case 'm': + case 'minute': + return 60000; + case 'h': + case 'hour': + return 3600000; + case 'd': + case 'day': + return 86400000; + case 'w': + case 'week': + return 604800000; + default: + throw new Error('"'+ unitName + '" is not a valid unit'); + } + } + + + return convert; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js new file mode 100644 index 00000000..a3a38bcb --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/now.js @@ -0,0 +1,12 @@ +define(function () { + + /** + * Get current time in miliseconds + */ + var now = (typeof Date.now === 'function')? Date.now : function(){ + return +(new Date()); + }; + + return now; + +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js new file mode 100644 index 00000000..964929ae --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/parseMs.js @@ -0,0 +1,17 @@ +define(['../math/countSteps'], function(countSteps){ + + /** + * Parse timestamp into an object. + */ + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + return parseMs; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js new file mode 100644 index 00000000..edf18218 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/src/time/toTimeString.js @@ -0,0 +1,23 @@ +define(['../math/countSteps', '../number/pad'], function(countSteps, pad){ + + var HOUR = 3600000, + MINUTE = 60000, + SECOND = 1000; + + /** + * Format timestamp into a time string. + */ + function toTimeString(ms){ + var h = ms < HOUR ? 0 : countSteps(ms, HOUR), + m = ms < MINUTE ? 0 : countSteps(ms, MINUTE, 60), + s = ms < SECOND ? 0 : countSteps(ms, SECOND, 60), + str = ''; + + str += h? h + ':' : ''; + str += pad(m, 2) + ':'; + str += pad(s, 2); + + return str; + } + return toTimeString; +}); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string.js new file mode 100644 index 00000000..7f0ca3bd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string.js @@ -0,0 +1,45 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'WHITE_SPACES' : require('./string/WHITE_SPACES'), + 'camelCase' : require('./string/camelCase'), + 'contains' : require('./string/contains'), + 'crop' : require('./string/crop'), + 'endsWith' : require('./string/endsWith'), + 'escapeHtml' : require('./string/escapeHtml'), + 'escapeRegExp' : require('./string/escapeRegExp'), + 'escapeUnicode' : require('./string/escapeUnicode'), + 'hyphenate' : require('./string/hyphenate'), + 'interpolate' : require('./string/interpolate'), + 'lowerCase' : require('./string/lowerCase'), + 'lpad' : require('./string/lpad'), + 'ltrim' : require('./string/ltrim'), + 'makePath' : require('./string/makePath'), + 'normalizeLineBreaks' : require('./string/normalizeLineBreaks'), + 'pascalCase' : require('./string/pascalCase'), + 'properCase' : require('./string/properCase'), + 'removeNonASCII' : require('./string/removeNonASCII'), + 'removeNonWord' : require('./string/removeNonWord'), + 'repeat' : require('./string/repeat'), + 'replace' : require('./string/replace'), + 'replaceAccents' : require('./string/replaceAccents'), + 'rpad' : require('./string/rpad'), + 'rtrim' : require('./string/rtrim'), + 'sentenceCase' : require('./string/sentenceCase'), + 'slugify' : require('./string/slugify'), + 'startsWith' : require('./string/startsWith'), + 'stripHtmlTags' : require('./string/stripHtmlTags'), + 'trim' : require('./string/trim'), + 'truncate' : require('./string/truncate'), + 'typecast' : require('./string/typecast'), + 'unCamelCase' : require('./string/unCamelCase'), + 'underscore' : require('./string/underscore'), + 'unescapeHtml' : require('./string/unescapeHtml'), + 'unescapeUnicode' : require('./string/unescapeUnicode'), + 'unhyphenate' : require('./string/unhyphenate'), + 'upperCase' : require('./string/upperCase') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js new file mode 100644 index 00000000..03e01254 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/WHITE_SPACES.js @@ -0,0 +1,12 @@ + + /** + * Contains all Unicode white-spaces. Taken from + * http://en.wikipedia.org/wiki/Whitespace_character. + */ + module.exports = [ + ' ', '\n', '\r', '\t', '\f', '\v', '\u00A0', '\u1680', '\u180E', + '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', + '\u2007', '\u2008', '\u2009', '\u200A', '\u2028', '\u2029', '\u202F', + '\u205F', '\u3000' + ]; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js new file mode 100644 index 00000000..aadb69a2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/camelCase.js @@ -0,0 +1,20 @@ +var toString = require('../lang/toString'); +var replaceAccents = require('./replaceAccents'); +var removeNonWord = require('./removeNonWord'); +var upperCase = require('./upperCase'); +var lowerCase = require('./lowerCase'); + /** + * Convert string to camelCase text. + */ + function camelCase(str){ + str = toString(str); + str = replaceAccents(str); + str = removeNonWord(str) + .replace(/[\-_]/g, ' ') //convert all hyphens and underscores to spaces + .replace(/\s[a-z]/g, upperCase) //convert first char of each word to UPPERCASE + .replace(/\s+/g, '') //remove spaces + .replace(/^[A-Z]/g, lowerCase); //convert first char to lowercase + return str; + } + module.exports = camelCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js new file mode 100644 index 00000000..cb22cae4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/contains.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); + + /** + * Searches for a given substring + */ + function contains(str, substring, fromIndex){ + str = toString(str); + substring = toString(substring); + return str.indexOf(substring, fromIndex) !== -1; + } + + module.exports = contains; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js new file mode 100644 index 00000000..53b93b49 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/crop.js @@ -0,0 +1,12 @@ +var toString = require('../lang/toString'); +var truncate = require('./truncate'); + /** + * Truncate string at full words. + */ + function crop(str, maxChars, append) { + str = toString(str); + return truncate(str, maxChars, append, true); + } + + module.exports = crop; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js new file mode 100644 index 00000000..d504e9dd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/endsWith.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + /** + * Checks if string ends with specified suffix. + */ + function endsWith(str, suffix) { + str = toString(str); + suffix = toString(suffix); + + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + + module.exports = endsWith; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js new file mode 100644 index 00000000..e67c4b21 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeHtml.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Escapes a string for insertion into HTML. + */ + function escapeHtml(str){ + str = toString(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + return str; + } + + module.exports = escapeHtml; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js new file mode 100644 index 00000000..70cb84ff --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeRegExp.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); + + var ESCAPE_CHARS = /[\\.+*?\^$\[\](){}\/'#]/g; + + /** + * Escape RegExp string chars. + */ + function escapeRegExp(str) { + str = toString(str); + return str.replace(ESCAPE_CHARS,'\\$&'); + } + + module.exports = escapeRegExp; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js new file mode 100644 index 00000000..ec649adf --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/escapeUnicode.js @@ -0,0 +1,21 @@ +var toString = require('../lang/toString'); + + /** + * Escape string into unicode sequences + */ + function escapeUnicode(str, shouldEscapePrintable){ + str = toString(str); + return str.replace(/[\s\S]/g, function(ch){ + // skip printable ASCII chars if we should not escape them + if (!shouldEscapePrintable && (/[\x20-\x7E]/).test(ch)) { + return ch; + } + // we use "000" and slice(-4) for brevity, need to pad zeros, + // unicode escape always have 4 chars after "\u" + return '\\u'+ ('000'+ ch.charCodeAt(0).toString(16)).slice(-4); + }); + } + + module.exports = escapeUnicode; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js new file mode 100644 index 00000000..95e32436 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/hyphenate.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); +var slugify = require('./slugify'); +var unCamelCase = require('./unCamelCase'); + /** + * Replaces spaces with hyphens, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function hyphenate(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "-"); + } + + module.exports = hyphenate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js new file mode 100644 index 00000000..ac88fac2 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/interpolate.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + var stache = /\{\{(\w+)\}\}/g; //mustache-like + + /** + * String interpolation + */ + function interpolate(template, replacements, syntax){ + template = toString(template); + var replaceFn = function(match, prop){ + return (prop in replacements)? toString(replacements[prop]) : ''; + }; + return template.replace(syntax || stache, replaceFn); + } + + module.exports = interpolate; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js new file mode 100644 index 00000000..30bb7ad9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lowerCase.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * "Safer" String.toLowerCase() + */ + function lowerCase(str){ + str = toString(str); + return str.toLowerCase(); + } + + module.exports = lowerCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js new file mode 100644 index 00000000..694d711e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/lpad.js @@ -0,0 +1,17 @@ +var toString = require('../lang/toString'); +var repeat = require('./repeat'); + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function lpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + + return ((str.length < minLen) + ? repeat(ch, minLen - str.length) + str : str); + } + + module.exports = lpad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js new file mode 100644 index 00000000..23d7b33f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/ltrim.js @@ -0,0 +1,34 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); + /** + * Remove chars from beginning of string. + */ + function ltrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var start = 0, + len = str.length, + charLen = chars.length, + found = true, + i, c; + + while (found && start < len) { + found = false; + i = -1; + c = str.charAt(start); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + start++; + break; + } + } + } + + return (start >= len) ? '' : str.substr(start, len); + } + + module.exports = ltrim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js new file mode 100644 index 00000000..69aef310 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/makePath.js @@ -0,0 +1,13 @@ +var join = require('../array/join'); + + /** + * Group arguments as path segments, if any of the args is `null` or an + * empty string it will be ignored from resulting path. + */ + function makePath(var_args){ + var result = join(Array.prototype.slice.call(arguments), '/'); + return result.replace(/\/{2,}/g, '/'); + } + + module.exports = makePath; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js new file mode 100644 index 00000000..8a8dccfd --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/normalizeLineBreaks.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Convert line-breaks from DOS/MAC to a single standard (UNIX by default) + */ + function normalizeLineBreaks(str, lineEnd) { + str = toString(str); + lineEnd = lineEnd || '\n'; + + return str + .replace(/\r\n/g, lineEnd) // DOS + .replace(/\r/g, lineEnd) // Mac + .replace(/\n/g, lineEnd); // Unix + } + + module.exports = normalizeLineBreaks; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js new file mode 100644 index 00000000..fd190353 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/pascalCase.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var camelCase = require('./camelCase'); +var upperCase = require('./upperCase'); + /** + * camelCase + UPPERCASE first char + */ + function pascalCase(str){ + str = toString(str); + return camelCase(str).replace(/^[a-z]/, upperCase); + } + + module.exports = pascalCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js new file mode 100644 index 00000000..61636be4 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/properCase.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var lowerCase = require('./lowerCase'); +var upperCase = require('./upperCase'); + /** + * UPPERCASE first char of each word. + */ + function properCase(str){ + str = toString(str); + return lowerCase(str).replace(/^\w|\s\w/g, upperCase); + } + + module.exports = properCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js new file mode 100644 index 00000000..fb463816 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonASCII.js @@ -0,0 +1,14 @@ +var toString = require('../lang/toString'); + /** + * Remove non-printable ASCII chars + */ + function removeNonASCII(str){ + str = toString(str); + + // Matches non-printable ASCII chars - + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + return str.replace(/[^\x20-\x7E]/g, ''); + } + + module.exports = removeNonASCII; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js new file mode 100644 index 00000000..bdd153b9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/removeNonWord.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * Remove non-word chars. + */ + function removeNonWord(str){ + str = toString(str); + return str.replace(/[^0-9a-zA-Z\xC0-\xFF \-_]/g, ''); + } + + module.exports = removeNonWord; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js new file mode 100644 index 00000000..0f9b4754 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/repeat.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + + /** + * Repeat string n times + */ + function repeat(str, n){ + str = toString(str); + return (new Array(n + 1)).join(str); + } + + module.exports = repeat; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js new file mode 100644 index 00000000..14433fc7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replace.js @@ -0,0 +1,33 @@ +var toString = require('../lang/toString'); +var toArray = require('../lang/toArray'); + + /** + * Replace string(s) with the replacement(s) in the source. + */ + function replace(str, search, replacements) { + str = toString(str); + search = toArray(search); + replacements = toArray(replacements); + + var searchLength = search.length, + replacementsLength = replacements.length; + + if (replacementsLength !== 1 && searchLength !== replacementsLength) { + throw new Error('Unequal number of searches and replacements'); + } + + var i = -1; + while (++i < searchLength) { + // Use the first replacement for all searches if only one + // replacement is provided + str = str.replace( + search[i], + replacements[(replacementsLength === 1) ? 0 : i]); + } + + return str; + } + + module.exports = replace; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js new file mode 100644 index 00000000..bb221265 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/replaceAccents.js @@ -0,0 +1,36 @@ +var toString = require('../lang/toString'); + /** + * Replaces all accented chars with regular ones + */ + function replaceAccents(str){ + str = toString(str); + + // verifies if the String has accents and replace them + if (str.search(/[\xC0-\xFF]/g) > -1) { + str = str + .replace(/[\xC0-\xC5]/g, "A") + .replace(/[\xC6]/g, "AE") + .replace(/[\xC7]/g, "C") + .replace(/[\xC8-\xCB]/g, "E") + .replace(/[\xCC-\xCF]/g, "I") + .replace(/[\xD0]/g, "D") + .replace(/[\xD1]/g, "N") + .replace(/[\xD2-\xD6\xD8]/g, "O") + .replace(/[\xD9-\xDC]/g, "U") + .replace(/[\xDD]/g, "Y") + .replace(/[\xDE]/g, "P") + .replace(/[\xE0-\xE5]/g, "a") + .replace(/[\xE6]/g, "ae") + .replace(/[\xE7]/g, "c") + .replace(/[\xE8-\xEB]/g, "e") + .replace(/[\xEC-\xEF]/g, "i") + .replace(/[\xF1]/g, "n") + .replace(/[\xF2-\xF6\xF8]/g, "o") + .replace(/[\xF9-\xFC]/g, "u") + .replace(/[\xFE]/g, "p") + .replace(/[\xFD\xFF]/g, "y"); + } + return str; + } + module.exports = replaceAccents; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js new file mode 100644 index 00000000..99f6378d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rpad.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var repeat = require('./repeat'); + + /** + * Pad string with `char` if its' length is smaller than `minLen` + */ + function rpad(str, minLen, ch) { + str = toString(str); + ch = ch || ' '; + return (str.length < minLen)? str + repeat(ch, minLen - str.length) : str; + } + + module.exports = rpad; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js new file mode 100644 index 00000000..66ba80e9 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/rtrim.js @@ -0,0 +1,33 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); + /** + * Remove chars from end of string. + */ + function rtrim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + + var end = str.length - 1, + charLen = chars.length, + found = true, + i, c; + + while (found && end >= 0) { + found = false; + i = -1; + c = str.charAt(end); + + while (++i < charLen) { + if (c === chars[i]) { + found = true; + end--; + break; + } + } + } + + return (end >= 0) ? str.substring(0, end + 1) : ''; + } + + module.exports = rtrim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js new file mode 100644 index 00000000..354104c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/sentenceCase.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var lowerCase = require('./lowerCase'); +var upperCase = require('./upperCase'); + /** + * UPPERCASE first char of each sentence and lowercase other chars. + */ + function sentenceCase(str){ + str = toString(str); + + // Replace first char of each sentence (new line or after '.\s+') to + // UPPERCASE + return lowerCase(str).replace(/(^\w)|\.\s+(\w)/gm, upperCase); + } + module.exports = sentenceCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js new file mode 100644 index 00000000..142f0d9b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/slugify.js @@ -0,0 +1,24 @@ +var toString = require('../lang/toString'); +var replaceAccents = require('./replaceAccents'); +var removeNonWord = require('./removeNonWord'); +var trim = require('./trim'); + /** + * Convert to lower case, remove accents, remove non-word chars and + * replace spaces with the specified delimeter. + * Does not split camelCase text. + */ + function slugify(str, delimeter){ + str = toString(str); + + if (delimeter == null) { + delimeter = "-"; + } + str = replaceAccents(str); + str = removeNonWord(str); + str = trim(str) //should come after removeNonWord + .replace(/ +/g, delimeter) //replace spaces with delimeter + .toLowerCase(); + return str; + } + module.exports = slugify; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js new file mode 100644 index 00000000..bce2bd20 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/startsWith.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); + /** + * Checks if string starts with specified prefix. + */ + function startsWith(str, prefix) { + str = toString(str); + prefix = toString(prefix); + + return str.indexOf(prefix) === 0; + } + + module.exports = startsWith; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js new file mode 100644 index 00000000..01d17b0e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/stripHtmlTags.js @@ -0,0 +1,11 @@ +var toString = require('../lang/toString'); + /** + * Remove HTML tags from string. + */ + function stripHtmlTags(str){ + str = toString(str); + + return str.replace(/<[^>]*>/g, ''); + } + module.exports = stripHtmlTags; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js new file mode 100644 index 00000000..9652b0c7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/trim.js @@ -0,0 +1,15 @@ +var toString = require('../lang/toString'); +var WHITE_SPACES = require('./WHITE_SPACES'); +var ltrim = require('./ltrim'); +var rtrim = require('./rtrim'); + /** + * Remove white-spaces from beginning and end of string. + */ + function trim(str, chars) { + str = toString(str); + chars = chars || WHITE_SPACES; + return ltrim(rtrim(str, chars), chars); + } + + module.exports = trim; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js new file mode 100644 index 00000000..a98d6c7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/truncate.js @@ -0,0 +1,21 @@ +var toString = require('../lang/toString'); +var trim = require('./trim'); + /** + * Limit number of chars. + */ + function truncate(str, maxChars, append, onlyFullWords){ + str = toString(str); + append = append || '...'; + maxChars = onlyFullWords? maxChars + 1 : maxChars; + + str = trim(str); + if(str.length <= maxChars){ + return str; + } + str = str.substr(0, maxChars - append.length); + //crop at last space or remove trailing whitespace + str = onlyFullWords? str.substr(0, str.lastIndexOf(' ')) : trim(str); + return str + append; + } + module.exports = truncate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js new file mode 100644 index 00000000..c1386a49 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/typecast.js @@ -0,0 +1,29 @@ + + + var UNDEF; + + /** + * Parses string and convert it into a native value. + */ + function typecast(val) { + var r; + if ( val === null || val === 'null' ) { + r = null; + } else if ( val === 'true' ) { + r = true; + } else if ( val === 'false' ) { + r = false; + } else if ( val === UNDEF || val === 'undefined' ) { + r = UNDEF; + } else if ( val === '' || isNaN(val) ) { + //isNaN('') returns false + r = val; + } else { + //parseFloat(null || '') returns NaN + r = parseFloat(val); + } + return r; + } + + module.exports = typecast; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js new file mode 100644 index 00000000..4968f378 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unCamelCase.js @@ -0,0 +1,23 @@ +var toString = require('../lang/toString'); + + var CAMEL_CASE_BORDER = /([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g; + + /** + * Add space between camelCase text. + */ + function unCamelCase(str, delimiter){ + if (delimiter == null) { + delimiter = ' '; + } + + function join(str, c1, c2) { + return c1 + delimiter + c2; + } + + str = toString(str); + str = str.replace(CAMEL_CASE_BORDER, join); + str = str.toLowerCase(); //add space between camelCase text + return str; + } + module.exports = unCamelCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js new file mode 100644 index 00000000..ebd6e2b7 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/underscore.js @@ -0,0 +1,13 @@ +var toString = require('../lang/toString'); +var slugify = require('./slugify'); +var unCamelCase = require('./unCamelCase'); + /** + * Replaces spaces with underscores, split camelCase text, remove non-word chars, remove accents and convert to lower case. + */ + function underscore(str){ + str = toString(str); + str = unCamelCase(str); + return slugify(str, "_"); + } + module.exports = underscore; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js new file mode 100644 index 00000000..52cf3f45 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeHtml.js @@ -0,0 +1,18 @@ +var toString = require('../lang/toString'); + + /** + * Unescapes HTML special chars + */ + function unescapeHtml(str){ + str = toString(str) + .replace(/&/g , '&') + .replace(/</g , '<') + .replace(/>/g , '>') + .replace(/'/g , "'") + .replace(/"/g, '"'); + return str; + } + + module.exports = unescapeHtml; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js new file mode 100644 index 00000000..0b7fb73b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unescapeUnicode.js @@ -0,0 +1,16 @@ +var toString = require('../lang/toString'); + + /** + * Unescape unicode char sequences + */ + function unescapeUnicode(str){ + str = toString(str); + return str.replace(/\\u[0-9a-f]{4}/g, function(ch){ + var code = parseInt(ch.slice(2), 16); + return String.fromCharCode(code); + }); + } + + module.exports = unescapeUnicode; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js new file mode 100644 index 00000000..311dfa17 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/unhyphenate.js @@ -0,0 +1,10 @@ +var toString = require('../lang/toString'); + /** + * Replaces hyphens with spaces. (only hyphens between word chars) + */ + function unhyphenate(str){ + str = toString(str); + return str.replace(/(\w)(-)(\w)/g, '$1 $3'); + } + module.exports = unhyphenate; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js new file mode 100644 index 00000000..6c92552c --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/string/upperCase.js @@ -0,0 +1,10 @@ +var toString = require('../lang/toString'); + /** + * "Safer" String.toUpperCase() + */ + function upperCase(str){ + str = toString(str); + return str.toUpperCase(); + } + module.exports = upperCase; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time.js new file mode 100644 index 00000000..9f533296 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time.js @@ -0,0 +1,12 @@ + + +//automatically generated, do not edit! +//run `node build` instead +module.exports = { + 'convert' : require('./time/convert'), + 'now' : require('./time/now'), + 'parseMs' : require('./time/parseMs'), + 'toTimeString' : require('./time/toTimeString') +}; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js new file mode 100644 index 00000000..852a0f03 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/convert.js @@ -0,0 +1,41 @@ + + + /** + * convert time into another unit + */ + function convert(val, sourceUnitName, destinationUnitName){ + destinationUnitName = destinationUnitName || 'ms'; + return (val * getUnit(sourceUnitName)) / getUnit(destinationUnitName); + } + + + //TODO: maybe extract to a separate module + function getUnit(unitName){ + switch(unitName){ + case 'ms': + case 'millisecond': + return 1; + case 's': + case 'second': + return 1000; + case 'm': + case 'minute': + return 60000; + case 'h': + case 'hour': + return 3600000; + case 'd': + case 'day': + return 86400000; + case 'w': + case 'week': + return 604800000; + default: + throw new Error('"'+ unitName + '" is not a valid unit'); + } + } + + + module.exports = convert; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js new file mode 100644 index 00000000..effcfbe3 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/now.js @@ -0,0 +1,12 @@ + + + /** + * Get current time in miliseconds + */ + var now = (typeof Date.now === 'function')? Date.now : function(){ + return +(new Date()); + }; + + module.exports = now; + + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js new file mode 100644 index 00000000..6d997976 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/parseMs.js @@ -0,0 +1,17 @@ +var countSteps = require('../math/countSteps'); + + /** + * Parse timestamp into an object. + */ + function parseMs(ms){ + return { + milliseconds : countSteps(ms, 1, 1000), + seconds : countSteps(ms, 1000, 60), + minutes : countSteps(ms, 60000, 60), + hours : countSteps(ms, 3600000, 24), + days : countSteps(ms, 86400000) + }; + } + + module.exports = parseMs; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js new file mode 100644 index 00000000..101d69fc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/mout/time/toTimeString.js @@ -0,0 +1,24 @@ +var countSteps = require('../math/countSteps'); +var pad = require('../number/pad'); + + var HOUR = 3600000, + MINUTE = 60000, + SECOND = 1000; + + /** + * Format timestamp into a time string. + */ + function toTimeString(ms){ + var h = ms < HOUR ? 0 : countSteps(ms, HOUR), + m = ms < MINUTE ? 0 : countSteps(ms, MINUTE, 60), + s = ms < SECOND ? 0 : countSteps(ms, SECOND, 60), + str = ''; + + str += h? h + ':' : ''; + str += pad(m, 2) + ':'; + str += pad(s, 2); + + return str; + } + module.exports = toTimeString; + diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore new file mode 100644 index 00000000..f1250e58 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/.npmignore @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/History.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/History.md new file mode 100644 index 00000000..88119480 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/History.md @@ -0,0 +1,42 @@ + +1.0.0 / 2013-06-18 +================== + + * remove .version + * >=. Closes #19 + * Merge pull request #15 from davglass/readline-osx + * On OSX revert back to terminal hack to avoid a readline bug + +0.1.0 / 2012-09-19 +================== + + * Fixed logic bug that caused bar to jump one extra space at the end [davglass] + * Working with readline impl, even on Windows [davglass] + * Using readline instead of the \r hack [davglass] + +0.0.5 / 2012-08-07 +================== + + * add ability to tick by zero chunks - tick(0) + * fix ETA. Closes #4 [lwille] + +0.0.4 / 2011-11-14 +================== + + * Allow more recent versions of node + +0.0.3 / 2011-04-20 +================== + + * Changed; erase the line when complete + +0.0.2 / 2011-04-20 +================== + + * Added custom tokens support + * Fixed; clear line before writing + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Makefile b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Makefile new file mode 100644 index 00000000..36a3ed7d --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Makefile @@ -0,0 +1,5 @@ + +test: + @echo "populate me" + +.PHONY: test \ No newline at end of file diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md new file mode 100644 index 00000000..4e08a49b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/Readme.md @@ -0,0 +1,117 @@ +# node-progress + + Flexible ascii progress bar + +## Installation + + npm install progress + +## Usage + + First we create a `ProgressBar`, giving it a format string + as well as the `total`, telling the progress bar when it will + be considered complete. After that all we need to do is `tick()` appropriately. + +```javascript +var ProgressBar = require('progress'); + +var bar = new ProgressBar(':bar', { total: 10 }); +var timer = setInterval(function(){ + bar.tick(); + if (bar.complete) { + console.log('\ncomplete\n'); + clearInterval(timer); + } +}, 100); +``` + +## Options: + + - `total` total number of ticks to complete + - `width` the displayed width of the progress bar defaulting to total + - `stream` the output stream defaulting to stdout + - `complete` completion character defaulting to "=" + - `incomplete` incomplete character defaulting to "-" + - `clear` option to clear the bar on completion defaulting to false + - `callback` optional function to call when the progress bar completes + +## Tokens: + + - `:bar` the progress bar itself + - `:current` current tick number + - `:total` total ticks + - `:elapsed` time elapsed in seconds + - `:percent` completion percentage + - `:eta` estimated completion time in seconds + +## Examples + +### Download + + In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length. + +```javascript +var ProgressBar = require('../') + , https = require('https'); + +var req = https.request({ + host: 'download.github.com' + , port: 443 + , path: '/visionmedia-node-jscoverage-0d4608a.zip' +}); + +req.on('response', function(res){ + var len = parseInt(res.headers['content-length'], 10); + + console.log(); + var bar = new ProgressBar(' downloading [:bar] :percent :etas', { + complete: '=' + , incomplete: ' ' + , width: 20 + , total: len + }); + + res.on('data', function(chunk){ + bar.tick(chunk.length); + }); + + res.on('end', function(){ + console.log('\n'); + }); +}); + +req.end(); +``` + + The code above will generate a progress bar that looks like this: + +``` +downloading [===== ] 29% 3.7s +``` + +You can see more examples in the `examples` folder. + +## License + +(The MIT License) + +Copyright (c) 2011 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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/index.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/index.js new file mode 100644 index 00000000..4449dd30 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/node-progress'); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js new file mode 100644 index 00000000..ca0ce4f0 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/lib/node-progress.js @@ -0,0 +1,183 @@ +/*! + * node-progress + * Copyright(c) 2011 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Expose `ProgressBar`. + */ + +exports = module.exports = ProgressBar; + +/** + * Initialize a `ProgressBar` with the given + * `fmt` string and `options` or `total`. + * + * Options: + * + * - `total` total number of ticks to complete + * - `width` the displayed width of the progress bar defaulting to total + * - `stream` the output stream defaulting to stdout + * - `complete` completion character defaulting to "=" + * - `incomplete` incomplete character defaulting to "-" + * - `callback` optional function to call when the progress bar completes + * + * Tokens: + * + * - `:bar` the progress bar itself + * - `:current` current tick number + * - `:total` total ticks + * - `:elapsed` time elapsed in seconds + * - `:percent` completion percentage + * - `:eta` eta in seconds + * + * @param {String} fmt + * @param {Object|Number} options or total + * @api public + */ + +function ProgressBar(fmt, options) { + this.rl = require('readline').createInterface({ + input: process.stdin, + output: options.stream || process.stdout + }); + this.rl.setPrompt('', 0); + this.rl.clearLine = function() { + this.write(null, {ctrl: true, name: 'u'}); + }; + + if (typeof(options) == 'number') { + var total = options; + options = {}; + options.total = total; + } else { + options = options || {}; + if ('string' != typeof fmt) throw new Error('format required'); + if ('number' != typeof options.total) throw new Error('total required'); + } + + this.fmt = fmt; + this.curr = 0; + this.total = options.total; + this.width = options.width || this.total; + this.clear = options.clear + this.chars = { + complete: options.complete || '=' + , incomplete: options.incomplete || '-' + }; + this.callback = options.callback || function () {}; +} + +/** + * "tick" the progress bar with optional `len` and + * optional `tokens`. + * + * @param {Number|Object} len or tokens + * @param {Object} tokens + * @api public + */ + +ProgressBar.prototype.tick = function(len, tokens){ + if (len !== 0) + len = len || 1; + + // swap tokens + if ('object' == typeof len) tokens = len, len = 1; + + // start time for eta + if (0 == this.curr) this.start = new Date; + + this.curr += len + this.render(tokens); + + // progress complete + if (this.curr >= this.total) { + this.complete = true; + this.terminate(); + this.callback(this); + return; + } +}; + +/** + * Method to render the progress bar with optional `tokens` to + * place in the progress bar's `fmt` field. + * + * @param {Object} tokens + * @api public + */ + +ProgressBar.prototype.render = function(tokens){ + if(!process.stdout.isTTY) { + return; + } + + var ratio = this.curr / this.total; + ratio = Math.min(Math.max(ratio, 0), 1); + + var percent = ratio * 100 + , complete = Math.round(this.width * ratio) + , incomplete + , elapsed = new Date - this.start + , eta = (percent == 100) ? 0 : elapsed * (this.total / this.curr - 1); + + complete = Array(complete).join(this.chars.complete); + incomplete = Array(this.width - complete.length).join(this.chars.incomplete); + + var str = this.fmt + .replace(':bar', complete + incomplete) + .replace(':current', this.curr) + .replace(':total', this.total) + .replace(':elapsed', isNaN(elapsed) ? "0.0" : (elapsed / 1000).toFixed(1)) + .replace(':eta', (isNaN(eta) || !isFinite(eta)) ? "0.0" : (eta / 1000).toFixed(1)) + .replace(':percent', percent.toFixed(0) + '%'); + + if (tokens) { + for (var key in tokens) { + str = str.replace(':' + key, tokens[key]); + } + } + + this.rl.clearLine(); + this.rl.write(str); +}; + +/** + * "update" the progress bar to represent an exact percentage. + * The ratio (between 0 and 1) specified will be multiplied by `total` and + * floored, representing the closest available "tick." For example, if a + * progress bar has a length of 3 and `update(0.5)` is called, the progress + * will be set to 1. + * + * A ratio of 0.5 will attempt to set the progress to halfway. + * + * @param {Number} ratio The ratio (between 0 and 1 inclusive) to set the + * overall completion to. + * @api public + */ + +ProgressBar.prototype.update = function(ratio, tokens) { + var goal = Math.floor(ratio * this.total); + var delta = goal - this.curr; + + this.tick(delta, tokens); +}; + +/** + * Terminates a progress bar. + * + * @api public + */ + +ProgressBar.prototype.terminate = function() { + this.rl.resume(); + + if (this.clear) { + this.rl.clearLine(); + this.rl.close(); + } else { + this.rl.close(); + console.log(); + } +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/package.json new file mode 100644 index 00000000..c4744b51 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/progress/package.json @@ -0,0 +1,34 @@ +{ + "name": "progress", + "version": "1.1.3", + "description": "Flexible ascii progress bar", + "keywords": [ + "cli", + "progress" + ], + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "dependencies": {}, + "main": "index", + "engines": { + "node": ">=0.4.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-progress" + }, + "readme": "# node-progress\n\n Flexible ascii progress bar\n\n## Installation\n\n npm install progress\n\n## Usage\n\n First we create a `ProgressBar`, giving it a format string\n as well as the `total`, telling the progress bar when it will\n be considered complete. After that all we need to do is `tick()` appropriately.\n\n```javascript\nvar ProgressBar = require('progress');\n\nvar bar = new ProgressBar(':bar', { total: 10 });\nvar timer = setInterval(function(){\n bar.tick();\n if (bar.complete) {\n console.log('\\ncomplete\\n');\n clearInterval(timer);\n }\n}, 100);\n```\n\n## Options:\n\n - `total` total number of ticks to complete\n - `width` the displayed width of the progress bar defaulting to total\n - `stream` the output stream defaulting to stdout\n - `complete` completion character defaulting to \"=\"\n - `incomplete` incomplete character defaulting to \"-\"\n - `clear` option to clear the bar on completion defaulting to false\n - `callback` optional function to call when the progress bar completes\n\n## Tokens:\n\n - `:bar` the progress bar itself\n - `:current` current tick number\n - `:total` total ticks\n - `:elapsed` time elapsed in seconds\n - `:percent` completion percentage\n - `:eta` estimated completion time in seconds\n\n## Examples\n\n### Download\n\n In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length.\n\n```javascript\nvar ProgressBar = require('../')\n , https = require('https');\n\nvar req = https.request({\n host: 'download.github.com'\n , port: 443\n , path: '/visionmedia-node-jscoverage-0d4608a.zip'\n});\n\nreq.on('response', function(res){\n var len = parseInt(res.headers['content-length'], 10);\n\n console.log();\n var bar = new ProgressBar(' downloading [:bar] :percent :etas', {\n complete: '='\n , incomplete: ' '\n , width: 20\n , total: len\n });\n\n res.on('data', function(chunk){\n bar.tick(chunk.length);\n });\n\n res.on('end', function(){\n console.log('\\n');\n });\n});\n\nreq.end();\n```\n\n The code above will generate a progress bar that looks like this:\n\n```\ndownloading [===== ] 29% 3.7s\n```\n\nYou can see more examples in the `examples` folder.\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk `<tj@vision-media.ca>`\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", + "readmeFilename": "Readme.md", + "bugs": { + "url": "https://github.com/visionmedia/node-progress/issues" + }, + "homepage": "https://github.com/visionmedia/node-progress", + "_id": "progress@1.1.3", + "dist": { + "shasum": "42f89c5fc3b6f0408a0bdd68993b174f96aababf" + }, + "_from": "progress@~1.1.0", + "_resolved": "https://registry.npmjs.org/progress/-/progress-1.1.3.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS new file mode 100644 index 00000000..247b7543 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/AUTHORS @@ -0,0 +1,6 @@ +# Authors sorted by whether or not they're me. +Isaac Z. Schlueter (http://blog.izs.me) +Wayne Larsen (http://github.com/wvl) +ritch +Marcel Laverdet +Yosef Dinerstein diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE new file mode 100644 index 00000000..05a40109 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/LICENSE @@ -0,0 +1,23 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md new file mode 100644 index 00000000..cd123b65 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/README.md @@ -0,0 +1,30 @@ +`rm -rf` for node. + +Install with `npm install rimraf`, or just drop rimraf.js somewhere. + +## API + +`rimraf(f, callback)` + +The callback will be called with an error if there is one. Certain +errors are handled for you: + +* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of + `opts.maxBusyTries` times before giving up. +* `ENOENT` - If the file doesn't exist, rimraf will return + successfully, since your desired outcome is already the case. + +## rimraf.sync + +It can remove stuff synchronously, too. But that's not so good. Use +the async API. It's better. + +## CLI + +If installed with `npm install rimraf -g` it can be used as a global +command `rimraf ` which is useful for cross platform support. + +## mkdirp + +If you need to create a directory recursively, check out +[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js new file mode 100755 index 00000000..29bfa8a6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/bin.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +var rimraf = require('./') + +var help = false +var dashdash = false +var args = process.argv.slice(2).filter(function(arg) { + if (dashdash) + return !!arg + else if (arg === '--') + dashdash = true + else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) + help = true + else + return !!arg +}); + +if (help || args.length === 0) { + // If they didn't ask for help, then this is not a "success" + var log = help ? console.log : console.error + log('Usage: rimraf ') + log('') + log(' Deletes all files and folders at "path" recursively.') + log('') + log('Options:') + log('') + log(' -h, --help Display this usage info') + process.exit(help ? 0 : 1) +} else { + args.forEach(function(arg) { + rimraf.sync(arg) + }) +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json new file mode 100644 index 00000000..211cc9dc --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/package.json @@ -0,0 +1,60 @@ +{ + "name": "rimraf", + "version": "2.2.6", + "main": "rimraf.js", + "description": "A deep deletion module for node (like `rm -rf`)", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "license": { + "type": "MIT", + "url": "https://github.com/isaacs/rimraf/raw/master/LICENSE" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "test": "cd test && bash run.sh" + }, + "bin": { + "rimraf": "./bin.js" + }, + "contributors": [ + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + { + "name": "Wayne Larsen", + "email": "wayne@larsen.st", + "url": "http://github.com/wvl" + }, + { + "name": "ritch", + "email": "skawful@gmail.com" + }, + { + "name": "Marcel Laverdet" + }, + { + "name": "Yosef Dinerstein", + "email": "yosefd@microsoft.com" + } + ], + "readme": "`rm -rf` for node.\n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one. Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n `opts.maxBusyTries` times before giving up.\n* `ENOENT` - If the file doesn't exist, rimraf will return\n successfully, since your desired outcome is already the case.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too. But that's not so good. Use\nthe async API. It's better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf ` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" + }, + "homepage": "https://github.com/isaacs/rimraf", + "_id": "rimraf@2.2.6", + "dist": { + "shasum": "7ada6a6d39b2301af3c8fe7b936c2e46e7c4463d" + }, + "_from": "rimraf@~2.2.6", + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js new file mode 100644 index 00000000..ce62051f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/rimraf.js @@ -0,0 +1,178 @@ +module.exports = rimraf +rimraf.sync = rimrafSync + +var path = require("path") +var fs = require("fs") + +// for EMFILE handling +var timeout = 0 +exports.EMFILE_MAX = 1000 +exports.BUSYTRIES_MAX = 3 + +var isWindows = (process.platform === "win32") + +function rimraf (p, cb) { + if (!cb) throw new Error("No callback passed to rimraf()") + + var busyTries = 0 + rimraf_(p, function CB (er) { + if (er) { + if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY") && + busyTries < exports.BUSYTRIES_MAX) { + busyTries ++ + var time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(function () { + rimraf_(p, CB) + }, time) + } + + // this one won't happen if graceful-fs is used. + if (er.code === "EMFILE" && timeout < exports.EMFILE_MAX) { + return setTimeout(function () { + rimraf_(p, CB) + }, timeout ++) + } + + // already gone + if (er.code === "ENOENT") er = null + } + + timeout = 0 + cb(er) + }) +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, cb) { + fs.unlink(p, function (er) { + if (er) { + if (er.code === "ENOENT") + return cb(null) + if (er.code === "EPERM") + return (isWindows) ? fixWinEPERM(p, er, cb) : rmdir(p, er, cb) + if (er.code === "EISDIR") + return rmdir(p, er, cb) + } + return cb(er) + }) +} + +function fixWinEPERM (p, er, cb) { + fs.chmod(p, 666, function (er2) { + if (er2) + cb(er2.code === "ENOENT" ? null : er) + else + fs.stat(p, function(er3, stats) { + if (er3) + cb(er3.code === "ENOENT" ? null : er) + else if (stats.isDirectory()) + rmdir(p, er, cb) + else + fs.unlink(p, cb) + }) + }) +} + +function fixWinEPERMSync (p, er, cb) { + try { + fs.chmodSync(p, 666) + } catch (er2) { + if (er2.code !== "ENOENT") + throw er + } + + try { + var stats = fs.statSync(p) + } catch (er3) { + if (er3 !== "ENOENT") + throw er + } + + if (stats.isDirectory()) + rmdirSync(p, er) + else + fs.unlinkSync(p) +} + +function rmdir (p, originalEr, cb) { + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + fs.rmdir(p, function (er) { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, cb) + else if (er && er.code === "ENOTDIR") + cb(originalEr) + else + cb(er) + }) +} + +function rmkids(p, cb) { + fs.readdir(p, function (er, files) { + if (er) + return cb(er) + var n = files.length + if (n === 0) + return fs.rmdir(p, cb) + var errState + files.forEach(function (f) { + rimraf(path.join(p, f), function (er) { + if (errState) + return + if (er) + return cb(errState = er) + if (--n === 0) + fs.rmdir(p, cb) + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p) { + try { + fs.unlinkSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p, er) : rmdirSync(p, er) + if (er.code !== "EISDIR") + throw er + rmdirSync(p, er) + } +} + +function rmdirSync (p, originalEr) { + try { + fs.rmdirSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "ENOTDIR") + throw originalEr + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p) + } +} + +function rmkidsSync (p) { + fs.readdirSync(p).forEach(function (f) { + rimrafSync(path.join(p, f)) + }) + fs.rmdirSync(p) +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh new file mode 100644 index 00000000..598f0163 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +for i in test-*.js; do + echo -n $i ... + bash setup.sh + node $i + ! [ -d target ] + echo "pass" +done +rm -rf target diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh new file mode 100644 index 00000000..2602e631 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/setup.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +set -e + +files=10 +folders=2 +depth=4 +target="$PWD/target" + +rm -rf target + +fill () { + local depth=$1 + local files=$2 + local folders=$3 + local target=$4 + + if ! [ -d $target ]; then + mkdir -p $target + fi + + local f + + f=$files + while [ $f -gt 0 ]; do + touch "$target/f-$depth-$f" + let f-- + done + + let depth-- + + if [ $depth -le 0 ]; then + return 0 + fi + + f=$folders + while [ $f -gt 0 ]; do + mkdir "$target/folder-$depth-$f" + fill $depth $files $folders "$target/d-$depth-$f" + let f-- + done +} + +fill $depth $files $folders $target + +# sanity assert +[ -d $target ] diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js new file mode 100644 index 00000000..9c2e0b7b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-async.js @@ -0,0 +1,5 @@ +var rimraf = require("../rimraf") + , path = require("path") +rimraf(path.join(__dirname, "target"), function (er) { + if (er) throw er +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js new file mode 100644 index 00000000..eb71f104 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/rimraf/test/test-sync.js @@ -0,0 +1,3 @@ +var rimraf = require("../rimraf") + , path = require("path") +rimraf.sync(path.join(__dirname, "target")) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/LICENSE b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/LICENSE new file mode 100644 index 00000000..05a40109 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/LICENSE @@ -0,0 +1,23 @@ +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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/README.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/README.md new file mode 100644 index 00000000..ff1eb531 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/README.md @@ -0,0 +1,5 @@ +The "which" util from npm's guts. + +Finds the first instance of a specified executable in the PATH +environment variable. Does not cache the results, so `hash -r` is not +needed when the PATH changes. diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/bin/which b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/bin/which new file mode 100755 index 00000000..8432ce2f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/bin/which @@ -0,0 +1,14 @@ +#!/usr/bin/env node +var which = require("../") +if (process.argv.length < 3) { + console.error("Usage: which ") + process.exit(1) +} + +which(process.argv[2], function (er, thing) { + if (er) { + console.error(er.message) + process.exit(er.errno || 127) + } + console.log(thing) +}) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/package.json new file mode 100644 index 00000000..f1938b07 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/package.json @@ -0,0 +1,35 @@ +{ + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "name": "which", + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", + "version": "1.0.5", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "main": "which.js", + "bin": { + "which": "./bin/which" + }, + "engines": { + "node": "*" + }, + "dependencies": {}, + "devDependencies": {}, + "readme": "The \"which\" util from npm's guts.\n\nFinds the first instance of a specified executable in the PATH\nenvironment variable. Does not cache the results, so `hash -r` is not\nneeded when the PATH changes.\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" + }, + "homepage": "https://github.com/isaacs/node-which", + "_id": "which@1.0.5", + "dist": { + "shasum": "195619a6ad7e8fefd0aa76445a6d4c8d370a322c" + }, + "_from": "which@~1.0.5", + "_resolved": "https://registry.npmjs.org/which/-/which-1.0.5.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/which.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/which.js new file mode 100644 index 00000000..db7e8f74 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/which/which.js @@ -0,0 +1,104 @@ +module.exports = which +which.sync = whichSync + +var path = require("path") + , fs + , COLON = process.platform === "win32" ? ";" : ":" + , isExe + +try { + fs = require("graceful-fs") +} catch (ex) { + fs = require("fs") +} + +if (process.platform == "win32") { + // On windows, there is no good way to check that a file is executable + isExe = function isExe () { return true } +} else { + isExe = function isExe (mod, uid, gid) { + //console.error(mod, uid, gid); + //console.error("isExe?", (mod & 0111).toString(8)) + var ret = (mod & 0001) + || (mod & 0010) && process.getgid && gid === process.getgid() + || (mod & 0100) && process.getuid && uid === process.getuid() + //console.error("isExe?", ret) + return ret + } +} + + + +function which (cmd, cb) { + if (isAbsolute(cmd)) return cb(null, cmd) + var pathEnv = (process.env.PATH || "").split(COLON) + , pathExt = [""] + if (process.platform === "win32") { + pathEnv.push(process.cwd()) + pathExt = (process.env.PATHEXT || ".EXE").split(COLON) + if (cmd.indexOf(".") !== -1) pathExt.unshift("") + } + //console.error("pathEnv", pathEnv) + ;(function F (i, l) { + if (i === l) return cb(new Error("not found: "+cmd)) + var p = path.resolve(pathEnv[i], cmd) + ;(function E (ii, ll) { + if (ii === ll) return F(i + 1, l) + var ext = pathExt[ii] + //console.error(p + ext) + fs.stat(p + ext, function (er, stat) { + if (!er && + stat && + stat.isFile() && + isExe(stat.mode, stat.uid, stat.gid)) { + //console.error("yes, exe!", p + ext) + return cb(null, p + ext) + } + return E(ii + 1, ll) + }) + })(0, pathExt.length) + })(0, pathEnv.length) +} + +function whichSync (cmd) { + if (isAbsolute(cmd)) return cmd + var pathEnv = (process.env.PATH || "").split(COLON) + , pathExt = [""] + if (process.platform === "win32") { + pathEnv.push(process.cwd()) + pathExt = (process.env.PATHEXT || ".EXE").split(COLON) + if (cmd.indexOf(".") !== -1) pathExt.unshift("") + } + for (var i = 0, l = pathEnv.length; i < l; i ++) { + var p = path.join(pathEnv[i], cmd) + for (var j = 0, ll = pathExt.length; j < ll; j ++) { + var cur = p + pathExt[j] + var stat + try { stat = fs.statSync(cur) } catch (ex) {} + if (stat && + stat.isFile() && + isExe(stat.mode, stat.uid, stat.gid)) return cur + } + } + throw new Error("not found: "+cmd) +} + +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}[^\\\/]+[\\\/][^\\\/]+)?([\\\/])?/ + , 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/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/package.json new file mode 100644 index 00000000..66d4488e --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/bin-wrapper/package.json @@ -0,0 +1,54 @@ +{ + "name": "bin-wrapper", + "version": "0.1.9", + "description": "Binary wrapper for Node.js that makes your programs seamlessly available as local dependencies", + "keywords": [ + "bin", + "build", + "make", + "wrapper" + ], + "homepage": "https://github.com/kevva/bin-wrapper", + "bugs": { + "url": "https://github.com/kevva/bin-wrapper/issues" + }, + "author": { + "name": "Kevin Martensson", + "email": "kevinmartensson@gmail.com", + "url": "http://kevinmartensson.com" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/kevva/bin-wrapper.git" + }, + "scripts": { + "test": "mocha --reporter list --timeout 0" + }, + "main": "bin-wrapper.js", + "files": [ + "bin-wrapper.js" + ], + "dependencies": { + "download": "~0.1.2", + "isbin": "0.0.2", + "mout": "~0.6.0", + "progress": "~1.1.0", + "rimraf": "~2.2.6", + "which": "~1.0.5" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "readme": "# bin-wrapper [![Build Status](https://secure.travis-ci.org/kevva/bin-wrapper.png?branch=master)](http://travis-ci.org/kevva/bin-wrapper)\n\nBinary wrapper for Node.js that makes your programs seamlessly available as local dependencies\n\n## Getting started\n\nInstall with [npm](https://npmjs.org/package/bin-wrapper): `npm install bin-wrapper`\n\n## Examples\n\nAll `platform` and `arch` specific options takes precedence over the base \noptions. See [test.js](test.js) for a full fleshed example.\n\n```js\nvar Bin = require('bin-wrapper');\n\nvar opts = {\n name: 'Gifsicle',\n bin: 'gifsicle',\n path: 'vendor',\n url: 'http://url/to/gifsicle',\n src: 'http://www.lcdf.org/gifsicle/gifsicle-1.71.tar.gz',\n buildScript: './configure --bindir=\"vendor\" && make install',\n platform: {\n win32: {\n bin: 'gifsicle.exe',\n url: [\n 'http://url/to/gifsicle.exe'\n 'http://url/to/gifsicle.dll'\n ]\n }\n }\n}\nvar bin = new Bin(opts);\n\nbin.check('--version', function (works) {\n if (!works) {\n console.log('Pre-build test failed, compiling from source');\n return bin.build();\n }\n\n console.log('Binary passed the test');\n});\n```\n\nGet the path to your binary with `bin.path`.\n\n```js\nconsole.log(bin.path);\n// => path/to/vendor/gifsicle\n```\n\n## API\n\n### .check(cmd, cb)\n\nCheck if a binary is present and working. If it isn't, download and test it by \nrunning the binary with `cmd` and see if it exits correctly.\n\n### .build(cb)\n\nDownload the source archive defined in the `src` property and build it using the \nbuild script defined in the `buildScript` property.\n\n## License\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License) (c) [Kevin Mårtensson](http://kevinmartensson.com)\n", + "readmeFilename": "README.md", + "_id": "bin-wrapper@0.1.9", + "dist": { + "shasum": "237ee496fb6049caedaba51ad9e62fc199a86060" + }, + "_from": "bin-wrapper@~0.1.3", + "_resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-0.1.9.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/chalk.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/chalk.js new file mode 100644 index 00000000..17c6dbab --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/chalk.js @@ -0,0 +1,62 @@ +'use strict'; +var ansi = require('ansi-styles'); +var defineProps = Object.defineProperties; + +ansi.grey = ansi.gray; + +var styles = (function () { + var ret = {}; + + Object.keys(ansi).forEach(function (key) { + ret[key] = { + get: function () { + this._styles.push(key); + return this; + } + }; + }); + + return ret; +})(); + +var chalk = module.exports = defineProps({}, init()); + +function init() { + var ret = {}; + + Object.keys(styles).forEach(function (name) { + ret[name] = { + get: function () { + var obj = defineProps(function self(str) { + if (!chalk.enabled) { + return str; + } + + return self._styles.reduce(function (str, name) { + var code = ansi[name]; + return code[0] + (str || '') + code[1]; + }, str); + }, styles); + + obj._styles = []; + + return obj[name]; + } + } + }); + + return ret; +} + +chalk.styles = ansi; + +chalk.stripColor = function (str) { + return str.replace(/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]/g, ''); +}; + +chalk.supportsColor = require('has-color'); + +// detect mode if not set manually +if (chalk.enabled === undefined) { + chalk.enabled = chalk.supportsColor; +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js new file mode 100644 index 00000000..56a5d19b --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/ansi-styles.js @@ -0,0 +1,29 @@ +'use strict'; +module.exports = { + reset: ['\x1b[0m', '\x1b[0m'], + + bold: ['\x1b[1m', '\x1b[22m'], + italic: ['\x1b[3m', '\x1b[23m'], + underline: ['\x1b[4m', '\x1b[24m'], + inverse: ['\x1b[7m', '\x1b[27m'], + strikethrough: ['\x1b[9m', '\x1b[29m'], + + black: ['\x1b[30m', '\x1b[39m'], + red: ['\x1b[31m', '\x1b[39m'], + green: ['\x1b[32m', '\x1b[39m'], + yellow: ['\x1b[33m', '\x1b[39m'], + blue: ['\x1b[34m', '\x1b[39m'], + magenta: ['\x1b[35m', '\x1b[39m'], + cyan: ['\x1b[36m', '\x1b[39m'], + white: ['\x1b[37m', '\x1b[39m'], + gray: ['\x1B[90m', '\x1b[39m'], + + bgBlack: ['\x1b[40m', '\x1b[49m'], + bgRed: ['\x1b[41m', '\x1b[49m'], + bgGreen: ['\x1b[42m', '\x1b[49m'], + bgYellow: ['\x1b[43m', '\x1b[49m'], + bgBlue: ['\x1b[44m', '\x1b[49m'], + bgMagenta: ['\x1b[45m', '\x1b[49m'], + bgCyan: ['\x1b[46m', '\x1b[49m'], + bgWhite: ['\x1b[47m', '\x1b[49m'] +}; diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/package.json new file mode 100644 index 00000000..8acdb5e6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/package.json @@ -0,0 +1,62 @@ +{ + "name": "ansi-styles", + "version": "0.2.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { + "url": "https://github.com/sindresorhus/ansi-styles/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "ansi-styles.js" + ], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles)\n\n> ANSI escape codes for colorizing strings in the terminal.\n\nYou probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings.\n\n![screenshot](screenshot.png)\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles`\n\n\n## Example\n\n```js\nvar ansi = require('ansi-styles');\n\nconsole.log(ansi.green[0] + 'Hello world!' + ansi.green[1]);\n```\n\n## API\n\nEach style is an array of a start and end escape code.\n\n\n## Styles\n\n### General\n\n- reset\n- bold\n- italic\n- underline\n- inverse\n- strikethrough\n\n### Text colors\n\n- black\n- red\n- green\n- yellow\n- blue\n- magenta\n- cyan\n- white\n- gray\n\n### Background colors\n\n- bgBlack\n- bgRed\n- bgGreen\n- bgYellow\n- bgBlue\n- bgMagenta\n- bgCyan\n- bgWhite\n\n\n## License\n\nMIT License • © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "ansi-styles@0.2.0", + "dist": { + "shasum": "359ab4b15dcd64ba6d74734b72c36360a9af2c19" + }, + "_from": "ansi-styles@~0.2.0", + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/readme.md new file mode 100644 index 00000000..646837c6 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/ansi-styles/readme.md @@ -0,0 +1,65 @@ +# ansi-styles [![Build Status](https://secure.travis-ci.org/sindresorhus/ansi-styles.png?branch=master)](http://travis-ci.org/sindresorhus/ansi-styles) + +> ANSI escape codes for colorizing strings in the terminal. + +You probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings. + +![screenshot](screenshot.png) + + +## Install + +Install with [npm](https://npmjs.org/package/ansi-styles): `npm install --save ansi-styles` + + +## Example + +```js +var ansi = require('ansi-styles'); + +console.log(ansi.green[0] + 'Hello world!' + ansi.green[1]); +``` + +## API + +Each style is an array of a start and end escape code. + + +## Styles + +### General + +- reset +- bold +- italic +- underline +- inverse +- strikethrough + +### Text colors + +- black +- red +- green +- yellow +- blue +- magenta +- cyan +- white +- gray + +### Background colors + +- bgBlack +- bgRed +- bgGreen +- bgYellow +- bgBlue +- bgMagenta +- bgCyan +- bgWhite + + +## License + +MIT License • © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/has-color.js b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/has-color.js new file mode 100644 index 00000000..27316b1f --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/has-color.js @@ -0,0 +1,24 @@ +'use strict'; +module.exports = (function () { + if (process.argv.indexOf('--no-color') !== -1) { + return false; + } + + if (process.argv.indexOf('--color') !== -1) { + return true; + } + + if (!process.stdout.isTTY) { + return false; + } + + if (process.platform === 'win32') { + return true; + } + + if ('COLORTERM' in process.env) { + return true; + } + + return /^screen|^xterm|color|ansi|cygwin|linux/i.test(process.env.TERM); +})(); diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/package.json new file mode 100644 index 00000000..d60b2d0a --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/package.json @@ -0,0 +1,59 @@ +{ + "name": "has-color", + "version": "0.1.4", + "description": "Detect whether a terminal supports color", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "capability", + "detect" + ], + "homepage": "https://github.com/sindresorhus/has-color", + "bugs": { + "url": "https://github.com/sindresorhus/has-color/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "has-color.js" + ], + "main": "has-color", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/has-color.git" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color)\n\n> Detect whether a terminal supports color.\n\nUsed in the terminal color module [chalk](https://github.com/sindresorhus/chalk).\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/has-color): `npm install --save has-color`\n\n\n## Example\n\n```js\nvar hasColor = require('has-color');\n\nif (hasColor) {\n\tconsole.log('Terminal supports color.');\n}\n```\n\nIt obeys the CLI flags `--color` and `--no-color`.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "_id": "has-color@0.1.4", + "dist": { + "shasum": "d1dadeea5b9e8b446bf08603532333710c95a290" + }, + "_from": "has-color@~0.1.0", + "_resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.4.tgz" +} diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/readme.md b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/readme.md new file mode 100644 index 00000000..0918c851 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/node_modules/has-color/readme.md @@ -0,0 +1,28 @@ +# has-color [![Build Status](https://secure.travis-ci.org/sindresorhus/has-color.png?branch=master)](http://travis-ci.org/sindresorhus/has-color) + +> Detect whether a terminal supports color. + +Used in the terminal color module [chalk](https://github.com/sindresorhus/chalk). + + +## Install + +Install with [npm](https://npmjs.org/package/has-color): `npm install --save has-color` + + +## Example + +```js +var hasColor = require('has-color'); + +if (hasColor) { + console.log('Terminal supports color.'); +} +``` + +It obeys the CLI flags `--color` and `--no-color`. + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/package.json b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/package.json new file mode 100644 index 00000000..46a63f05 --- /dev/null +++ b/node_modules/gulp-imagemin/node_modules/image-min/node_modules/optipng-bin/node_modules/chalk/package.json @@ -0,0 +1,65 @@ +{ + "name": "chalk", + "version": "0.2.1", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { + "url": "https://github.com/sindresorhus/chalk/issues" + }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": [ + "chalk.js" + ], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "has-color": "~0.1.0", + "ansi-styles": "~0.2.0" + }, + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "readme": "# chalk [![Build Status](https://secure.travis-ci.org/sindresorhus/chalk.png?branch=master)](http://travis-ci.org/sindresorhus/chalk)\n\n> Terminal string styling done right.\n\n[colors.js](https://github.com/Marak/colors.js) is currently the most popular string styling module, but it has serious deficiencies like extending String.prototype which causes all kinds of problems. Although there are other ones, they either do too much or not enough.\n\n**Chalk is a clean and focused alternative.**\n\n![screenshot](screenshot.png)\n\n\n## Why\n\n- **Doesn't extend String.prototype**\n- Expressive API\n- Clean and focused\n- Auto-detects color support\n- Actively maintained\n\n\n## Install\n\nInstall with [npm](https://npmjs.org/package/chalk): `npm install --save chalk`\n\n\n## Example\n\nChalk comes with an easy to use composable API where you just chain the styles you want.\n\n```js\nvar chalk = require('chalk');\n\n// style a string\nconsole.log(chalk.blue('Hello world!'));\n\n// combine styled and normal strings\nconsole.log(chalk.blue('Hello') + 'World' + chalk.red('!'));\n\n// compose multiple styles using the chainable API\nconsole.log(chalk.blue.bgRed.bold('Hello world!'));\n\n// nest styles\nchalk.red('Hello' + chalk.underline.bgBlue('world') + '!');\n```\n\nYou can easily define your own themes.\n\n```js\nvar chalk = require('chalk');\nvar error = chalk.bold.red;\nconsole.log(error('Error!'));\n```\n\n\n## API\n\n### chalk.\\

      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%0A(4ACE5qURuSV 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�I&SEM{3&7iy(RG^?PMac4|`{)I>O~ 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 literal 0 HcmV?d00001 diff --git a/assets/img/preview/statue-2013.png b/assets/img/preview/statue-2013.png new file mode 100644 index 0000000000000000000000000000000000000000..023ff1a946d2af860b10879408f16e58fde29078 GIT binary patch literal 55250 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 a`*?@^-xoZ!rgVY}_>A=}^eVCLk^ci0nWBdP literal 0 HcmV?d00001 diff --git a/assets/img/preview/vatin.png b/assets/img/preview/vatin.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9b25013a9996c75f34dd1b7b7e1f51338bb7c6 GIT binary patch literal 316003 zcmX6@2Q(bt+m62aS{uDByX+=<38JsQ2v(vedJrLciQX5B#YT&$i-;1PL_&0;^FyMy z5Ya>Q^7)@{?wNDXymMyG+_}$r@AEwGjWc+pNlV2>b?43du|>+fdl=J9m6U@7(!gedo@@ z%sY3O-E%%0%HQ4~x7E>9yX|j}Gu4*R+m6y*%gpP}9bvxzokae{O1`&`-_cf6dF(&4 zedSzHY4&qE^tp`zQ%3-!=DdaKZSgyH?mTB$5XXZk_x|3;bhR;-vA&e00@Yq zp?vgSBs`@LKuoXvxBG!QZKLf#DvS+}_zr!m>Q_hMYeFw&GJlrqym$4;WiZy~^W;n4 zx;QlyPd>A|d-?EJ$GqT$!`7RB@*|<95wAY}e+#|Vxug!-`71KOesz5QzjhN6e8GBk z^YW@7{O>ID>Fm}`-q!5NVq4IbRm`H<8UM`{ZN@e8sm8TKv+3fq#b-Bd<~QPs^f!eI zhe~_XSDlZ87mpS%!+Cyxy*UZL>2AxXKG^y9|82yl7=K;V=z3#fa&z(T+X-#>KE0a# zUhrAR-X))^quwtyXk*k7V>nV2!{a&X6AN?3Xm2 z0_KJ7i4FN=4@u-G__KO;RX)NTs>R2p&5Ep;cS@>x{w4gv=16pKT_+5R*Nh);!3_%ff=RH;i(15u-XoQM0F9&JTd zPm4sCOIcm%aZ|NlZ`hE|GeeX%3u#&}>0Uvi9iA~o=nbOuu-S!{Q466@H~xpj8;Rq{BkMv z%er=%PI0W39qxMyN;x&467m{t>HbtlJ7(U^I_G!|KRN@lwa*r&97u0e(kP2ko;cP7{KR>wWnt=EQ2kEx z)ii-$7RM?-LevVNaRymSCtzst``2w<3=T@Vi2geooR^zg4uXWwWHaND;FdICsMy>8HjOtn3~K3LYbkn5goWrBps2nMZK|> ztG28vz~0Ufj*dUw`p`cK&R__V1s`kFt&zLXZ%(tXJFAFS2cA+6>*POO{Ix$t zA*!eUh&|qEe}ECdP{w}yg%18mI!b7vyfCiDYjZ~5ljhT!GEeBoY`d4= zorKShN(puPx68a7lLbx;O6~$>3$~TVMF;g+V>sP>A}rqF7&FirniZRh2L`fAw# zC4uQY)fYOt6o9PErcy$)X1UbrKKQS)aC|E7>NO35-Mg*OVjgme*@dEBaJ8O!kVdaM zDq=QYkyu+Mz~knBG4`-1gFR~W#3t+eyY*R z(hS8W-K&%@1$$Gvhlmz|yl_+Zw-$pFTxe)?lpDL}3<>T0vW{dWA0c8bYG;!@XZ}JS zC-eD=A^V>mRYZhsmhg|fR+S^`oovyaKD9o|qG>0o(Vy7SCan*pgM5$7>cbBHD)zw7 zSD8nLDD?uB?`6w;8QP3AamuEfU9{!M!(|Ai5(CgVP8W7_=fbEa83urJ@9{RLZ?cs- zd;j^2jyFYBO!~~Qj}&25HwI;P;j-d6 zZAl_=X~*jIEitE#?j>P^(z&$pA8+QGDoFQ&msbZnSwCT&0x^vgKPDkF-deDqc_CTL zM~Xc@0Lcu;SD=Z(7gvI41Twc~h;nD04vp-WxTrHi&87Y&>&eNVp>>^zd%2=<3Wlr8VTQQa%jb<UkzF?$F%2feGk4U_Y+_=sEmtXh<83(@b3CaDH;hB}{ILa(3+NAF*bHCnC zuy0duV2>FvI%eJ*_3rhi&~!2zeVu5*U33)B!H=$Zs~pFNWP%H!DC;e3T2xWr31^6j zeQ+MtX}Cuyw`-EKNfTwaUBmj)c>+AJt62fo!yqIM8DXJ>IoFE*C~2=}2jXJAR>V`i zY_mpwEIM8pW$>Z*flJhz_cRmNV(lZC9Li-- zTT84=EArI` zlI83?lCuLw>oD}CLEAHFpVd@W7fG`hSjjG6KeV>Z`XD1}IpR0P_BjjeHNkC@&J9xB z{zq3g6|67=6$g#tB_W;#fXD|-&Qdl%YH1oI-p2Iec+qA!p0{?NcL8stY;r}P()07i zcl{sfziuKZ><-&Ic1+%`KX<01$%`dG`9liDRyd zE0X#~d=8KL$`^qT>Hqq@DlYC`h^0oay7Mu3MtW~it&cITC%jgTl7aGt>p0^WI6DnsAO;YVwt zvBLL?0}o|ZO-`R(qJAR+y7ssrp1i+wg&81%Hm{MHA`I$` zoTsky(mu{`-!4IX+>zOYcWV;Z<_>KNdc+v&Dl2P`M1e zqaSyd&KdEIrqc%1TJwB9BlV&2K+vp}BcGq_rU{~rLfAvJ1`voq%NxN& zIY?}noMM5+eBsk~xb<(%Ey&V!&PACAO(pKj#_R&T9r{dZk|Xg9ozAo<9m`p!CE4nvZdZ3DRQooKshnRaSM1 z0pU4!QHYp2>AnG7uOk{?pRmd7`At6I+*WLAT)<5f2kp?g`Mi%Oqz5w?2PZ+BKH9wm z2sAC|O>?-1T=UPCek`cuaZn9C<)DadV(sFtgbS*_dHUt`_=Bdd1Httqg~uOyzes_HVDOP~IS8z4hP2$GvI zrEk{^(dGsmB#(1i3h>>o-rd!~oQ9I+LsG`l3;L_K>*}waj2rf0u4`deKT=tom&y#e zbJEtH#}`fEh=0o$pL|b>B;PW68tO8?stdeiQ+)I?Deu?P`i0o*Zuc|%07c%fm2Iyz z`H5p`r?({NA0(_wdf>X}&-lH)`lz`tC0;&=)x9ukEd2=Vk?|$13MwX}i01VI0 z{u}WMxk;0}(gX9T6#~@T0+R6LzK*XVX>u$t0KI;pfJxR4|Ni|WsX`^ywFpVgidU@( zRiWhEj=8PZg;ZT|(pDc*zu`eU`9n>*4&D3%<}KFsNnct)=|6yoWy( zdbG;T!+-Vb?_K`LSIz!c+@9yhAMIxEqO{SV`gtF`Yi5STvExT0(Ye>l$$tlR7WGxC z+k&DNTf@0?@1$Oz3Rks7KjnnL<%51n%e35B@W6J?1K3(@4l=ZO&EWM@T?g3C*~Ot9 z`b$y|+0MP(YK7o;%YV60?D(%ee@@k>di}K2y>15D`cBuVe_u1%ETBE1cB8vt4zIOl z=8O8$--=v8dq+Z|ScJ3uN^=%3I1aBNRdwEP<-B|MN}kT=Z_<6bDYjZ~7`c8r<2!Wz z8-^B(+P_mQfsn(x4|d8*Tb-`Xg`6aV#&Zt?^EQr__kig_!`@C!>%WgRWxrg5e0>rx z+AjP8_Rn7}(d8BlW&rFk-Q)k7CM@tc$pcxk^nj7& z%4GMgZtkVO?E~^B1>9Zcfu3akn}1ff+V@WeDQ@z!^6vmv(tP!?@q2{K3*S(c61kIAWC|DMkX4i4+i8g+rMXWo&B-m)6Hk&+^gGTdw+lH+(gy& z=Cvm$$MvVxuB@$7$h2NTW{NhN4;S**4%_}tQwFH)B{Ns$Nh+5OYUf%HYUNuw5L}vId4CA@0>d4%N9kz>35}HL8q=I1A*Iq^!>8# zXQShldBt);F=-pE8AJUo0cX?KBBz^(&uyKzlCiLYMfjOOIi-DaAD`di;n!PC=S@t9 zrq#vfIfR})gpJ^d>A!6J?g^CrbVZbucLg5_-Pad?+N!5bEh~U#+5Bv$>tz`SgRUM6 zpr0?YsWV*>e?)%1J>>U@mS4zX#%<`&DOr^Bk2Vi_7wRcvItwHY`=IrLE90V^8r=8AK&pVkvU9TkX4<;xfe|#O_~`XD^{MH_kxdJ3$BWZL!A^vju;i6g;i8!3oLy_so3j<+ow2~?kPDKW z9tCj1lZc-bRZ52pNW_v1C zm_K*U5;B{=oJy9`D|MfrKE2IIvF=-rn{<1&bChEbJ+LVi}4ltGr6ej7YY9pdg6Pn9~}-6lhN ztBWU(7SDy!J$f6MZ{TPsSIC)3=E+CChK@|GGC>IGN^OyIl1$JpAIHME=tSDI?AIG@ zW9h}tgvEnWgX2sS#j~c&<7CkxHd}&hb9-}WSND~^s&Mlz?s!QU=7{28X*!9sQTZe_ zop+s#vx!P=KD^FbTc1C1zxk){b(7E*VZXE%&F#3bCmXuYK6v3b>Zxa#lt}`6 z$$DZja~-uc5`;7UXR|pM4*Si{IyUT`4WiT`Do}_;`(}cs|)HgWkQK&m_1A7*;Uj6|XqlZ}6awn*gSUtYl~sUivS~-Ee67S*=`F>K`mkCX3Mq zChdhVdo+*yycz*@Fu9VN%OLUacl~59y%L}MAVZH78}*;@o#`ay-MHljjwG*a#7Qe1 zo@5@=zpyA{j~}$0yP@gqmaD%K8)~QS+7^4=DY_GPjh9qZ|3pjCq=?nPr8=_arFyOx zCttd7EWA#-comeI(4?3|pX+-lKX6TS_=|l_-g;I_JklUL2XwK+`n^h~`IvZXb>ru| zR@89nZI+64e0C{3%&oAJ(Dv^}8KFNr$D58pN8ggx1cvw$1?3ji?A=VT0%An)f}+bA z`5?ZNom;I>Dgw#!$azZo(^YtAwA=jQ+P@J`-@P;(bSK9$u?w6~#POiUAq*;Am@x>!iasLr} zk~*Y}+Y;<^hRxEI+ggXj6*XS;Hrx(y)ne~?Xh8qhj2p;+e~jzvicQv-Qo(D4#);Ep ziYGLNtW1t=+F-m(<{3_vAp1pq^+8{bX^+HA=Z63Kl~RmUw!leiUs{tAS+O<2fiiGr z9a9Lk`I&Nvycf?ta>X<9WvjQ@|57&hW|ZEpGWeK^wC#BH{+s2!w+tZ?K(NVPs}h-4joOJ5muU>*}saC#mMQpmO*fLQ&H&YAr$bVBnQ6*?+ki6#fG zABbJG3+3z@dUm_{ai@%o&AZ|oqc%aK+ah}&-a86768+qe6gQu=jfE>a?_NKE&C2C6 zvrOBKxWgxCs?&ws%SX?6*2}(2$3qb6i&cGM)ilg~-ov$n))o(>6+70~_)$`~d;^rc zaLrQnRlBYAQ4V+QsdC+Gau|$N)iO7Am2NZXcgq%`7Pq3sb-dPC)TK+6p;i3JcjIET zoOX=DH(61igIg?_?|VJRoIjE4>zFG(lmVc!e}K-_JbQ?8c4C^p?1ilAcQv%;`$-1=LBT@=Byy5{{c4t`GZ-Fo z%Z|k8l9Eg>a}PC7vV<4gM>bgIy@D=U;O1$o>8%R9>slD90bJT4y<~%))JvxDGWywl zHfXY2m5295F#Jv2Pmh3W{?4{|}X$(vP-R+BLh+!p@d%>n|!V|JHxx^qG0|gQF!^L2>z{ly$bnsd#F7DMpevy8Q=N zi(&zR6=r_xbc$L5RSENRYMYEqdxoUmE)41*k-d~Rg$l135E34gJY-1JrGNXaM&pMN zO0*I^Q=in?oczXyX%1jsytem>m{72JD8SqAKQ3P<8xoE`c{#G60Zm3H*>Y+~uZg0m z1P7Fp_y#0vKOHNcM_SNacmb@qri5?!HUf^eM4c!A4%-Q3k%`*KSKFTP4+M^{=Pg=R_3^BUVIKr) z^QqHvp#yHxh>pO#;oY|G|B;Hiz&wYB5T>!p8ol1*qq}Ih77+?;KxMd&G8#w%3ar$Z zvh<#x&UZQRcMA=3xK8I zNUln=LjqIKJdY!NrJMba9JESL9n}8NYBnh;w>*6QQ%QqT3o0(Uqw!^tH|p2Szm0xp z$Qw+pMubIl)*;Mq};UFUVk0jho7* z1W&x=YBm?dB6s0Jva_4rK+?_U+dsL*1ZVo6Pg~=dm|$c&kGdQ*IYgZ4-SYo~Xi%m9 zs-UaaUx>b!l1g&E4`{=#?buZqblEfbl6e;TTQ&F@uUzrE*p{C5{=l)q-V27GRD^T_4A+|_qv=T}DKI@YAJ0NjKi;>F z5f#GldOX!cWZ}s*^4y2AtG2RAvsO;(8)FMISGXKVVS$CoQ33q=jNQ}~4evG5blN}A zPSmbm_LugH7uA2`Tv(g=N6(9gg7s0LyUZ)Z6Tj%xHD)cj>xs41yk{W^e7bTNB1E}j z{AD?4@*o6=>O#Rz8L4j7I>;_f7=sN-emTD@Z8C9I31cHgkF5 zc=*I^;bn@Ao8;%n;Dj1e1jx~tVjB1z;-f~KkzwHp0CJ_SYx>h8xoxNRkkYh|5EWkV zRhC|bknHMV8>}*l8nqg1ZT1{>^d5~v;YL}SI$n?w#{{SVDJQtXpL=-|!^N{ooU=Bv z0@$2pxTa+y^jREn=oJBd6|ua~n1f5HM#q!ibXH5B_D&^kA%`K`Z9USgo@ymM{YcXO zk)lHhNZR&ScKNG5vp$#m!I95y+a%gr*lAJJQ=?!mm8AaJtBAuJRyk8k; z-OKD%7EWmlpZ`Tx48`tfoADGwO0Yg47icXhDhX?s4^MQNmh2Iw4fKrZk%EdN0rg_1 z`2AI^ASHx&;99Zs=hon%>{gmzjckx~Ra=~QDvN~WCXwpCQxSs}Ap+lZSK_TU#4=6< z230qV$Es1Q?@J&8W)@Oxqvh?u;@U_WmWjv9^?gpoS`Z$52dhajJq(g&J-1*NdUj7; z?ff6-`E@}34jg6E0Lf6(rWlHGeT?IrKf6HhT$G87Zr+rI9?M5qth#7m%2*DJp+{1{t2 zlYOxv1PN~V?%^}R(7n`@{K@|>)s&=nQ!d3=fvpM#>m(#YiAWQm*U^A#!5)Vh5?7LS zvprsn025?7tM9}hktI=*RFjoua*8Ynh8mz3bOYHB(!OiYr{hrhhL>VLgaC*(jQ5b$ zL{$$Zo_{T2D0AJR^6Yv*m&NFHYfJWvr4p4%A=C-RPLse18W@DCucWNPHCuGbT2~*N z_1h7RauPB$M^nLz4|MFCW+&>&A>bbK?4Fcb0gY}M{nNA5#(C>(+W6?4=SZxj<)BRY zC*OKoOZnBcaO@Zx0<7mK`dv()58{yHMPSKX4@>=ns-}ml&-$DK_YbjCY>u3()umQG zfHIa?$}-rnztDbfOJo4ka&Umz|3$<^B80 zEUo0EZQ}O_Ls@|Mg^SbufBJkoV#!t)0y#>j(6=rk2XlVc?DpK%Ot#0Sv#Gq>#}*Y& zOkEGg_@dMRD)A}Z0u@qP)@%ZweNXBMHde)fevEX?evYOBd=p_UQ(*^|4eP~tG!v^O)>CcKgixLW zDF>n^g=LdBmS9rUIzwh14~nWlfe7D zc-A9kj(Dih2y`aT^q+Pfc$u=U+S6|cY#qF=qgR)bQFiE`ihi8v>wO-}=LkOW$}mjc zbG0crM6{e7K|SEBoRywK)~8EHHv79&GDQMC-#QcNqDz6n6!YJbGR1i9blrYlZ)jp(0&Abt+Ly9Rb;$xV5KLK3e zL`7sLiHK;NL=+`H&tdBEP`UrxM1kkioG=Tl-&ub!uIi~>eIXE20JJM~7J9l^gC()) z&j%|CV_rH1Mx#^bee<0k&P<8zQrHeUl^?X)b}lc+6AyZQW3#y5AE4pf{yMlzhL)7O zdP+=00x0+KPrnB0(#PC@Txv z>)iCyw>6zB_pN2zMr1yFM7D6>)`WM1D|p>jfx@+myK#^dBO5M~9;)*y8$a2lBFBao zl#moVn+DIph1Cq@S-|BsYwtP9eZKdc4P7kl@*-V86#)JTc2#Yk!G%-(Kc+8RoJgv4 z1S6;*+mDM18$1fo^#Zv4<$nP$Eg-_@b9 z;k;ypPM!;(OD;C*rxcGMChWR&VZ5$v7)Dv9@g;;EZ&^fR3=89DXTW{cZJHkK72?5g zhXqKEDx5NG-rK&s4+V+l7a^)I@zROh!LLCFzQ z*D&M+@_V*J)#W#kM81K_MAgH1T#lkF-*c4-N$+<>F3=D}6bX_IXex3<`*X@VEI9rSgbO%8vI2l9RbINKxJIXkAr z`Ny+owX?e(iO-WHv|)7gTP{1tf&6)tUdn)x*}UtKtYc=5xohC+ew3=4@|(7SkL@)d zSAI_0%t^yETK|%b2Xa5V>QY+Tz83g&-I4tFDA5Y}HpcH}|0Z{!u2d`Qw|TGl&1xJ^CmMoGw1og32r1zz=oKQz}t)D~cMxc43#%Vf)HS83Vi_ogfa>ln86MQIF z$L=Q#a#+T#q4=R?Hf~~@ziTW`)0{}eB`C8uE0u9Z>J)}6)HJ)t9>Y@{^*DlqS~lEO z3h+WMl~2ska#i$u^(6(FPuXhD*6ZqU!yU<4`+qk<%Oa9w93PEhoiv~Xh4Na zA1uXI%|5On-jqr^LN|^>0)3Bwo6IPuMlzxMoi>2lJZSzi)AHy{VEp;FhNK+cVgs1K zfNrK^{hgmLqC6)*B335@A7E%;{(#)y%y5vaIlOoVq^`yu>0|;%7zR*47!rBnqXc_R z&GtK!w#o3AR9ycO8wzAVs?PLRv`9;Zie<*^=vHQs(OM4v-y+|6WAPo2ta1 zi3xYKA#b1;YLrBuUWlT?NoW7zfm&kY-uF@aqzs106g&P5Y$^y3D^{b)1u@RB0Hd`E zPXS0nHAuSoFG{FJnfb5T`{CCh(eFS6!BTVvy-!essYEH8KMkGcwR@*RMZsG$tKY@) zyM?Yu3UL=t43R?J^X-hFm)LreY(VTH*s_Dc1C4B3@?y zsH4gw2|U(o^4{lJ{d!lOHqXf#qyO&4fe^)`$Fw|V>2ZxUCf~j;Wk2NpcZ& zFFAhh2ux{mjx(owv{#tmEpZ@pyi+AcOl*W2jhuZTsAHYQXMVS$&WEl@?Q6S^N=byl z=tpTa>$Z7uHGF6ZU%5Z4nH>iynu!r4bFQj0&OtW026KlLY%6p-rq&TM ztvN)EZIbALmAn^Zh8!Q90TAW5wQfFfD7OJ5HHyMjtS3d`JsO@^0#IorXXUezLxXWr z9@<(k!>5t5qJ8zaUM))2v4`IMn0(CDWTpdJFr>?g1fAxi0o6MSm(d3chz9E;c|L|* zmnO8*gX)JS9hB+_5hex>Zu72006J*W*+Lt3S$W9%Ly4KH@7P zh5b2^rZsj!W1<3(Gvq2IP<>^zXH0h*fwU5bh!l4slkGj{GJ=A`Q`iitI{u@5{cL5@ zhz+5`Ba%`*l3Ds- z;V*t9$31ZoBR^inrsFPknX)_e5`d{WFo>X_m~}-bLT`cvouoTKW46pji*omnMSJ#0 z38h91lHC$jemHUE;N)eHP2ICqwxKh(Fm(C8^AC?8@36WU4~~9#{_=8pD7}!M(*?&x zZ=OKHt@Y_>=a|3`{U~n|B~Q)pOsB9E^fyFr^}jChI@vj8ZFvO+f#>Ro+{RZmt~!sR9sUYhm0{|OpEd!^ z$`Ng(9bX*m+n23PZzY9&Pgx7?}-%GwEIsdzzI$N0W39Ij{SJgHg@`4?ZGUk|;n zJ{*@LK4V5OY^dc+2~zoa7bVaEGSCQ5b#g`^(DwY~`Y38~ZM-NCj3rSrf`wU){8)!` zhB};q?V+|Yv7z|qX~0BUS}BdhsV{a&1_gEC*iCi$D6eF=j4CM{@YmiA{CdXAPRU&fvlubaj;vB5N6zSn`cof9Pnw#KSGYIc%o|~~Ob{xa zdz~LYZuzzyds)#wK21l6o3j%>_e*e}GDf-gzshTu)!c zmQd(SJ0T-J6y7M+WvXRZy&wr7y_m<=(2Z#c3;PmSJQ7vlqUI~!s*mDqIL2l?-0OKs zN96sLmvXvU!WT?~!kqUG4kL^suKgo{>0j)71}GsQMSg-XM=pmEinrvOyoPb|p9d5lmyF=xYX##g4hw88=idY?%O=ES;l)|V z#0&|_Fw80jM{EZ*qlzDW4@MxAjqzyUr^gz`I`McQ$j1EMY>8z52)JCVT&lw?q7Ngh z%!CKRbzBp*85&*y3;8~T!I{#a_lBfEFaARFfCz|5`W#??ql#_dHI39JySg3zNWB)><9n9&4A8;EQFHb)XH|KY*wR}lvip?t*JkiM2iH9kqh_RbXNO5&?MQoShqxd*Au4OIN1C?~lh{Ef<-i z1xhpgtxQi8dMW7gh#}C&W$f#sj^|YllRiF4oS=*gvhZ&YhYm-$jclQWhdrOaa5&AV z&B}rA+YZVHzYh3!i7FxI?aWXUhr^I$e8jc2DnJT}0<^oy71l59JL$z|IUF||tEOxp z^YyS`>s~fl)Z>mQ?jtdzRutbBG(C@4T+J#UraSPTht-fz!%06xJf@3+8KJG~JWNe? zBn}_zc(~9aoh-L7CPF0Obm#V;|GX$7SHA&MN4|WjRuoe7h2^a33nwTWuME5PK%C!V>4sHs4gei?h+N z&>05RWRIc?3;7>07LdAAqE&Rl|FFm3H_hUq?vPOi!HeJ_8qaZw>gFng(Wzt|0_bCS zrB+Bj9^+2?38CB1nCC`0V9Nc>&Xl`?2kePwDK`9YC!53mYpbkDztJ$@iF>fBr8w;Q z3P`)mS`G5%`|t8hN)xYs4l3EW`^L?x0Bx1=&&d72%L<&vXai?0I3{4tdIA)*(!W}I z6g=``GF%YbIVdlL$L}BNPM8|M&222(ISkpT(WqWH$}9spAVe&m?TYpA*q7|Ef1%&@ zBYC>$dDR1%-Kk1)@_f$f*kf3;;BAtv741r^4)twGnUYO5Fgbe8#50e!%qz! z4!)SL@o*uZl(5Y8yzvXAR+^8*J5|`z9lTxn!998q(&^hAv_mZjsoCB;_%3imH|`YW z8Xo1M_b!D}ujR#lf@7A#Yga9`iU}Ekg9S!nr%J@Fm-z3q0O4CmTkpN_@lCCfhrHMSiQT^X?@BfcdesrVYgA_y@}0Mu>JazCq%Pcb?Bw z@x{>2CiGpN=1hTq3(j!l7=Q@BSZvMK&bn8)aLV7Gq^s;-QcD6R*$$AFVw2gD#%W-vP*VYZU+0&M-erRgghh0^sAu77tp@olm(q@~@v_59{ z_)TOnhgqfEOqE06gZ#%O4M{ecIQ7xSbW18UJVJllmr+2If~9HYpi^HJ3~m$9(fdpN zc9r>BG2FuvhA!fq6Y5w2u?JUSBejSQjp^noU*X>0DcOU;c!cFG{U%?3v$0^wDFB> zI+`H}7P21j+|0K=vAt2Rc>W}p7c}*xWW-66mjSJ2*q_1s?GID2I7(V@6&d$r|DKvk zUv}m52IcpkU0xt+rj|3XwPcXNyR4vo7^KSE52ngQR!oba0XX;9G!BoOMTx^HF}E0Q zxQ8+ds@N&*d*gJgiKtLo@Cc6aCu^C{-j}&!1dVdkRxVVeCyg7dk39I!sX&_JiT+gf#@^cj45GIE3);w7b0{Zhtx@0_T?1 zn)?XNDj!OW9gGc`w6Ww6kSu#PiAo8sPIXFF#zW4qerf6T2yU8&e%R0!St$uo<`X2- z(`AJ{@A_V7KLF;f?Z?1?o!AE;3(0|B9saGVAL&K)61=3o>&0t56Gz`y8^%}0@)xOB zP;OSL19Vavq9@aO_fFpT6k;Py{{&YkuSa>Lv+&8n2%FVlUSe*jy*{z9FGJ1rjc!;a z%?t`XY~sfEB<}7!ut*b^4^I{RT>{b6M}>~2izyj9x{9gV^4}P0GW(eHW9Nj$rN4%Wva(!guNIu{ zpq7P1klE2vP-NR=-q&`9PSlrLG_m~pvD+kg7zU?YHrJh1nUc~mD*s5<^a}j`oR$Q9 z4WtlK_x4ks;1vH&&JD`QU_^g=F;8UT@fcMzOS|^i$y`Tw^1p zBu)f>-;=^eGogk}St5DIwAR0L!uO%Z)DiO^YvD7WwWR|}Y%;-FMLI@M!ptywu~Ac! z*aF(`h{lSFmjA=!pBm&~pK3Q+Gg%gqS3d5;U zZ1v&JNrO7=zoWiI#K9$aoqx>9BVAt$FT9S*Bqzv$N1rK!RgC;JY^buy0Pgl z=&U$xn+KepO#-|8spaCJAT>BqrD_EmUL42NRV!-6ug0g%Y?0Z{bp#dwz9qkJ@g0oQ z!VA7pCbBnb2sA`M+1`+0u#Zxgn4^T>6JN|n)zMBl5XKvV6Ql8r8q}U+_6(2!C~@)2 zN?n~UnOLLvx%;Cr9DHR4N-AeBE%hz|-=&fVhKEL$qINp}3E!Xhac%4JyU_$uKT1r{`qD4dd zsQjLWkXZzipchY+ZksOvk{LthDjAaXGno%n_We$*8ckfID}%YX{=}Pws`#u1Cas^i zH0vgIZN%fBY6vJ42JR_%aglAjnxjFb&7xp)55OnNM5qqyVNw4w{#u)8>OV<)N|UJu zWh_zKe@yLCRdiiCDpcBoJl+~q>cTu9yBf@O;4!?6D9Z6CPkuh2SYye$ib|=avgm)q z(1TO&`u&g+Q#O3RKl?XhzhiwW53EBA730CR--*2!p>dC(ucrKw{my#Mi-ZS)f&s)? zhGrn059aMvkYCX`RG-7ZF`{~Xq|VR!#PTg-Q;E?ZlHRs<%V?(v6+o+=rU{njin=<# za)MKI*=x`6PFUI1xN|(`oB*zxj@5#LnFlx5X972x!ryC&v-|u8zp; zz7N*yu@CF*L62NK1%T+Zo;Xw9q1URZAHEmkzp-eVgRFUsl3(CJYWz%bQ=t1VUelDh z|HmGc?zE~UYl!M#>lN2qgT8oBfLj9tzdzAgpOg@KQud}zTdhbHz+-D^8Ebof* z`n>HVbi=OgSS%@5fp{tTrax~*PU%u5WO?Jp?#`n;`Cp-j8Q0?Tf0+F@u7g`wRk@e` zN$(X9mS+;TzMN07V=sit{J*(xtv&GDTi~H&iH%1T1B691lRk1A1+8qJkzK9hc9)n| z&s;K}tD~h^hZom-{$O&hq{~U$obS^}CERRTEPo8SeAD*VmWrj^Y381KAHu|@7SB>{pnGEpMt{Lzh<(M^I%WG?3b-EO7%^Pb-Et9m2`rMHZf_ss^J`bU{}@ z_6h1ew)V5LmdCSF(o@^X&ag73e2cM>B!KGor^hM#AcPT_dY#)C1!wUjzy(n?Jc&hj ziGftt_e;7TuwlRLZJdWOX)R3nCSjJY9R?yRS9WyTSE>EKypf+laOE)%3$%lwid6Uk z@1%QZ4ak4U{tc|Ycon5q(GMj`8Oja{f;1k0iP{w6s7!f#*YrvBT%x*+I+w#4@ zn#F6Di!9BoI7*PxNF`@+}bR@Vda%{Q35t1P9&ExFx=;P6{B>4xrY zk<0(We!E{g^G@Tq9e=(%j5c|;e9?9jd;02nHgvG^t@P>NjMlJmp}oMpmNU7Vv(WCF z%f<5qYzy@@{mrq}uf6N}w)VE0(2K3hhMU7Soe9prKQoj@7B6RS5F_)!xosy_SHU6w zrb8q1u72j(9zO|m(W{(kAcsg!NJ1P6oH=+HZuhD0OMt0Ff{sEls4O(^&N=z~IwtSp zQ{Dyr+11MLSKtrlu`aQ*MRM|f8>Imk32l8c{|C`PF26iszu#dekI)+18lsOZ(?oNn z$1A|$wG(1UjJrKCd5meu37SS>3{?azYVKc(3Fi#@>Qt!^XWF(w%Bn6;IZ}cm#)|T; zaR?z9wj)YG*R}{*C^=(nmEvr-dxXp!A0MHWV;J`=yDCi8TA{S0Z6&U62tF|lffN>u zQb?=F5v(=!f(wB_F%EOpv6Tv*Mp-Dbw$lZ|l?5)B>OP4jAY?rut;CFvGbtt-XNajF zL_*dg;VZuU8VYH2-J5c*nRT&7zY7)WLmL7i$NB|I*T}CpA&`hH@XLfW64STUb#fKT zK&gOTb_;&-XlqbywOSzz*<_@&$SA8|dpDDOM4%A5;A4Q05w2tPT#s!vr5J28qHZ2D zT@>2Qh+20%xoCOwtZ=%A&RpGS29zr345bvt35KblghCs~bJqoTdx4)vgiXw+kityA zZgCuwgJC(}SKqNvlw~GG54uB?NR$yJfGjCWQW}A<4PueVWhCwwgl;IyNR9>L96>8o zXKAjjSZ0r(0@-Rrj^xWdxy0&CHX3Zzca~7lP7_lgdyf$srDc7joJ2^2RMk%BPxnY8 z(AJS+B!>kd<<%)_no?5LA{xgM0wvaeo0CMj7G)KFm@5$`GGbY9T}Rder|W!ko)@C1 zC;g3c;IIDWf1BU<&Cl@jKmQASQ4U-|Fe=8f0y zar?$ie&KKbJpby?{w$yQ?5Ftn$A6pa$Jf!$@wfige?~}>|I`2RukkDY^jGLM$K+Hk zvQLJIN2jNlR`cp>U*huOyE#9FJh#^Dq8S0Qkv&<)^v#;0dq1 z`ZD9N<>k+Pk)Qd0{wyE+^^XyK;JN4T@Z~Rj`O1J`C?ykuz3}?`>?iU z9tIY_uv#CWtzq#qZQC&oGsA9=5Q4UANhxBj!5Ygjj8HUP-w;AVN=egOa;k|gOIHy@{+Ir@}G}jxr6mltaougm%#1I*Wk(}#|)~+0`J*eT9 zWhO3F!jcoTT~jq?rM9HmN0bm0VF)>53@G$h+vQR+QeFveV#ZjD>#86%he%2F?_;>q zYAJ=3s%i{#KuS?lT=Er>q6H~dakL<#MU_MpqfkoMBwZ=0-ceQOL5i{3p<+P#jBFhA z5@oBLNu-RJBBfL|lEFh3=!33`jisvkx5X2N5yk|ux>FW}<|V zA~fq88{iO-m_D(eGDc}+YZ0A+oJk>3Vj}H5$ycAe8Z&$)a6o6w!5VR}t_~1w(XB=H z4PnZ}{eTjni>mpAWSYiNtVW7V2?>p^)fkohibbFRDGTIM-$T`^SB>LUMK6(9qaaIS z$tYcrMWC%Ek&qdzu}EN^Cgha{F^O8$e?=`3QzFHL)DlEZf~jdr3UjqF5Br7ve#amG zV?WOAo7Zv9@E8BW|CoR6&;JjI^PZd6pW*wy?+5sI|Gob!f8k&MH~14j`op~c1K+_< z|I|-%a(sj213&yj-^Wk?^iOf^+6kZf#HSd?f&b;d^>6YcKm2_>bMrbM{@{n$tb4Y* zfz^7&cYV)y@iRa3XHY_Nd49%6{>X>;$)EU>{P2(c5T}nGvfWSo#sBI5jNSQ`cfb2R zeBgZ_ps|KO_h)~KJGXE1?A>?q%J=YH@`EyII}*UZm8>Qg_stQ)QTp#wg9O-(Q`f3iIr*#IvTpsFXNo>)E9-*STG+ zV&0~0kWw)XBT9odnvx6491v2IQy`{H+c;cfn5OyaB1x>PvH@{*E@=vhX$rKxW3yS4 zLS$MZIZKSFz+h}sD}v<7IT3sfGBD0iVnAJ0TPbIZa%7(=)XKGps(??vx<;I>i6A~K zGt$`Vp^eq< zHWxwLDVzXd8+2<(1Vj#)w&k;LWTvHX_l6;)!njm<1G**&jm2^4A0UMuDu?J1o`1YII8q6LGHRwIF3Z zrOY^FYe}J|!uY{cmYSMUw5&p20jgiu``{|F$}hg2a8?B4GNEKuD1=zx;p!&psXS1MC%%)R##)5NTJGc zLW~$~D5c3m!jt!iz7yK#GyK-+qVH>VQ?hW|+1NR@EIXS-0X0zh8SKmMweHBPj z@9(y4ndgOZzpFBu-H34wRy^d%E5FU|;sNN)bKmjjuC>bWJW!0zXH(&VleqQN5GF*WA9CA~AZTG-xGi7-XuhfRI9s z$P$L8GgsMhU>aHFKp}yGlrs8Cz%5N>j8n=e+v3Ls$aGy(uX+MwH4v-wpcHb*#9ZT$ zgi@4}$)Q#Qlp4C=r-fn+#u|i_NF#~MR3ik7MwLYNGr~HA6*Yg(IPirS7qXEQA5b2a zoS~73oa)?5Y1CEqSQbf~&cI1jsS*}H2e4~yf9N`8843FtOals>?Ro97HXd_k##yh=}zS`$jB*?iKHy(g)R6dJ2-4ffTVOeRiqwLiHYV;Qpp*8b3)tQ*C`Ika#WQp}b)D6Z$rqrmflE~Vigsvbljz}r0G{`!XGUU7< zl_ceAZh%C;>bZ8~CXXLJV%QC6TZ2MeYjM^hq$Et9IV@P`aK<8yAjeF}l4Tj0mxb2$ zw4K3+g>ej6YjI6Sh}8yHil`$gz_|v$ETo+2yN0GQ470zIp=D;DFjp9{Ok;J78OyZa zQ>372TKrtO1Zyr5A)r|s{uefk=Q&wLlpy!fN+pL~vIKlmeG0m1p}K=A9M zw7yyqe#@Dl_m|Amz~jB z0c{jYTlTwpR_(#z0ZMA7X#^43Z3{xk3S3SR=YSBBrZGrGJ+m~!em77`p>YnQ4L$@e zFE5co(KZ^XtNtpc8Z0>udz5y#wt7T^FJy70;Y)=%3>aMLm=Q>5$zOP)!h3euTs&}cqz z*u0>mVb~9-t;aNi$by(t&GK6*u!d5aDwftQ$G5H_N_ilpGLNQpSXu zJyw7pW<)ONwn1A<^bzpHIg@ilTZ71vVhRd_q7ZdK_>2q%p=!QlX+Vk^JyuHkYNdx1 z2(2Jg&8?Oev?Wqw`=wM!4Wxuo0<9#{^k^d~DYKszj4TupS!ggqAZ@1W8* zEuj`x>kUeRh#uW4#vwD!fyYmtg2=2l4s8@A!!UWCo?g;-4Sn0tZ+gaYW}E_LN(8@P zv|_W~(Dgm%Pj|%ZIXKv$bzq)7%Q8|ZTwGjYtzo@hvEPmOuyA<1VVWnVVX4nuDU8F! z!QmRyO19epF$%0!_&AYL=HTFf?KrUA?OAsX+wF+n9B_Piz~zHXn6?}oZR%KuPy>zC zS8KX&#SH(R^({egnMR~6XxS0d6Xx*(Eggr4f^k2PQzD9mw1CwO>vco))n+C{waaNO zuL2Y@h{Af)ks?gXh>$fRCyP?GZBZ}}RaLGOq*Mq2a=wZU5|X}eu~xI+4Yk^|hV?;x z@b){84;e&F2kBR9v{ghO7`6*S7MjLV$aOYks-A0EmMc?xy`iiA(9{6ZR47W4y+=^r zS5Ao-6*)y>inUd`@;sIj{~5^X>aoo!k#eEPnusif2N@~8`f*Lw?=a5+tu16hiVJ9g z&<0XM%Nmnbt5#XV7_OLbX=-9g_6Z@YmajAtfkDK8Y#g$aq?if2Jt9Of2`hC~c@$7> zgXkn8$7;=ri9CB!@(7u+w*C$T9Vu4g1|><^a^uiq{ETfHV%W1R5x;v%8h6Bl>oold z5ANT`qyhV(OLk`iyC)Yc*RRnX-=dU441zl+neCu?{B-8UX9O4Lf<+seR+4jzT}76+ z_Jn+na*C#Ji8_*{M!SwMMs(BQrKChb7)J`V1F1}T!K^x@t4T2w3Ht$)OO3A@N5;z? z!fJ%k2q&?+ueVc5bp|&_vZ&tgBCoDL737T7WM8T#miqTH6w(r)QP|c|N`V3)e8nNf zRT_*$JB8AQ#YePM)p!tVN|VkJ9}?J_yE%?C-ba*z%|VZAdzNX-JlCTMrr^n?aB#5U z_@rm?1H=BD92HvD6rz6JvFZ)2J7l-_Tnr2Dt-7t-NmU&?UhCQV0Y5N9e9m8%R#)4}rV=9%PWL1aRUNG%F zu7#%Wk)k2Rg?T@aW6b~zAzrlrO_eHy3GY2pHZ}IhN0c@-5typ$8uw$h%UMPA8QZm} zlF9QzmYK;1TBVV;MV3OGMwSr4RE9c-fFNMomXdOf-_jaUGDT@}sYxqVOOmJzII3V= zwGjy+P)N$KpgK#8nJ|0WbqA)VzR0XY5y-68j0eFHte z%=do(hbf`qGr##8q)yZJFE9<4yz}Hf?%Fe`!|VL|%QM9l`jx`1MtYejtSF@c35VA< zY=f_9MiI)RfsiId*Dy^Nh$Yh;9?~AxFb|(28pyeT_sE>R0kAW>37Y}#iQRTb z+iDIr9n%!BrG~IxT<$nISkrczc}xg(fY3eDa3AFkX;#+>VT+XJn^l5;U}gBN#nR1+ z&GCDA{LVjRwRxV^$-CJP7sM%Yc-#|~K$tz+^jAATWPQ+)Q(+itJ1`6t7`wjCik8V^ zt-=S7A117=4^{!%&Y+}Xo)_kM!dQ(pmSvg=J`iI@={j?4yA>%UhW#F-!a98wy%q3N zsKKV9`Xg8C2GqzfED)AD_c0EsOBEs`2`Q3uMkI+f9YRd_=*gx<7X>9$dkz)ETvIiX zC01Kf2oYxu2}ukAoeN21@DnM4vlf{mF)hTaFa~EdVVtY4Sm&C5h@l8jszJ&+Bg#n94@gE|ML#L5)g%vu0o8V-m||u1UF{xn&KPMaxu)T0 zVe6@f6q;s540YzM8i&>zqcuSUmT{`e0jZ!A+NNO z?2#NYE_L+Pty-GKu!M#EFi=v#WeuesXV6%Sb&9ZLw%c9ZV3pTsLFvUqX`w9e9Q zHiTtn-0iOtcr|@zDOZ3s&zGcSCMS#S6k6LF9w4Yj_YernOw+cw?khQn2CWKln(KKU zA|a%~Xj4xB69s)$352lJwBMqLC6RN&nx^Uwmx=5lXa%JnB@mNGYfFrUWt!01us%4% z+NvW=zJ}Fe1SO?(BBwl4LL6zFZ`+8gCaX>6H z8iic7U_}j$h!JfYlyej$c?yWx6PJW}_9k|{CWnb!GNME%9iKT39Nke|J5)S-3?L_vg6^apJ76<{?MPoT|VUPNB3D?dzqIuihWslYv)-z7$?c& zw>*#bRjZlGOj%}f5jCgJ599^>l)#vpjhF-N$%fJxL{g~M5OzEAHj;+9IyDAQ3=5_R zf@x3(1t}LqYU{NSvTET%jhCXaWTP?vZ`S@iTG#BZ>qS4aeVVsf&2Fl8wW(C4(p5SP zp$mZ^qQD`9P6Rs;6okX@h)0j0D2jl3kBC=9@L6vc-GFZkQN{Jzb+@A#)9F z<0y-U^Rpc{Z)`YSAF=2Q+i7N+Bf1vmIpCe)=y=UE1;%OMXuW2!FkHWWmF;eWGmQ-S zOrq^OjJ3@3BngmM*=+{tAonX`&L|~a?9EoOT6OfjB4_cp%=0W)KPWDoz7VP~N89D% zciQ1aTw#!y5bj( zS~b%+QDS1XTA`eRs!=MF;+|=&gn0|9WwrJw?bz*RN*HjBT-w)KSgcMds<0mi8sh;? z>mABh(1ltHDHc+SQkF-fTYnI+iw!KqNn#zUGR8n>TdHlaN`km@06SWgwz#VZR$lIkQ?V z$=Q-p;L-1uCo-J#$KIwp+TcBPE4Kv0SeB!27SUzWidAx4nwZv+sgD zVQv4r?F4_%UE%XCg4<^w!ruB~Zn^taJoL-&pj{kejA9xGX+I>ze%N8Pz!K&(<6BJ# zkrXq=9eT7CeBTj5VjL#4mJFGMnG1_$Pq*-Fw*wT*6f!Z7pe)vS$C;rmK4Rw z5MpAQMjGc?9IY_5Fo#S?MUEIvgKY|Ze}O*hA=xR$G3{6 zw-Sg|`T%R-Pyx&+Eg;d7vmA%KN7YQsnV5>~qLnBDoRMRyNe*p=Agr_&PMoc1xfy2) zGc{znN7a>5w}SGoj*_Fu%}T);Cj${J@rIhMJb2zxQ$T~J%C+ zE{t(c8ItsaYdu`{Ta-1_BT!mmLRj%Oqco7w3Z@8(NVJ|OufwI4;_fcc&{7&hIosjZ zw_#Qnc>Li9Y4oEU-Tk55eeo(+pLhrF%q@*OqU}xz;b9i$3LOor+h%sl$b|(c1Iku< ztAHbFU74;YMa${Qf;r5LL*o2=hxZ1Qp=nyWreQaY%rVopLb4f$ zaL5n}#l7zw!!R<9fwpU?Z9QaXGdHfEqr*8?8%%S`WAFTarn5)6{DRl9x&ACCx7_<% zm$2tO5~ZBPmc7k4t|pTzHQbQd~vxRUp3DgcKpI7e8xGL4Y+?p=ze4N>RdHqgagc zXg8y%;svgj9IIr;)WNCZG?<1`AQM1W@-#`MtQNU|_F6ir#vFVaGd0M=I&AhhrD)b` zVolT<(Y^sZIYUi*@)Rjkp`H(@MlztuzufA1S*%DHx1**i}o(6`f#m7Ftm;lpM*MfGV1lCvwbKHOdqpN3jOeSZdVh zl2ExGa&-|^!MC1NX9@*d4b@sy(ZnKm(iTLwSrs)GQp%7EIzy;4MmdU>=vU2!5~Y`3 z3x|a)Q%w~=fm z5ICvQ+G(5SFg#G?khyW=9OpEvbw}HIN~wf7vD-|Px)au4=kd*g&H2dLjVWxYO< zXT>=7+dZ4}k#5CyaM^Ye_NUtsw_RC`qbyt?a;JI9v#KvY;pmN@>o{ZbH#`WAVL+ z-EZDFC#8aG^dW57;JqW4%yzR8I(C~dPNU*dB)pEFI1N|`tZ63`slF(^&00){pEGTH1U zexp5<=R`|~g%CrI6>7#)JWWen805T`B5 zdDK2qQ^Fm0_+^V;9n&m3YKjNxcf_g6LKRN3WqLgEgx36IviyyY(lnRuXZwM`qV5~bXCl5#`F%|_cCRzD?ABOq!dq`=YuR>9v2 z={?#T=JUM__`C(}P*!q*#%ZjQ0CtFpip00NWrxxB;N}U;t$_E?mAujET)| zbLhN}_{OtX^!V0MROS49!#pQ^<8e-Mxm~wFsmwS|Y|cm4M;)ifD>j>v-T78dXN^PY z#A>-z?}mc_BAU0x)`9cS0x#rncaf2ZBw^G=GNcM%+ir!ltB zTF*0^8>~()v0N>o1kP?;7cFLrP!%U9YvySt#ftG-SYTR<6k1z0+kq5BIs~v@wrK5% zG2?uP)|z1$QMC$6$SGgSVRuQVWHNv>m#ZofVlrgPPsi#>4W(sMo zC?{FGs$tPN=5Ypv5Smj$Y599-(I$!xqJYy1qZIwo0urPkUGdHN9;M;vc*W(*m)P$m zc@bvO!ulrRTPvrlDKYF4)+hRPPn!>j&NakXSRWk|vrwa~@t_Pj>=^eq zP$ZObjN9wK*HQR)-5EabBB+dG+U`;I8dZtUAcVx`#tp0~C@n$XG#74OJCjm(qp2in z)wHc=o+CMphiZ)3KE6X@Wd1E#f=Nrb|hL|GWwKyx% z_NHAE#))}9fOT{Wi5*Pi$TTFZa-=BtkE_)R(|AH0*>4MJx=Fieacxhj5`3;y=6Pb? z4QSQUb_*Kk(7K?s7l-OJVbGKsgjHuPIR;1-Zwy6gQcT2oq9l#(J>7CaoF{TjvHYXrKQ%Pf#s(^E?&K654kauj*;^rvgIvp8K?FC6dQL_YO_iBGt{XAZEN z1DjmwbzxEsYI%{{?8IvPRi4;&ET4IlaZH#tbLG-0?dglSe)XK&FD+11UU|Fc>%TzE zad+KPxxJs*=FFw80kuTijO`|rKV#es=wXlnP1}%BFzqo%E8OW3b(x8?3 z+zwc0z*`Yg^%k8gRVj?>P_dH2K-DsUa>}8!5)G$Tm@2(1v{W(y$c6e`NB$7X&T}M| zjJ8TtqSndxCM$uv*26UV0Q{|ULHA2kNmy%1`6>#JVM!Qfk#QY{c&nooDJS-u4c4`k zYREMla8oTx%b;+-+aJ*S9VKSEUeR_v-ZzZHz_n{559@I~s3kn~wb)7(?J>y`p5pFa)mOxQTb3R28e$f~GaxytySMP1{-l z9Pjrm7Aw}P6UY&3A;!%0>o-~SJx519rHD{1rXA;-K-+lXY%`9`K`-eIhvU7e6~5(Va*$g{>+i$C&M=j2{VNn0d@845Vp zVKiu)(b|*eNVSDH&*)O5(V;CRf!0E@QB~+N5~8g%Cr9j_y+KNWa@q-6-AOS%7g1Fj zB`cvSm6#*dbS(NFawgWpI$1^dQ+1IKS3{W!$`op2(49lYLOSg1N<92oM|psCQBS&KKuw8!*q!D$k*Y%*M_m-GZGBG4of&Fo)mN6i;{x#B1YT+S zT6yBZUqRh^k;^u7eA;mK@Go=e_zH`o+iB~_`yPBJ4?pw{KJ0aG;I_-Ra_@!0U;Tvs z@J872YgZLv(A<5&9Z(;Z%_ftZmgeFD9Y<;iHiYOyQ zq;9DhR2JKusuJ9I}3WJ*P zjb>##=9nn8GLAFDerCDq=$e*k3f#PT&e3|w(eawiW=Gp<&WFPJcA$51pC9H*E}Hd) zCHvjLcDuoOM=1rXE$h{i&340Xw`bA!%wZ(une}?jcC!_KIg#P~CMOr~;?|dZG@IR1 zpsu2ghcf?OJHg+yx8r~2PEe@^zg%+X%RZ4bKE?aq_G@UJ(b}=w44^8$Y0yex3gjFl z!LAL&QDyiwqT4*h^@79ua)Hf2ijig4*88o3oTi3gRwKMJ8a@$^9ovj#eSexRWEwuqVwUO}io|Y00P}(sRNTtMt)|DI+D1&KQ4%AkRt<+>l z^C`L{vw{7!8#H$;$syrFgkpK(hUV^5!@_BX=m<3u zYT?51iuv(p7|$)Vx1#F6bmi4_Hc-MDxqlItkFL|b;FQzV3V@Q$VeyHCtZ>YnE-U02 zY)fWh_xRJyXCuvp7VSK_w`eWsv7#L&%;a&VoQ-1qLv|Rs$h5gxcjT;SR4Xr-kfimI zGxPa5$yj{bNFZ7plqsMr+BH($)Eu176_t?(uR1UW?IL+DRBiC9o(9c4Oyn`59aP&x z6iusgvSYN~k!FjsnYK%$vSS_GI=!Hro@W1#O_ zsjvk_(^}Rm$NAZY{eHyG!tIQ6;dtG%-3|=HM7QX1&N9uBDMh-bp{PVkGv0dkyOGI^ zB63%Xk`;@-XE*G*dE*@4c>1r{gRZ$0M|BRx@y}N=Pko99Zd5LAl5p@cx#U&kdw4TfY4 z-e{hB=oy-2PunRlEvE~|!`C)gI%26ZjYSiRXf3b2?2UwB&-I6Y61VIzm)=0U`5@`3 zpQUY2xpLcmT)FMO-|)j$sbxZG$5Xq+SmEAdN6j-e-elTuskYGHvLx(xgw2+w^W=RiPl+)N;NJBuWf@wUaai~%yPGuCT8b~73qGY_Wlp@X- zt6Q>GWUa6{;X6-`iD{PTLD#o5{Zi0xQ$!n~I9=aPESAF2TrJkjF)&Vhl+p}Cr0fQ| zu4S=UvREwGZ3m|FjBh>E2t~76FF86g4CBCNv!m}WctGcB9lb(}TC5Sd2F`B-Nd_cLv0+3j|KVzFq6q2ipUTZjQJ$09sJQ?bs- zrRKDURB;FDMouDFFh&W9*T^v}#>6;|l4WWdoUepwq=bSo3g5T1ZAYz@X}^P<=o_H} zJ7<|gVj8ByH#MQH!*>k|IijaHla!&xf>DKbA!HP-CCpkvl%tHbC~<8~br&U%t^V4}#Nyhr6(qJK%DL!|@>|Ee5N0c`7G(Nc_}F+Ice z4d-VQi{m>0Sl7h;mlizq^p-0Z8~VoKW_YMn7OHaU8oHwfd++OsM0Vqj#qxy3OFo%q zd4*rMyH;vWhgu>$alYaG`@sDtD~wr#N#uB)tB+jAwriRri*7}}UWZ8D1xlk(&cJRU zhb;Jddmy)HMRo?W>;!%=&EyzSZA(oe#mWfy6bCgWbTOz@2{j6#TO0aCiz%7bIzkq3 zg42dH%~UO{Oq`daNJwNVx)JiY9BB=;(Woq$(xR%sQuT9M$wF-$sE9EI%z{D^C9HSk zlms9gg;A)Dk=Trv$QHE_=74HN?a;LiN()VW4gy=4r-7zbELV;~i&B<(niz+PFh^Fa z1&h9C7!upfMw~fDY>R!@(D;`9eqf$v7K;{Z4AU^P+m2{m@V5z>@?0d`Y^DFGlmuwC0%a{Z7F^e0dnmJX)b!zeo=Zmc7Naz_?WrYGYotW+99!=s z^A{@COYTc4N8@_p{)|MxHw%=uq&ds|&@iGZI4je`P=vCqY(t7O>?c7uX~$d>SdG;k zHDyu$#X<@r+BxVNh(eUEM$w;K=D@s0k2CW&vTQBmGuH^0PVtK#RWnvQx(=@1NGMl$ z@#QryD9~wjIK(R!>q`I}uM((Bzv(AZQK1(3Je}vs^MUhW;FTATShlVFd|=saG}9)q z95?K)PBf<{sLql#_)A9uK8-WxsK-VP=aJcpQ=0Q2PLj@vhoqI`s>+a4A{#4z_ENw$ z6e~idTni~dQ5j_o=QpL9vRJKYjAZ@7AO^tFD^#A*QB#c}TPtR?T!~Yl>Iz0)T1scC zGUPZ&Kssm1pDr9R74np58cj+AAs`JY>*)FgwPv>G8)|eISDB}gT!kW|wI;^QI7qNx z>C89|^ou3O$0wv1*lzc1w~={t!V&B=)>)4Inq0&HXbiM{L(^!+VPcMfI9F1H(kuGD zW4}-A_mS0FHa}s`C{;y?Q8nIMZn?Z*x1EU*PEL-=`35OQP%<0P%5dSr5ob5g38~On zk&5lMiN5b}E|Fpuy~S>1v0QO{yk>XZakjh0?Js>j{qaT4Z$61#UOFf-e$!(2e8=M7 z-y*m?xex7nZoT7mJp9Z5iWFzO)0`e(JWyRCi=}6~-Qt^;u3wU3mZ@lznvZQ9su;#; zqHP^9Wyay0zV!zRv*7cMw~V8>IJ&MS#>g}Ttd%!jPVw;8^lZ0#th01|N6D}`+hL8R z^B$qv%Of+hAQw&50ZXI%K9W;fx^NOPZl;$wm`X zz*sBOed7t^MA%G_5=ASp2CY41p1A(_Bi#DZms4Fb|fCjio>GJTzBc z(0I(D4Fd;9q{$pEK~ca|6&t1Ll;NqHTi(A5ym;+d`XZPsr5Hot*(a{EytIa7#~8VJGtl=vwMeMk8qF{cT)mcAE*IqeNTqUg z+;Mh3aDKj_X&hR6`p)5OWk1h&Ww5#x(Y-R<_nOb-WtReBMQH zvAW2uFZc+C-BVOmI6AqVzVFy>&Iuu~T&_?m;u}ZTc0xohl6tq+p}l5GnJ|q9H?krO z0VSYo51q_P5pub#|X{2Xy{^w_^?oty@yf7^CUBMy6G>JoMfve52(evsU)I zfe$2tdkvOMiwrkoTxMBNDP`>qP*peq|;Ka zDCcq3Vk$DEFcPHASuTyNb6DkxC83=hlQRlcWzrWbvXgX*5Hs3Xa;~Id#5uw3CzXk# z2%l8dGRYLx6N!v<4x=k^7!QB1s3{W1NodqYQBo$5@v9z_mFzy}!n7H1-ch|F*C?|H zt*IxCT$~$`3Az3<(-64%>i~QnyHq_o?FB$A=f%Ar&p>WY? z*8Tw5qhhHzG`U7@?nXYajZ7i)np<0rTSuNpOfyhf@btT%z@&`rr1ocTImYHH7<@D; z%#5w3=0rN*qn#yp2~{#xYXMKR7Sr}H&7>(1&IhUigYo8;A*0 zD%G10))$8mDJ9b$t>oX=j^Yfd?5Sg=u`Q_piRG67LP;AV$5y zNZWQSSDutJP3x$+vfu5QVxU_sIXY_CZZpF$Q+%Y9O4oIm!|-L;?@%aKtDd^A#88-~ z%vd5?i-6rZOG<^dHTVY3ZV1K3SWB1-ZP##oB&WwPO<1d$L!#^hi$zBW!XXHgY*g0k zj-rZCiqe2v-on|{_hS1MC%3$i{ml5o&~I9{Xvg@mUr} zm$>yspUJd8XSI@K`ffW4Ww};jnDM^FI{B~)l2KDiCYqH(PLa0lh_MpmM9x_rbS1%R zr3~XZicH2D!YpED6m)Hmu`&&shKX?+uw6^%8^Sm<%`@7l1J2*ETy+?unZ{XASFRB) zq85yINMdm#%Oa$$K{-v%N&1;6j54GoLZVb<7uaqKvkxRg~3z75WAXH&xNL5j)G-al70s~&R-LvFM^Gu1M`}O4K2V2C@~9 z!!#5Yw;plZJ+}f*@@RVI$!80{`tY6;GjV*mBQy)1nG+XQnqx1$)G!xrX%rz9p1ihW zX)|r#acSl0td|i#iFvo-pSw0ET9Wun-z`}zdSXe;VJ1w8m}D5zFFLxmA;pRF%}%6w zZG(4SsMfU-QqajNDuxlG?6}L^HGR!kI zNBU-Q*y$#^z9kpU=3HVk&UxvytIBpe9AxdDsvPIn-^u=&Ut@pvEN*$3dmeZ*yR%0z z)^YoNuf%(QAL1C9`E|7ZZ?*yIgxOw9}+`Rfue18F@mef46TCGW8;_T)* zO)EUWFwe4^;5k5QkUEa>7-yKrnQ0DqFUOn^CY*C}^i2^e%<~M0mQbv7g*gP)>m{HW z#}SjH1{Y$Y?H9C*hH*O{9LJ8PbtE59IBJ%Ezhoib8Y>d>90ED)iRrn^d1yO_Z3Lq= z?MG6YXHZz&Oh-cU(bh zOUZ>hF3;R?dC7xMH_XsXDZKPURY9A zJn_&?ii;dwx=5Zz%%YRLUQE>8L`sRG3}GD5wa}fOP+h^S9nEru&R~>AAD@uZM4tAP z+~B-Sb#;+QkvZ&=^B9?KZn4gTvAEWWhNo7HHCWT2(b(1zle|ckQD9q{-p+}xxj?Fl zsuB)`v4(0z1Db<$ixUCeG#Kk7Tweii@V1f03k9t_i6VE2!$37kV7O7Ct(E83R~0&|2Uco6QzwG|pN4!V_~8y8AdX40~3Kp3{rR%yZ=I=7vEHw4E%5 zzHRX*mfe0J%ri%;HP%gp5E*tNN{=PcbuCBh6~j28m14bKFzrXlHYx!>bbZIk@rvzc z$9_Kw3?&t=UpwRYu`s?m0i(F$XXjHqSl|C7^ZS?CQHYzxptX zlZ(vz8^7@={CiG>|EG?_^L)lQJWZ_;N?|;Ig6-KutWICdezT?RTb9d??Ph?3GjzAz z0*a#(@pgm|(W#J2VYzIC&^t>f*cvYrG91PWO3PXSqz?O$Ib`h2tPTJGfB;EEK~xsY zo?J5XG>QjT8kxCST9G&upe<`<~c%$A8b76rjVxBYo!qRme!!U7myiV75^nF7N8D|_ND2AQf6?VR1j)|%cBzYCY$6Yn&XIoNC zv`xb}j12qA$;DGD8+O|r-ZfZn@ZO`e5ULfK<)Wjgjxs$(IC~FKWg2Z+c0Kdxn6%m1416N+>!P6h#8AxzIF{`P=VBu(VpODYY<- z@j%`X{orEJk#mvmaxEBba7OM_lrDz=bwF#`o&z!kmMA}^DB>8XwqpE()^;Qn8HSOt z4+1PL1y$uP%D0w`lDuTi=!1XT6p5D9D)u;Mod|ENCIzVZIqRQ6ETL>qmehG$A+4llMu2@*pxR$;s*3{k$n zjgdQL=dl{XW}p~JN>r_-0;l8wGR{#_!g@=Y1(={4xks*5z^C3j@wOaJ6(}%HhH7QI zM|+1_w4_+jRgp>*dYQ zvLR)|`T05C8CvVnoj7B)(V(HmLI@*hg*^~|UE}4xCS;kW9tNQ~M!A4j?t_bEDvBDD zcv!T<)ItuEI8ltG{L{3jX*-J6(p}XGMJ9(JGRyshQsyA@Zoyepio`I~f~00JB_)lpHBY{?c?-L_$U=C@xj9vxKYH&^YwEBkPRLl4~=@P`&KjYfiXkO_>tc zp4~9UMB8lX79H)882-Qko=^)(_sk{H;7C=BbHj}-(|%<8{te1xF5Gg8Q9{&Fw&Lqy zVPCiC7>K(Qec3=YiRVU&Pub0bnI)1MyPrUkRom@rZInUbosKw`!CO4dRvRz;yQ z)M2J#C31{_8tyS?YJMsTfOK7*A>J`tc*r?^46(EQB$H= z@YadvSX-)gpc7UpijrMqv0AhUL!gMJ7<9t7&Edc4NpoVmJ;z!{&XIbMc6FUco60yu zrfDK&jnQ)7zU+Hei;ih3>~?#Ujw}~zy1ru^28^{#)4=}fo_^WVcAgkDH?E)2^(~9# zf^_h%gt;6h#+kNrjAP{b%`GP6e~f_e@h}wd`=ta&~@3PAieD zw-rspb~CU!+p}6P31eg)X1b#VU3-kuB34SZ5XO<_cqvyC%0KVX_jmgByo+E~V4F2L zZ1CMFVRM~uh--MSXj+dohH)Ah_9KgB$71OihJf=8##Dy=fcFihX3XKCE=35y1*H@zNq|~c=$9QSM5YiWe^wI4SX|rU zocw>|5GaRTX4AE7riiu)Zyo#XEb2w4Fpa?|gT)g=f}F_}tkpOpdQWvY@mS-~>Y($? z8e@zsDricH#A!sE25S_CN@*2ZISPR|%uo!A)tg-`KM7j%k9; z(>HMQ9^)JrPmYQ6OnmkkLQ%N&G0n22mVr1Il#+OjI|6m_M7p+z>yC_L-fmI*9jdKl z3MmbE+n~Azw_X$NOick|K^c$Eff6#s%I8%y=v>exfR!*mD3V}W&{aVyFeg-sR4s7Z zS|g?Du&Ra9LM+Vty|kGcE5C;Vg{CBFl6c)nbEF!nFP03-NiRGV<`A)MFT$l%4jtzx zedtmt`-JhHwsSO9cC{&~L&dakezwJV&3e56rP*$_%xM5BS{oYg>HCg3h&y<P;@*aX(@B2=><= z6n3Ip(5)|#hBNdbdd2U3C-~bI$LBo`U;n`Sx%$Lgx&GMOSY3P}${4!S*K&069(+?7 zb`vosVwiB&aeDEXaTtlA(Dxl7j^tcf^c@u$r^ggg3PI~An5TgE9bNC(??(2!JqU?=m&v6Fx9~ujQO2P)#NB{8ROob5AyrD!a?DK$twaG@Vx~BQ zZ(B+U(%Ht6wFZ?@gM@9Xv+}^jOg`L|>E1z1lx>s;I0vdhFjRRKZ%HGL2hygq1BQ$)9(sx39{Fji5cp(^oZ zTO)|IsuU&2eWLP~8UiI}Oy5vdmC1d97-ku`SVNs6IVFtql5@2lU9~iV8cnT|r&Zdc zbV1cZ7$dc6jMoPUh&?D^wG7Zwk_ZzDZ56d@oRuo;JV!zh#GAI7zFPnaZ7NDtLV*2t zl#YBWx!G}^2{DpmqEtoGIF@}c6}sI>;}ol-6*X(dX-_VhVL#I~4eQm4Db0-gfyJ_8 zxmvP2-ve?yk1^BtEylohI|;GL!myiA+K?60l328Ir8P}6Z7UP_Ic8RUOHPSt4rt#p zZy#g2`W|-sXXw_qa@T#Iz<&QMDMxO<_Z4{W@8Q>{!@pI!{@h<5TnvA=MNl6W!TIc& zXW5-S$p_x|-|%k1^1?lw-t~H{Qk-wL#296yZVg6jrfHC&#bQY%GY&INBV+xXD%N>w zmGQc@hG7_pG1K)zahaxsZ?u@ziU_Q0t(2laNM#Y4iAc<~swkxnCc1iv+t>r8CCLv% zMFiL=R_i0IuY@o&?}NA_v}MtFA`<1PxiF6dB^Hctu~t(M&qvAWgOCSpwESS!iqgV2 zknpt}pOjLP_E4IV!D>ZSh#xi2WEH6>tna8%S_8_+$Dikbq7rLCnFGS9D#`2RLXImtR9U3;&jA;#wbGg>6;&kap-|`wA?-1y!St=L3AGW3LrEf2nrG4^US!)j zl$Q7fMPoXPUog}q$*cql3{%=s1T{S$YP}}x>l-@ zxKSpevpOt9hFY@V-kJuKkxE<6s9dE7tYtDBLzK@_Yf6ZuX}~re${z?pDa*s;q}FB* zG$5^w5Xf^mOr9;NN;?#$ux}zqeYBX64NAi;nqDzi{3F#kyI4Ui1XMwM=dao z6V@8qWy7?SYF^Vf=qfwTuJa80@WE$1m&|?`>D%^$GlZfFVG3BSS*_MgF_B`VX&n1$ zCXO=~PEXKAvzs$#&%A^2>VF5*adOK`IKFrf``ry(bIirtZhLMKocQ(oz{qco$NZ*6 z@cE&t<5d>NcXE2=HC%n*dd`64O{@QB;Pml_-SDa?e&u#T<6a&9cY&mJosnc2XtH38gC5 z7*x%uDroc=gh1U`EjzZVutpyif3VsR^F&pKqAE&floGjgK{8)taH~c_++9m88C_N#(QMiXX3?R0e=xmGG|L8xqmUW4d-NQzz9r>Bg2(%jkTbd(92(^Wc4d-X)R4S`=$2>*mF`}$vv)wY! zj+4_P_S=bRjI574j5ZA8Obk1W^(CNBhGo0scf%r zs0x-x3u#*=32c^<07cWvaVrLyCVTH_TRB?GF{ct!qU{=7_W{7Rl+=EO3BY z3YsiguLO0LBercDVcKQ6&QPk7sHh^lLbR4{zRxsXQ_B{NMb!mulc}nZmArjxI85A+ zR&p61iqMIVdTHkzcCkil>Nr5rWIVbtXd~|m-x$o%ilPH$+LJbs94fwRs0`!?(>~&R zgLV=JDsv=e(B4ZNs1?Wn!GP9s4Fb?Qin5Fe;-X*<_n2z!1qM(nOp&^s2s8L5frS(c zW?#`OhdRJRRfSxljQorfArA`XOwi(9Q4xdECTe%X61)@gJk=i*_-=cGt8e>%yRVDUR z!8DGT3#KM&$jr4;^-PZ7ypuaSWvRLnrkOMb)a=MeD8FlaoVRq{f@z#FR`RwnC05Hd zO{)npQ}fK`Y>V?kY_U#WNb{W7Y_`PUSuPeBo7n6J#<4=)({+Z$vd6cUVK*_&JC=RV z(eax7ZqMc{VYEeSjrRuYR_ym9!+xe|J#jm5c4NoU@sgD{q&W~{Wph5USU8SPdN${K z;yhxVTx%&ZUDsfAW|%Vj?Ut+{6^Y?};NhQS9ygrc`f}2A4qSe|CGEHUdfwykBft7n zTzmTMT)h2d+<5e-N!4=4E5C@GBkNVmZoj8#Tl&s346_U)k_gSaz9EE6h_gT&Qz0b@ za#~}Vra+h{j4`;z%RNAf#5vOT3rbDQW0a#-iHC)=q13`WMx2*p0ZI|$EUgmcF0tzx zw2?(D#6aWQL!cCLJ#geo6)=OUXrtuqT%?*)(Zp#&8B5=_#9YwEp=v_af~uNnju>50 z))0#vshpL{UR4UEDyA9|2pTJAv~oCQF|8rxKrJGSQm6w;N{+3iWO9~!%2EocfFc7E z+CU1RYe(bd9w>ptfl8J9VCN6tOhYaSRF&w(6b?_ENXsb|8Yc)UYfv$fQYNX4L814F z6laRlC~F}@nj%90yXr7HiBDErnS|S|6ER302Gt)d{t!KGj zp|v8XLQa7gGE{NXv|Woeirwyq;rmw4SbO zm_~`v0CWSG3)Vd6aL8_lEsWJOy1Zm%k-TT&7Y5P--pVK%}l!1j;F8 zl!CrG%ea%+NP0)Neskk!YKkos5N(wV2WLzumSPnp1YZX@O59%N#xTvVwP>iCY(V-H~&M^^c-=lIOj61n+ zY+95za{s6^(RBD_W~nN}K9Z+NKIgWTuPGS9Fc7L7;c5_MeAb7Hh6FKf57g^I>Kv`I zz?)Gvvhpb=(D={alTc}zhELs*`K<8 zd8QzNcHK$ShgpK!bO&$<0@O7mlyAtU%3_QR@hBDN8)=P{iuVh~F%ajGl0<=OY{EHD zDF$B@DFrb>8bjB%H2ng4Ezi?5ve})}`JUx!EtSidC`vQWnPGpE^?J=}y<~H~;q2x> z+gW^L=z1Bh+_=7D*avEcRk7PmG>xHONn9spL$mOtqS@RWXcva{(TW%&`^}yZ68*Ags{*dOgl{jgoHtN4 z!}a%bbju5VrzPxpnN2W1WqEoB%v+4pOw-JMyXWZSh@2xiWmfB+S_R`> z3%Ev(yv{kooUvAZyJ?)L6#7MjR*fKhb|Vyx^PL#PV#Ilib5fB@Aux^sYc19{a$KAv z5m^u$-yEuViI~#i(pvES#%Q+Nkr<_`skEYLTU6VT^UO5NsOs^pK@~BSg(%eDN+Ar= zN4AX&AS{|(Gg?Wi9;I;B%EAKR6gtV@$23W-!+4a{2eFPEzfG}}m=9v==3tR4(i1g` zIL(4=S5S?#akPVqL^TQ`+94do=th%uMj5FEmJ|g9p(OXFwfHS$A(X|MgD@rcT zEcy?2T(JvkEs|ZEl1#Hn6qRVKgr*e@e!Ya8P@zy_LEDD*XiaiOrp!sBm6hF?g`DMz zLzjeEW{H|)31T#_=TdYoNx2Q$}J+N&vvMWKu|gCJ*BQvEPDk zWSX5Lwy~tD$hA;I_#hR?v<6LPnljaCtUgex>tSeUByc~E8AXzXTUD^KYik!RsT5+E zg-T;aifT|;R_i4>H-uRxW)gm=oYON+Q2+Tau7tm z^UrY$1Jpy!%z2EpC{?8OF&Dap!y0{v)>M>M!~pY@Sgtx;Ba2WBnw%?*&XibiM&a59 zw2`A<1)U5f7pxK?ddXF!=vtG*p+iie2D7b)hL*%RpxmFssUv zRm5nDZe(IRM@$WbInk_ER3j++GDZjmv+Af#M#qLqlHFOBC{o;wq-)pEUV`*hDZKUa zl4!iN2N#{Zz$=)(!G?^A3DbLNH_e&qhHQBf2~j~)C@fY-tWQrt!;Pn&VSDoi&7!AN$yORKq%f33tKxnJop6g* zLiqk*-?9p8I>Ho~!iaC33$ zY_~h+Nij`^algYEk)nl^xqj^`i^YP*J8HEwZ7cZuair}e;M{bMYd3Dv`&N$bTA{0B z8fUgCuv{+j-Z73Nxf~FsRcU#7O&(QSqE`pRyND=Ff$jpqx2qCjt_E=Nd z>;~}x9C?QQL@k!%3rk`M>~|wg(_^i|HP3}Pk+*$H%#*Ya`c9Lr+$qjyTNE4+KaR>C zV}r<{6NFF++dbrRVDf3kaRQKggU(~DV1jZ?%=1jCmA-4GlUp@4MY*fWLJ(Q47ib+A z_lc6h8BJp~HENpH9U?KBJpZ~M8KY&o>kTGGG1DbcZKf2_TA@riXf+QH(;R8LmRnx* zV&47V-^Dk5>({VYAMs~D`?FXdt$F;t52N}P*EGaxV9{cd9CeKoELP1*nk9#qN~&_- zV=Lr@#4VI$#JrO*bghDYFXM=0ZN(Fo!6gWn(B|pjM0NTkJv> zhm59OHk3IrjfsYUDupQu8Jez#OHq z)HUQ%aWSDxA?1Rx9#tY%TdHd*YLpj(R-|E&-mo>0qo@-wxK0ytq|Av6rPb zU;5{H@&g~>vp?rg@n^r_bGh-%b;&3yO&n)bk@(Y`1(OenG)fbrRMAK(>m>H&Eh%O8 z+X=0*ERNQqQj50*zk=OvWV@Ycngu!K!@?p&mKf8a{#IxX?qRe*Hg>xW=bJ74Vj-a6 zx?-Luxy#Lkk`+zcptNS5CYrY4c)etrCg!;iqijGH{gR{OQ_jw>iC3f*dHXa?(u^^V zzVB&p?4EOv^eyu+GmV9#lQnxaFb&f5>N?Mb3rB1=TgEZ4=sLE!5JI60Px0it-p=;f z_Y$WqeY+;+-$s`H|4(B?Yr}5yBv1a@f01gB>u7sNE{gN>Gjdk6iN?pWhPklcjRypkVYl63n@)TL!=7|U4Z|q0mZtFnFwKd1Kay*rri^ul)_L?{0&R^*w2e)~!{v8jCe2WjT-N&5%JeN{ za?+G6eN1s7OQo-*fYnCg017l(vUN@$6afWe9n?z635x6{FI>9Jzx=j;!Oysz>Z@e1#M{1N`hC;UM^?xWwp)h9o|t+(7tRf_B9XIy{k8E(CFLG%S}&oj?lWzI7f zPfzJ=%h|By{N@eryz_2Q78Zv0Kk_)O_Z%&b$fe*~%M*`1hVK@f9v|b5m!RRP2Or|L zm%ISB1CPD?VaSzR?zn~a!YSisM|b&{C*J)&E?+#6osSZ>-s4X^&Rs8gF>Llybm$#V zJ^chVYU25hyYIh`WF&6WpPcaMuf3Z~7mi4=uv{+~a^Tsk*IA!l!sN`l^=x)q&dnLO z-*SofKYh;KcihRtkGvCaI_|vZ1>D%}8E@WXVOPw~kf>a`c!5VB{{UBRyN#L)P1o@L zN8U?cEPdCppJr}7xx}LnzmF>~z86f#ezRwFyyDSEACe*77`WxuTgas{O*6M%IOWMF zAEWDg42H$w_;X@}9>Y z<$)K!l-IrDWjNn(y1vNM&pyRnci+jAk3NoblEI`1x3DTON=_Rk2`Olvq{6Z#{F}B`ob_Iq*~h0_Z?a*_WPaez3Q8L`_;tX4h7XwJ?yIBRH{ zhB;)Yi4+sv!m?a8?6)JSWGt0=N{my&I*WG#H=XA|2s@h2V9W_~kRxi>%Vf(p3qp(x z(+m}w#$$|O4v{bm;MH1(a-OF3gb3jI2pYf@D^vAw|Km4hm!hie0AL0+a;bZu}{>8WR#N$u!CqCzoapBfW{J;gU*)qu_0za?C6u@BSn2 zc=(;f6uENw3V-r*KbuM=9QAzVH~eFkjpd$u?&ha|?&tW6fA)*`-XH&Q-ug?w%;v^5 zKJT+Wi&ww$5Ac?sdJDhs-+zf~*RJ!*S3JNMe8K1QZQt_G`ITRL2e;pL8(;pv{;z!Z z_x}Jt{cYb$V>KW5ksrZJ?tcaU@b7;;DOLXT=Y2jef8aj8p$Uh;I>P*^1uCsFXIP(@Q3;7pZ{5=Ik7q0@HhU(S8{xMLY@Q9+_=Vfeg6;e zBR~10y!fuW`MY2Dwfw|eeuiKC)nDO>haTa>Ui;y^?7sW?qA&dt{`TMeTfFt>-^!(n zmwE4d-pk8h^-7+6@^Q}2ciea9-Tcb0{SQ9#(?6Yezvtb2;pcrmWVrM0yZ9f!^me}a zpZ{~bvsml-8-ML9NOO>UUuy-yZxpynE(+xx9tpQ+0>f^^Igjrhr3$(~$ADh6twC0*wjhrlq#14j}Ti;ku-44WOR^@{bnW4{}@d1Hrf8rr_aXvH`t_PZU6 zMMv9pOw+__-LY8rO!F)!H(gmS*Z5|Z@OA5{b;tR3V z8l0Be<$ga=tHC#lk}Gk{_@#7=;~0<-y>vGFcUIip~)Y(QJ~`#mv8)(@4iMqmJx!n_Ltd0ej0R^GP zYH7}*osc|?5er?IXT+FPQ3p3{K76dLFT~`$-~Ju{ z2Bj2#=}W(iSHJdk{NsP}Pr13h#?@!8ar5SNzWE#e5g)jAldt{yzs3LOpZ*I9hOhiP zf1N8=uJGi;kMK)B|0~?_qC0r=r+ymW`~Ba?-}~Etm(%r{pZ%3z;F)Ky@e@DsqwKD4 zc<+Pnq4~<35T1`r|*u*MG%V^A%tJ z)x7uTe}!-VuK&P|Y2rWq$M5FO+i&6L-u5<(HhlKyelBl&+uJztJwN}GZ{_KyALqj5 zWA1(V1Ega3eBIao9ZIPD#sA~W`DfqwkGb#Vuj2E* z%+8-MHTxc1Bw-23vE;)~B4c_aVkU;i7LzTppl{2$@7KK0Xh!-st&Ar-#!hkk&6`fdM&t51D^ zzxYvjKlr13!~gpq^6dE;-};ZfiGT8~-^2%=y~+>%!1wb0 z_dLe3U$7guq%@PJgmNvq6qGI$6u#~8&Xemb@R2O`z;bZ1G~OLNIa=sRDWH`l#*DFs z<+8(CM~H#58)t_yK`Xl-D;eJ1xMSP}`en;v(NJP#o&zZ!T0=(Dbsf1JKqk(yT6ff{ zh%qw{vT(W9v05$J??*~Wtd=b$!4v|yW(oK=EnVMy5Yo^zE%Q7xrd-PP5-eLaxN^J2-#r=UANF%h}l@q>wqi@*ynNr`++955;?bC%-dL^|ujZ zI4pL*=Pzd$q%@J!K-E^TL0~R;lTu;WPo$LbzQH-iu#F5m znSd!(g-+2m%rUdMxr3}(uX_5fk$V-T$zx&M1ad7jU5D0Eeaoc~=fFG$$$bH?>+s$m z?&zv?hEtT7n9&$rF}jd)7IaoE2VEw7#+yH#@BYu<#oK@Wm$`89GOhRgz;}Ni0B?Hp zr}Ncc`*jS%mT&yJf54yo%+F-Hw&DK!U&6#y6LpbV}eC{9n6a3is|1fX-$dBao^dj%Sah1O7Fm1bHCn-6|FZv`U;Np(F>Lp|=GCu3xl9d_I>0Ml{t8y7M+|Y#m0NGY94&eCn?8;8 z>X@VT3G3T#h0gKfS3batA9w{Xf5}UD*(+YbTi^am0KD`#6ZAAbM+JpSJI@DU&Jk-X_mpURvDu3tan6)$~&7v6Ud_q_1M{MtL-#YcU}Yk1)P zmvgq+a_=4YK!9)h#(%^V5^wwEU*v%YULp6cQve6Q^viGK!S_AHm;bfD$}j%-TPWv= z%NMS2+%LHI?tA3&zw>+%XPx0^n^}po} zAOEr3_kz24$2>H*w>}O~N#B z<9x$(bKt>uzLTTlBmUig__zG$ANntBO610kYrOguuVNTS7RN{YrT_ge^HqQSE1<$# ze(@K%`hjQoiMRYLZQC*Kcf99`M^FogKU!cet@zakAEYscSHJevJoWT5Oye1!@uxnQ z@B5J-Vmt16|Km^d?f>jw@r8f!OSpXZ72f^W`*{0%-ovMV?&olNddfHblYhq5>*svY zU-(j<*j@+VT~9oMKk|I!Yd)0!@;(2BfB5&mk(b|lKPT;yx4h+NS*?!=!;bep`UwB@ zJO4Fb`89uq)AcFudFVkNf9N5;>pQ=TRqwg&(q-Q9u6MJYM)6(jCjO5v|0}%veedGW zf615gqd)bNeDlBjX1?Gre<}C9;BFp!_+g%S;zX-jj9(eIfxc7y3bAG<%-dDYZ z*S_w<_{2Z*CSLXOSMti2-OuUe3*2?ji}=_#d<=i<8~-l9@{YIj_rB(9`GNoZJ$%uZ z{TVKwT;Q3fp5mw9_Evn?k|WGP+Dyt=ta4y1w(E#FV{D?#k@0Mx%rhwp1Y@~cVw|Q{ zMVJydu5Fn16Zw##Jvv@UG$mxV=Q{wrZ&@rBoSYo9UiXBUq|MPd)@zyO?uUsRH#TgC z0i&%*kaA@lX1cE7_+*7|6evRo(&X}u$6LoVY$!3%Hw|6eQnX^T*%QXVYQ3WETBa$` zbuHdG_WK>fZijc8<+7oo*zIPFu~M7}1+5jXF-+skJdZ3F4Nbo$gqbv4c@HDfmd+X-FNW+`p4ghCG%%L=TGv5U+_ho-P~~b z^a5{q{p)$vs~+I^=mPI}*RS#kAM>%i@b)`-*~?$T9e3Qpowwe`$)!{Nmrwi@zW7gm z9=n^@dBuHqa^GF|@W2DF;O@(JalB}_|7G{{M?T@>_|R9qoXeN*WK=U>^;LhJ2Of9{ zFTdx7+;((IPKC|&Ef-qDhduC0?z(h0f8eFB;suwl@S?l#;#K#(giroMAIB?R^b&jm zQxbphqh8M)7ccXoE4TCEuYNTj`M|6Axu1M1pZD3H#b3^Kl>jvAp(Guj0yWx6&K(QFC?#8r4baTiFpd7l*JO)b&^(~V3ahCLdaAKi)DWh z9?9L>Gzvn_7$cwtRhXs#D6BCw?ID7uH8~YROc*1S=M?kd*)14jS@b<^BkIhQq|lIa zVY`{oO5M#g$T+5HqEcx)>GGGX2r=QDW3lMvKcXSr^K z{h`c#M7HNKwpOUDtyy{+@XX5Ql6`K)k-Om)@v@j;9eLKPd@q>${6E@O^69)H)nx$Ca`M1dJco_*^5teXYx zt(VwOI~J>B9)0IKxqSID{iTaANCe@jM<3_P{V!s;`Ye6ZlSAfx?|l!-X-qY|@ZLKq zsjw@RqdRZq=|>*n){{$Mtgr=u$8BtdOufAFHx!?jXQ4MxX#h( zCEDXP*WUj)o9)1byYJ%Y)>BBC>HIo3HzQZ>yc^~LT*r;apQ41Bi?`oN$pzhXJbV3V zF5Pm8vfYC>m~O#S4?il^MlDq7E4SSNjp6zePogoL+n=9eZ*cL>yO_2c$?f%C#Otl*`Xi6AST1S1Q&JeX_UyCtixulD7a>OI z9P!4EXP$nBIc02XvD%=Err3%>>W{`sI6o`lTZTD`BrIoQ%+h#lJw<~x2IriV2!dex zq0;qBxnoQ+q?@LhQl$56o$x0&o2~eO(ReQ|o?N03oovfuDWvP&c2CNO-^)ldE5yPy z3szrgfw<;eMa14Xsp3VU(kz!tLI~`pk*@3Ly~9|`I84M;Sgv~jw%ZL&(_)Nab2j3v zreAopb&Nw{fA$dPPyZ5|tM6fP`VwCBA%Bc%|0FTa+;;D)@ZR6fuh-^&PmI>@YY}|r z1J}6m%zJp`m%fF?`VuF%eJHoz`|%jtGVFI4qXd9BjLc!e`v&hlIg8vyYw09T^GHha zX0cYz?qL>`&(X;-(>OB@1AX69lzhXz)e<96qT!t8K#GO7l_~VF-vElX>jX}a!5)s{ z##&TW6r|Y@gFr}gP8cWm4lyK3N*HAXkz@c8uJM#u*_;npTWP$dD%ov{>_}W9IV);a zXeYbDnDQaiUB&7a#I99p<-k{!31G?xr*1_XPb`5Hl03B5VGP7U9J5W=F~^yh5~Wy9 zE}pR2oCy&{NoMf+^`|*IyUt>L%#~YjC#8U~vMV*t3uraUeQPm_9Hk+mjTr9g6miZ_ zokzD8;~l&6Eh<;6GmxtgvO}RL5d!3?kV*JON9|flmcFp|2Vkidk8eF(<}0lz3cPld z5Xd!RjF+!ZDKWZLk=2(2w=e8RR7he|YaQ$%4}&NIjFqUAYpB+tJj5ae{+Ogfr<2Ay zN6djn8>%zRbHZpa#via&@&jKL#9A=Q^8aP+zoX@-&b)2-+O;cJhm((TMiL;95IKWQ zGT4A^Y@ERn=W!T^!8zbOwsFp5j{}2qHU>=286=WWK04CLp}Q+r?Rx*%Z9LyR^S<`X z_h>EFVlAa}THSZ;ec$)*x};^3hapuScKse6&7L|!8l<_R9k#HgMV_ZPhNVf{RYheO zV3|~v4hfi+g=I=A1aTBWUTUVGEpZ)}JkBZ0j7k)gMb{!HO1vPTsQ!AEsmQVn&zF=X z6jg~A=$lTK79??kDoebYkEnFM-S@rj4qt|8>co_R(Dpb{5w;^tQ!_7-CBwr57)YY1 zgO)m)n3n#WMNvXgWH^r7)njOvPHV2C?Q?-k6h&ldj%C|8w%&`4lax*;#rJILb%#zX zp)3Ub{Y|1Y);BSsq0Fx15=9AlnNzFPNur#*%xU%nR3&uUZ7Nma)dHlnnVa6j{OIk3 z;TS5KW%0W6sSh1WJhzuc>yE^>?M3LJ$UjsB|9)a5O9-d8VLH87PCwG9Fm01GNl|5~ z_kF?+ahzyYpJ@<_v) z0#!GJtqI7kW8=66X`(-rLEXo+Ef5u9mXc-_N~Mg?>_b+j?j@EL(lW3top{K~h{>rb zC^Z`mTastF1`pU8SdhgjN*UA|H5?1#Bqz;sYJo>p=%*imWx1G+_8(_yLRBV6VIhSi zQ+hIO874{<`bsS=@c zm5L(Cz|~91q$MdCrt9F=Yh-ywnq*X_g`H;@VT-KYp+aMrC@a!5hB(u_K2zhdDrspX zS*f%j3WecFZCwk~?nzwY1s0;NcTa8G#V86yoPuePS1}?fv7|{QB`VJ$)kPp_&65`? z(yNnXq27;^K1mc2Rzknm@{&rGIG(=x#hnBb3ndgvf@9d27F~{`gCN65+l-F1srNLs zi=)U14J{JML{4Q149kY7q|6d5AxY6bn7Zpw34<^WF$AbM)%bclp-?%F{PoTnxh`45MzTCswr7(@dWXrfY)!Q; zN{SLxZldyvT0OvYBuSi86d9-j&{%cZD=-}wY1m|OM$Oj}oFq;#9OxhH!E`(*sxIoj zKsgT5?$<(`GQ+Sm@z=oaQe=uQ%g?|N>giPnQEBo>Z(kEpD(zc!B!*!jfi#XFO-V`% zgrYXwkE$d}2r6M<2?Leq1ddCO9Z-o9F+7N6SsDdpR5;Sqi_NmaC?FRl29V{2Ha?nq zMJP*hEn9bWtjs7BI2NTS5ot-4zu7~OOYRIY3Li4i9kX}G3&?nC% z$HYL{26z^>?W2kUk!6UqgIHu!O0A%@a}&cfDeE~(Ww?GHsD!dg$=yMu8Bi5D!llehc!8_ zZ)>ZZsIYCHJX6GR2ucgurPI~KQXmYIEX&9eEjd?}!ZfvU(ROSs+aV3-Ns|m=>O+TR zS~@dr7$jLnmgks;#I_|%8A7RwPCKIARbZG>r>nv+q1_5;_SLD?0`e>Y1W}mNZguGC zsgYBVrWuyy5Cjc;Uult2q!0?4b%#8KEKczQ@97nqR(l@Xaqxqh1}n!gjYb1Y3BtK~ z>;X-IN>dF*F7lEfXn^bKGIJ*251YQ}ZIn>7eqI zJdY{!3fHx<9Z3|$T{FETY==X79bwkbeXw4+Ezge-~eTEwYjelFKYa>u3~*a&54 z&}2~|jSA2AupI|sO0p!wwJmT=3{zm4dhgIQZPGX)O$$uZ!u51a$#XPN)cR`(zY;i> z?xj?fqvb#-j6^++H#ZDHr8J8$S2-90DO@U5kW%OqQdwey28v3FDikD|zh@aXvSDN7 z6;W1@84j}2)NP>@MUo?g-pMp(VO?NMc+mP3)_HkwGQ3uLuS4IM2DvP|!*8J487Z7P&j zmsXIb5vF5;v{6<~qoyi>bX=-R3((6{b#cHQq>vP$qDo^bk&$H?(uUm9*m>#MC@Dz= z7#W~SR9RAVn*jen0KfT`kd#G6Y8V)XW>_ZkA(m&8sfswSw5mV~atz8aqpU)5TSI6C zkd+Fd1eT@aib)h zRiRKqXg~*ow9}y|6D(=!kF?_;EU7iMmA*w)kwAzT%P|Oi2gj=sc0$5Vgft`-`o!sa z0YVApTP*;5Un8+<^`NV?)oW_f^zZ|hFf_DthX_?x)EYIK{T8j6`EKOR!!%u8tnwC) zW6{&7Q}atY?U*Faa9x)qY13}U)M`GBx=)grgi(ZHNNm?8SCTkQ2x<*1C(+Sd*Xs^X z&`iQ4#xy0W)H}Jg+9GV*CW*%}f+d({Kb_9Re=dOk-HGsjR|I{35eAAPnLyeNY{$iR zbQ3m-W3s%U7Pu67NtWjXfd!OAVSzNk_3ZA5Jt6P*>dK;`R2jW}bqpa$lMJN+5-KMl`rt^29**hrGXZP5@bb5l@^Friwa30v=B;26Om=8Og{*6 zN@Tr8Q5uj}m_!t&f$#ztKPKdM| zET_VdEj-yBTGxmqCUKix!pHYRyOv)3ZzkK2~nOC1P;

      )sEUe-T{?t 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%0DT@LjBi1_dyi6byn>NV? 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

      LVSmid+}^DSBCTe8fzWSMWtih6xh=3BDr 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/PTS56F_W.woff b/assets/fonts/PTS56F_W.woff new file mode 100644 index 0000000000000000000000000000000000000000..fe5337937230736b9f471179868936500beda3fb GIT binary patch literal 218904 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 _?5@rane->ifbC&3sd<))sNdBkQh9| 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%0D^nvne#3=ZH4j+U?oWiL830CM(c3(IQ|$dzMk4i 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%0D2lphyV^ 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≤Vwjp(MK@T#n*RBUG&nsYO!T?o9qY5HsyJ`<{=(~ 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�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

    2. v`-M;`~g$0;!~whmcUu)Nreevrn-Q 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